【spring】Java Web 通过浏览器访问WEB-INF下的静态文件

来源:互联网 发布:淘宝网僧衣 编辑:程序博客网 时间:2024/05/20 23:32

web项目中,为了安全,可能需要把jsp文件放在WEB-INF目录下,这样如果我们的页面中出现超链接a标签或者jslocation.href去直接转向到WEB-INF下的某一个jsp页面,那么就会引用不到,因为这样的请求方式是客户端的请求,而WEB-INF页面只对服务端开放,对客户端是不可见的。这时我们可以自己写个控制器处理这类路由。

package com.swl.controller;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;@Controllerpublic class JspGoto {@RequestMapping("/jsp.htm")protected void jsp(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// ../jsp.htm?page=/globalconfig/organization_index.jspStringBuilder page = new StringBuilder("WEB-INF/jsp/");String req_page = request.getParameter("page");page.append(req_page);// 转换跳转的url, 跳转的jsp页面request.getRequestDispatcher(page.toString()).forward(request, response);}}

通过此方法可以访问WEB-INF/jsp目录下的静态资源,包括*.html、*.jsp、*.css、*.js,访问方式为:

jsp.htm?page=/globalconfig/index.jsp
jsp.htm?page=index.js
jsp.htm?page=index.css