Java Code Examples for org.springframework.web.context.support.ServletContextResource

The following examples show how to use org.springframework.web.context.support.ServletContextResource. These examples are extracted from open source projects. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may want to check out the right sidebar which shows the related API usage.
Example 1
Source Project: lams   Source File: ResourceServlet.java    License: GNU General Public License v2.0 6 votes vote down vote up
/**
 * Return the file timestamp for the given resource.
 * @param resourceUrl the URL of the resource
 * @return the file timestamp in milliseconds, or -1 if not determinable
 */
protected long getFileTimestamp(String resourceUrl) {
	ServletContextResource resource = new ServletContextResource(getServletContext(), resourceUrl);
	try {
		long lastModifiedTime = resource.lastModified();
		if (logger.isDebugEnabled()) {
			logger.debug("Last-modified timestamp of " + resource + " is " + lastModifiedTime);
		}
		return lastModifiedTime;
	}
	catch (IOException ex) {
		if (logger.isWarnEnabled()) {
			logger.warn("Couldn't retrieve last-modified timestamp of " + resource +
					" - using ResourceServlet startup time");
		}
		return -1;
	}
}
 
Example 2
Source Project: spring4-understanding   Source File: ResourceServlet.java    License: Apache License 2.0 6 votes vote down vote up
/**
 * Return the file timestamp for the given resource.
 * @param resourceUrl the URL of the resource
 * @return the file timestamp in milliseconds, or -1 if not determinable
 */
protected long getFileTimestamp(String resourceUrl) {
	ServletContextResource resource = new ServletContextResource(getServletContext(), resourceUrl);
	try {
		long lastModifiedTime = resource.lastModified();
		if (logger.isDebugEnabled()) {
			logger.debug("Last-modified timestamp of " + resource + " is " + lastModifiedTime);
		}
		return lastModifiedTime;
	}
	catch (IOException ex) {
		logger.warn("Couldn't retrieve last-modified timestamp of [" + resource +
				"] - using ResourceServlet startup time");
		return -1;
	}
}
 
Example 3
Source Project: java-platform   Source File: ViewConfiguration.java    License: Apache License 2.0 6 votes vote down vote up
@Bean
public CompositeResourceLoader viewResourceLoader() {
	CompositeResourceLoader compositeResourceLoader = new CompositeResourceLoader();
	compositeResourceLoader.addResourceLoader(new StartsWithMatcher(VIEW_PREFIX_CLASSPATH).withoutPrefix(),
			new ClasspathResourceLoader("/views"));
	try {
		compositeResourceLoader.addResourceLoader(new StartsWithMatcher(VIEW_PREFIX_TEMPLATE),
				new WebAppResourceLoader(new ServletContextResource(servletContext, templateLocation).getFile().getAbsolutePath()));

		compositeResourceLoader.addResourceLoader(new StartsWithMatcher("/WEB-INF").withPrefix(),
				new WebAppResourceLoader(servletContext.getRealPath(".")));
	} catch (IOException e) {
		e.printStackTrace();
	}
	return compositeResourceLoader;
}
 
Example 4
Source Project: spring-analysis-note   Source File: PathResourceResolver.java    License: MIT License 5 votes vote down vote up
private boolean isResourceUnderLocation(Resource resource, Resource location) throws IOException {
	if (resource.getClass() != location.getClass()) {
		return false;
	}

	String resourcePath;
	String locationPath;

	if (resource instanceof UrlResource) {
		resourcePath = resource.getURL().toExternalForm();
		locationPath = StringUtils.cleanPath(location.getURL().toString());
	}
	else if (resource instanceof ClassPathResource) {
		resourcePath = ((ClassPathResource) resource).getPath();
		locationPath = StringUtils.cleanPath(((ClassPathResource) location).getPath());
	}
	else if (resource instanceof ServletContextResource) {
		resourcePath = ((ServletContextResource) resource).getPath();
		locationPath = StringUtils.cleanPath(((ServletContextResource) location).getPath());
	}
	else {
		resourcePath = resource.getURL().getPath();
		locationPath = StringUtils.cleanPath(location.getURL().getPath());
	}

	if (locationPath.equals(resourcePath)) {
		return true;
	}
	locationPath = (locationPath.endsWith("/") || locationPath.isEmpty() ? locationPath : locationPath + "/");
	return (resourcePath.startsWith(locationPath) && !isInvalidEncodedPath(resourcePath));
}
 
