web项目更改文件后缀,隐藏编程语言

来源:互联网 发布:windows ce6.0模拟器 编辑:程序博客网 时间:2024/06/07 06:13
从Java EE5.0开始,<servlet-mapping>标签就可以配置多个<url-pattern>。例如可以同时将urlServlet配置一下多个映射方式:
<servlet><servlet-name>servletName</servlet-name><servlet-class>com.copy.project.UrlServlet</servlet-class></servlet><servlet-mapping><servlet-name>servletName</servlet-name><url-pattern>/servlet/urlServlet</url-pattern><url-pattern>/servlet/urlServlet.asp</url-pattern><url-pattern>/servlet/urlServlet.jsp</url-pattern><url-pattern>/servlet/urlServlet.php</url-pattern></servlet-mapping>

    这时,不加后缀和加.asp/.jsp/.php访问,都会正常显示。


项目中

web.xml中配置
<servlet><servlet-name>JSP Protect</servlet-name><servlet-class>com.companyname.web.JspProtect</servlet-class><init-param><param-name>prefix</param-name><param-value>/wp</param-value></init-param><init-param><param-name>suffix</param-name><param-value>.shtm</param-value></init-param></servlet><servlet-mapping><servlet-name>JSP Protect</servlet-name><url-pattern>*.shtm</url-pattern></servlet-mapping>
<pre name="code" class="html"><pre name="code" class="html">JspProtect类

<pre name="code" class="java">private static final long serialVersionUID = -6821655106461234567L;private String contextPath;private String prefix;private String suffix;public void init(ServletConfig config) throws ServletException {super.init(config);contextPath = config.getServletContext().getContextPath();prefix = StringUtils.defaultIfEmpty(config.getInitParameter("prefix"), "");suffix = StringUtils.defaultIfEmpty(config.getInitParameter("suffix"), ".htm");}public void execute(RequestContext context) throws Exception {//项目中其他的类调用此方法会进行处理String toUrl = context.getRequest().getRequestURI();toUrl = toUrl.replaceFirst(contextPath, prefix);toUrl = toUrl.replace(suffix, ".jsp");context.getRequest().getRequestDispatcher(toUrl).forward(<span style="font-family: Arial, Helvetica, sans-serif;">context.getRequest(),</span>, context.getResponse());}}


1 0
原创粉丝点击