从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. Mybatis笔记二:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)

    错误异常:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.test.dao.N ...

  2. jq从数组中删除指定元素(根据自定义条件) 超好用的 $.grep() 方法

    转: jQuery.grep() 什么是jQuery.grep()? jQuery.grep()是一个查找满足过滤函数的数组元素的函数.原始数组不受影响,返回值为数组. 用法介绍: 写法: jQuer ...

  3. 如何在Linux系统上安装QQ

    转载自KKK博客 首先我们需要在wine的官网上安装一个wine. https://wiki.winehq.org/Ubuntu_zhcn 按照上面的提示一步步来,做完之后点下面的链接下载 https ...

  4. vue添加属性绑定

    html <div id="app-2"> <span v-bind:title="message"> 鼠标悬停几秒钟查看此处动态绑定的 ...

  5. numpy数组中冒号和负号的含义

    numpy数组中":"和"-"的意义 觉得有用的话,欢迎一起讨论相互学习~Follow Me 在实际使用numpy时,我们常常会使用numpy数组的-1维度和& ...

  6. java面试梳理

    自己整理的有关java面试过的问题,有错的请矫正. 1, Spring的核心思想 控制反转和面向切面的编程 2,Spring的核心模块 反向控制与依赖注入.Bean配置以及加载 3,Scope是什么 ...

  7. HDU 2685 GCD推导

    求$(a^n-1,a^m-1) \mod k$,自己手推,或者直接引用结论$(a^n-1,a^m-1) \equiv a^{(n,m)}-1 \mod k$ /** @Date : 2017-09-2 ...

  8. bzoj 2844: albus就是要第一个出场 高斯消元

    LINK 题意:看题目不如看样例解释.给出有n个数的集合,对这些子集中的数求异或,升序统计所有子集得到的数(重复会被计入),询问一个数x,问这个数出现的第一个位置 思路:在这里要求一个所有可能出现的异 ...

  9. c# windows server安装启动与卸载

    使用installutil.exe安装卸载服务时,由于需要指向服务的全路径,由于生成目录往往不是服务发布的最终目录,很不便利,下面介绍两种方式方便操作: 方式一: 项目中加入install.bat与u ...

  10. IO流-文件拷贝

    其实文件的拷贝还是文件读取写入的应用,实际是读取此路径上的文件,然后写入到指定路径下的文件. 代码举例: import java.io.*; import java.lang.*; class Tes ...