Example 5
Source Project: spring-analysis-note   Source File: PathResourceResolverTests.java    License: MIT License 5 votes vote down vote up
@Test
public void checkServletContextResource() throws Exception {
	Resource classpathLocation = new ClassPathResource("test/", PathResourceResolver.class);
	MockServletContext context = new MockServletContext();

	ServletContextResource servletContextLocation = new ServletContextResource(context, "/webjars/");
	ServletContextResource resource = new ServletContextResource(context, "/webjars/webjar-foo/1.0/foo.js");

	assertFalse(this.resolver.checkResource(resource, classpathLocation));
	assertTrue(this.resolver.checkResource(resource, servletContextLocation));
}
 
Example 6
Source Project: java-technology-stack   Source File: PathResourceResolver.java    License: MIT License 5 votes vote down vote up
private boolean isResourceUnderLocation(Resource resource, Resource location) throws IOException {
	if (resource.getClass() != location.getClass()) {
		return false;
	}

	String resourcePath;
	String locationPath;

	if (resource instanceof UrlResource) {
		resourcePath = resource.getURL().toExternalForm();
		locationPath = StringUtils.cleanPath(location.getURL().toString());
	}
	else if (resource instanceof ClassPathResource) {
		resourcePath = ((ClassPathResource) resource).getPath();
		locationPath = StringUtils.cleanPath(((ClassPathResource) location).getPath());
	}
	else if (resource instanceof ServletContextResource) {
		resourcePath = ((ServletContextResource) resource).getPath();
		locationPath = StringUtils.cleanPath(((ServletContextResource) location).getPath());
	}
	else {
		resourcePath = resource.getURL().getPath();
		locationPath = StringUtils.cleanPath(location.getURL().getPath());
	}

	if (locationPath.equals(resourcePath)) {
		return true;
	}
	locationPath = (locationPath.endsWith("/") || locationPath.isEmpty() ? locationPath : locationPath + "/");
	return (resourcePath.startsWith(locationPath) && !isInvalidEncodedPath(resourcePath));
}
 
Example 7
Source Project: java-technology-stack   Source File: PathResourceResolverTests.java    License: MIT License 5 votes vote down vote up
@Test
public void checkServletContextResource() throws Exception {
	Resource classpathLocation = new ClassPathResource("test/", PathResourceResolver.class);
	MockServletContext context = new MockServletContext();

	ServletContextResource servletContextLocation = new ServletContextResource(context, "/webjars/");
	ServletContextResource resource = new ServletContextResource(context, "/webjars/webjar-foo/1.0/foo.js");

	assertFalse(this.resolver.checkResource(resource, classpathLocation));
	assertTrue(this.resolver.checkResource(resource, servletContextLocation));
}
 
Example 8
@Test
public void checkServletContextResource() throws Exception {
	Resource classpathLocation = new ClassPathResource("test/", PathResourceResolver.class);
	MockServletContext context = new MockServletContext();

	ServletContextResource servletContextLocation = new ServletContextResource(context, "/webjars/");
	ServletContextResource resource = new ServletContextResource(context, "/webjars/webjar-foo/1.0/foo.js");

	assertFalse(this.resolver.checkResource(resource, classpathLocation));
	assertTrue(this.resolver.checkResource(resource, servletContextLocation));
}
 
Example 9
Source Project: onetwo   Source File: JspResourceViewResolver.java    License: Apache License 2.0 5 votes vote down vote up
protected boolean tryToCheckJspResource(HttpServletRequest request, String viewName){
	ServletContext sc = request.getServletContext();
	String jsp = getPrefix() + viewName + getSuffix();
	ServletContextResource scr = new ServletContextResource(sc, jsp);
	if(scr.exists()){
		return true;
	}
	String path = sc.getRealPath(jsp);
	if(StringUtils.isBlank(path)){
		return false;
	}
	File jspFile = new File(path);
	return jspFile.exists();
}
 
Example 10
Source Project: tutorials   Source File: ImageController.java    License: MIT License 5 votes vote down vote up
@RequestMapping(value = "/image-resource", method = RequestMethod.GET)
@ResponseBody
public ResponseEntity<Resource> getImageAsResource() {
    final HttpHeaders headers = new HttpHeaders();
    Resource resource = new ServletContextResource(servletContext, "/WEB-INF/images/image-example.jpg");
    return new ResponseEntity<>(resource, headers, HttpStatus.OK);
}
 
Example 11
Source Project: spring-soy-view   Source File: SpringSoyViewBaseConfig.java    License: Apache License 2.0 5 votes vote down vote up
@Bean
public DefaultTemplateFilesResolver soyTemplateFilesResolver() throws Exception {
    final DefaultTemplateFilesResolver defaultTemplateFilesResolver = new DefaultTemplateFilesResolver();
    defaultTemplateFilesResolver.setHotReloadMode(hotReloadMode);
    defaultTemplateFilesResolver.setRecursive(recursive);
    defaultTemplateFilesResolver.setFilesExtension(fileExtension);
    defaultTemplateFilesResolver.setTemplatesLocation(new ServletContextResource(servletContext, templatesPath));

    return defaultTemplateFilesResolver;
}
 
