从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>

JspProtect类

 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(context.getRequest(), context.getResponse()); }


web项目更改文件后缀,隐藏编程语言的更多相关文章

  1. Eclipse WEB项目更改项目名

    可能很多人都碰到过 WEB 项目需要改名字的事情,不过不是每个人都能很顺畅地完成这个事情.这里简单给大家介绍两种改项目名的方法 1. 在Eclipse 中修改项目名 没错这种方法跟你预料的一样简单,当 ...

  2. linux下怎样批量更改文件后缀名

    今天又有同学问linux下怎样批量更改文件后缀名,这个问题被别人问到三次了,所以这里给出几个解决方法 一.rename解决 1.  Ubuntu系统下 rename 's//.c//.h/'  ./* ...

  3. Python3 批量更改文件后缀名

    Python3 批量更改文件后缀名 示例: # coding:utf8 import os import sys def Rename(): #Path = "F:\\test\\" ...

  4. 利用 Python 进行批量更改文件后缀

    利用 Python 进行批量更改文件后缀 代码 import os files = os.listdir('.') for file_name in files: portion = os.path. ...

  5. linux 下用renameTo方法修改java web项目中文件夹名称问题

    经测试,在Linux环境中安装tomcat,然后启动其中的项目,在项目中使用java.io.File.renameTo(File dest)方法可行. 之前在本地运行代码可以修改,然后传到Linux服 ...

  6. Web 项目更改项目名

    简单的记录web开发中基本的操作. 更改项目名 直接修改 找到原项目中的.project 文件,更改中项目名称.然后在同目录下找到.mymetadata 文件 并更改name.context-root ...

  7. 读取web项目properties文件路径 解决tomcat服务器找不到properties路径问题

    1.需求:有时候我们产品经理给我们的需求是会不断变化的,例如数量是1000现在变成500,我们不可以去改代码吧,这样很麻烦,所以就可以改配置文件properties(这个数据库链接一样),当然也有js ...

  8. 【maven】maven创建web项目-pom文件提示web.xml is missing and <failOnMissingWebXml> is set to true

    使用maven创建web项目,选择war类型后,pom文件红叉 提示web.xml is missing and <failOnMissingWebXml> is set to true ...

  9. 怎样解决Java Web项目更改项目名后报错

    作为企业级开发最流行的工具,用Myeclipse开发java web程序无疑是最合适的,有时候,我们需要web工程的项目名,单方面的改动工程的项目名是会报错的,那么该如何改web工程项目名呢? 简 单 ...

随机推荐

  1. oracle 插入单引号

    INSERT INTO  tb (id) values ('hellp'||''''||'张三')   --等于 hellp'张三

  2. 【BZOJ1493】【NOI2007】项链工厂(线段树)

    [BZOJ1493]项链工厂(线段树) 题面 BZOJ 洛谷 Description T公司是一家专门生产彩色珠子项链的公司,其生产的项链设计新颖.款式多样.价格适中,广受青年人的喜爱. 最近T公司打 ...

  3. Codeforces 585E. Present for Vitalik the Philatelist(容斥)

    好题!学习了好多 写法①: 先求出gcd不为1的集合的数量,显然我们可以从大到小枚举计算每种gcd的方案(其实也是容斥),或者可以直接枚举gcd然后容斥(比如最大值是6就用2^cnt[2]-1+3^c ...

  4. Codeforces 938.C Constructing Tests

    C. Constructing Tests time limit per test 1 second memory limit per test 256 megabytes input standar ...

  5. poj1284 Primitive Roots

    Primitive Roots Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 4775   Accepted: 2827 D ...

  6. poj1659 Frogs' Neighborhood

    Frogs' Neighborhood Time Limit: 5000MS   Memory Limit: 10000K Total Submissions: 10239   Accepted: 4 ...

  7. 手脱ACProtect v1.35(无Stolen Code)

    1.载入PEID ACProtect v1.35 -> risco software Inc. & Anticrack Soft 2.载入OD,需要注意的是,异常选项除了[内存访问异常] ...

  8. php 三元运算符简洁用法

    <?php header('Content-type:text;charset=utf8'); $a = 'aaaa'; $b = $a ?:'; $c = $a ? $a : '; //这个和 ...

  9. 基于javaWeb阶段下的Servlet总结

    1. Servlet概述   Servlet是用Java语言编写的服务端的程序,采用request--response模式提供Web服务,并且支持标准ServletAPI,Servlet就一个运行在w ...

  10. 2017北京国庆刷题Day3 morning

    期望得分:100+60+0=160 实际得分:100+30+0=130 考场上用的哈希 #include<cstdio> #include<cstring> #include& ...