Example 12
Source Project: spring-analysis-note   Source File: ViewResolverTests.java    License: MIT License 4 votes vote down vote up
public void setLocation(Resource location) {
	if (!(location instanceof ServletContextResource)) {
		throw new IllegalArgumentException("Expecting ClassPathResource, not " + location.getClass().getName());
	}
}
 
Example 13
public void setLocation(Resource location) {
	if (!(location instanceof ServletContextResource)) {
		throw new IllegalArgumentException("Expecting ServletContextResource, not " + location.getClass().getName());
	}
}
 
Example 14
Source Project: java-technology-stack   Source File: ViewResolverTests.java    License: MIT License 4 votes vote down vote up
public void setLocation(Resource location) {
	if (!(location instanceof ServletContextResource)) {
		throw new IllegalArgumentException("Expecting ClassPathResource, not " + location.getClass().getName());
	}
}
 
Example 15
public void setLocation(Resource location) {
	if (!(location instanceof ServletContextResource)) {
		throw new IllegalArgumentException("Expecting ServletContextResource, not " + location.getClass().getName());
	}
}
 
Example 16
Source Project: lams   Source File: PathResourceResolver.java    License: GNU General Public License v2.0 4 votes vote down vote up
private boolean isResourceUnderLocation(Resource resource, Resource location) throws IOException {
	if (resource.getClass() != location.getClass()) {
		return false;
	}

	String resourcePath;
	String locationPath;

	if (resource instanceof UrlResource) {
		resourcePath = resource.getURL().toExternalForm();
		locationPath = StringUtils.cleanPath(location.getURL().toString());
	}
	else if (resource instanceof ClassPathResource) {
		resourcePath = ((ClassPathResource) resource).getPath();
		locationPath = StringUtils.cleanPath(((ClassPathResource) location).getPath());
	}
	else if (resource instanceof ServletContextResource) {
		resourcePath = ((ServletContextResource) resource).getPath();
		locationPath = StringUtils.cleanPath(((ServletContextResource) location).getPath());
	}
	else {
		resourcePath = resource.getURL().getPath();
		locationPath = StringUtils.cleanPath(location.getURL().getPath());
	}

	if (locationPath.equals(resourcePath)) {
		return true;
	}
	locationPath = (locationPath.endsWith("/") || locationPath.isEmpty() ? locationPath : locationPath + "/");
	if (!resourcePath.startsWith(locationPath)) {
		return false;
	}

	if (resourcePath.contains("%")) {
		// Use URLDecoder (vs UriUtils) to preserve potentially decoded UTF-8 chars...
		if (URLDecoder.decode(resourcePath, "UTF-8").contains("../")) {
			if (logger.isTraceEnabled()) {
				logger.trace("Resolved resource path contains \"../\" after decoding: " + resourcePath);
			}
			return false;
		}
	}

	return true;
}
 
Example 17
private boolean isResourceUnderLocation(Resource resource, Resource location) throws IOException {
	if (resource.getClass() != location.getClass()) {
		return false;
	}

	String resourcePath;
	String locationPath;

	if (resource instanceof UrlResource) {
		resourcePath = resource.getURL().toExternalForm();
		locationPath = StringUtils.cleanPath(location.getURL().toString());
	}
	else if (resource instanceof ClassPathResource) {
		resourcePath = ((ClassPathResource) resource).getPath();
		locationPath = StringUtils.cleanPath(((ClassPathResource) location).getPath());
	}
	else if (resource instanceof ServletContextResource) {
		resourcePath = ((ServletContextResource) resource).getPath();
		locationPath = StringUtils.cleanPath(((ServletContextResource) location).getPath());
	}
	else {
		resourcePath = resource.getURL().getPath();
		locationPath = StringUtils.cleanPath(location.getURL().getPath());
	}

	if (locationPath.equals(resourcePath)) {
		return true;
	}
	locationPath = (locationPath.endsWith("/") || locationPath.isEmpty() ? locationPath : locationPath + "/");
	if (!resourcePath.startsWith(locationPath)) {
		return false;
	}

	if (resourcePath.contains("%")) {
		// Use URLDecoder (vs UriUtils) to preserve potentially decoded UTF-8 chars...
		if (URLDecoder.decode(resourcePath, "UTF-8").contains("../")) {
			if (logger.isTraceEnabled()) {
				logger.trace("Resolved resource path contains \"../\" after decoding: " + resourcePath);
			}
			return false;
		}
	}

	return true;
}
 
Example 18
Source Project: spring4-understanding   Source File: ViewResolverTests.java    License: Apache License 2.0 4 votes vote down vote up
public void setLocation(Resource location) {
	if (!(location instanceof ServletContextResource)) {
		throw new IllegalArgumentException("Expecting ClassPathResource, not " + location.getClass().getName());
	}
}
 
Example 19
public void setLocation(Resource location) {
	if (!(location instanceof ServletContextResource)) {
		throw new IllegalArgumentException("Expecting ServletContextResource, not " + location.getClass().getName());
	}
}
 
Example 20
Source Project: java-platform   Source File: TemplateHttpRequestHandler.java    License: Apache License 2.0 4 votes vote down vote up
@Override
public void handleRequest(HttpServletRequest request, HttpServletResponse response)
		throws ServletException, IOException {

	// Supported methods and required session
	checkRequest(request);

	// Check whether a matching resource exists
	Resource resource = getResource(request);
	if (resource == null) {
		logger.trace("No matching resource found - returning 404");
		response.sendError(HttpServletResponse.SC_NOT_FOUND);
		return;
	}

	// Check the resource's media type
	MediaType mediaType = getMediaType(resource);
	if (mediaType != null) {
		if (logger.isTraceEnabled()) {
			logger.trace("Determined media type '" + mediaType + "' for " + resource);
		}

		if (Objects.equal(mediaType, MediaType.TEXT_HTML)) {
			WebRender render = new WebRender(beetlConfig.getGroupTemplate());
			if (resource instanceof ServletContextResource) {
				render.render(((ServletContextResource) resource).getPath(), request, response);
			}

			return;
		}

	} else {
		if (logger.isTraceEnabled()) {
			logger.trace("No media type found for " + resource + " - not sending a content-type header");
		}
	}

	// Header phase
	if (new ServletWebRequest(request, response).checkNotModified(resource.lastModified())) {
		logger.trace("Resource not modified - returning 304");
		return;
	}

	// Apply cache settings, if any
	prepareResponse(response);

	// Content phase
	if (METHOD_HEAD.equals(request.getMethod())) {
		setHeaders(response, resource, mediaType);
		logger.trace("HEAD request - skipping content");
		return;
	}

	if (request.getHeader(HttpHeaders.RANGE) == null) {
		setHeaders(response, resource, mediaType);
		writeContent(response, resource);
	} else {
		writePartialContent(request, response, resource, mediaType);
	}
}
 
Example 21
Source Project: es   Source File: IconController.java    License: Apache License 2.0 4 votes vote down vote up
/**
 * 如果量大 建议 在页面设置按钮 然后点击生成
 *
 * @param request
 * @return
 */
@RequestMapping(value = "/genCssFile")
@ResponseBody
public String genIconCssFile(HttpServletRequest request) {


    this.permissionList.assertHasEditPermission();


    String uploadFileTemplate = ".%1$s{background:url(%2$s/%3$s);width:%4$spx;height:%5$spx;display:inline-block;vertical-align: middle;%6$s}";
    String cssSpriteTemplate = ".%1$s{background:url(%2$s/%3$s) no-repeat -%4$spx -%5$spx;width:%6$spx;height:%7$spx;display:inline-block;vertical-align: middle;%8$s}";

    ServletContext sc = request.getServletContext();
    String ctx = sc.getContextPath();

    List<String> cssList = Lists.newArrayList();

    Searchable searchable = Searchable.newSearchable()
            .addSearchParam("type_in", new IconType[]{IconType.upload_file, IconType.css_sprite});

    List<Icon> iconList = baseService.findAllWithNoPageNoSort(searchable);

    for (Icon icon : iconList) {

        if (icon.getType() == IconType.upload_file) {
            cssList.add(String.format(
                    uploadFileTemplate,
                    icon.getIdentity(),
                    ctx, icon.getImgSrc(),
                    icon.getWidth(), icon.getHeight(),
                    icon.getStyle()));
            continue;
        }

        if (icon.getType() == IconType.css_sprite) {
            cssList.add(String.format(
                    cssSpriteTemplate,
                    icon.getIdentity(),
                    ctx, icon.getSpriteSrc(),
                    icon.getLeft(), icon.getTop(),
                    icon.getWidth(), icon.getHeight(),
                    icon.getStyle()));
            continue;
        }

    }

    try {
        ServletContextResource resource = new ServletContextResource(sc, iconClassFile);
        FileUtils.writeLines(resource.getFile(), cssList);
    } catch (Exception e) {
        LogUtils.logError("gen icon error", e);
        return "生成失败:" + e.getMessage();
    }

    return "生成成功";
}