公司有时候要写一些小的项目,而用java搭建web的一个缺(特)陷(征)就是动态网页的后缀名.jsp。没办法啊,就是不能以.jsp结尾,原因有几个:隐藏服务端技术;吸引爬虫;对用户更友好;等等。如果全都用Servlet,那我选择狗带。

实际上,Spring MVC已经很好地解决了这个问题(不要问我怎么解决,RequestMapping注解),但由于项目很小,使用Spring简直就是为了Spring而Spring,所以还是传统的jsp+Servlet开发模式。那么,怎么解决我们的问题呢?答案很简单,重写Url。怎么重写?用Url Rewrite Filter!

官网:http://www.tuckey.org/urlrewrite/

还有一篇文章写得不错:http://blog.csdn.net/kimsoft/article/details/4194853

  1. 使用方法

    导入jar包,在web.xml里配置一个filter,在完善配置文件urlrewrite.xml。

    官方压缩包里面有下面几个文件,全部放在WEB-INF文件夹下

  2. 配置文件

    官方配置里说明的很详细,这里我分享一下我的配置。

    1. web.xml

      <welcome-file-list>

      <welcome-file>/jsp/index.jsp</welcome-file>

      </welcome-file-list>

      <error-page>

      <error-code>404</error-code>

      <location>/jsp/error.jsp</location>

      </error-page>

      <filter>

      <filter-name>UrlRewriteFilter</filter-name>

      <filter-class>

      org.tuckey.web.filters.urlrewrite.UrlRewriteFilter

      </filter-class>

      </filter>

      <filter-mapping>

      <filter-name>UrlRewriteFilter</filter-name>

      <url-pattern>*.html</url-pattern>

      <url-pattern>*.jsp</url-pattern>

      </filter-mapping>

    2. urlrewrite.xml

      <rule>

      <from>/(.*).html</from>

      <to>/jsp/$1.jsp</to>

      </rule>

      <rule>

      <from>.jsp</from>

      <to>/jsp/error.jsp</to>

      </rule>

  3. 我将index.jsp和error.jsp放入/WebRoot/jsp文件夹中,上述配置实现了访问.jsp结尾的网页资源时都报404,而访问.html的网页资源时,都去访问jsp文件夹下的同名jsp文件。

如何将jsp后缀重写为html的更多相关文章

  1. 利用jspx解决jsp后缀被限制拿shell

    有些struts2的站在web.xml里面设置url是jsp的格式就自动跳转主页的action,转换jsp后缀大小写还不解析.查了查有Tomcat默认jspx可以解析.看了看jspx的手册,那就好说了 ...

  2. .html 页面修改成 .jsp 后缀后中文乱码解决办法。

    .html 后缀的文件,如果直接将 .html后缀改成 .jsp 后缀,则会乱码. 正确方法如下: 将如图的代码中 html  声明去掉,然后加上这段代码:<%@ page language=& ...

  3. tony_nginx_02_URL重写

    location正则写法 一个示例: location = / { # 精确匹配 / ,主机名后面不能带任何字符串 [ configuration A ] } location / { # 因为所有的 ...

  4. JAVA记录-JSP内容

    JSP(JavaServer Pages )是什么? JavaServer Pages(JSP)是一种支持动态内容开发的网页技术它可以帮助开发人员通过利用特殊的JSP标签,其中大部分以<%开始并 ...

  5. jsp的简介(2)

    JSP(JavaServer Pages )是什么? JavaServer Pages(JSP)是一种支持动态内容开发的网页技术它可以帮助开发人员通过利用特殊的JSP标签,其中大部分以<%开始并 ...

  6. Nginx中location匹配及rewrite重写

    目录 一.常用的Nginx正则表达式 二.location 2.1.location三类匹配类型 2.2.常用的匹配规则 2.3.location优先级 2.3.1.举例说明 2.4.实际网站使用中, ...

  7. Nginx中的 location 匹配和 rewrite 重写跳转

    Nginx中的location匹配和rewrite重写跳转 1.常用的Nginx正则表达式 2.location 3.rewrite 4.rewrite实例 1.常用的Nginx正则表达式: ^ :匹 ...

  8. 17.Nginx 重写(location rewrite)

    Nginx 重写(location / rewrite) 目录 Nginx 重写(location / rewrite) 常见的nginx正则表达式 location lication的分类 loca ...

  9. Nginx重写功能(rewrite与location)

    一.常用的Nginx 正则表达式 二.访问路由location 2.1location的分类 location 大致可以分为三类: 精准匹配:location = / {} 一般匹配:location ...

随机推荐

  1. [Swift通天遁地]一、超级工具-(12)使用Toaster制作简短提示语的吐司窗口

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  2. 实现grep命令

    #include <stdio.h> #include <string.h> #include <stdlib.h> // grep命令:grep match_pa ...

  3. 题解报告:poj 1094 Sorting It All Out(拓扑排序)

    Description An ascending sorted sequence of distinct values is one in which some form of a less-than ...

  4. 转 awr自动收集脚本

    1. remote get awr report #!/usr/bin/ksh ####sample: sh awr.sh 20170515 20170516 AWR ### default it w ...

  5. mvc使用linq to sql进行sum统计遇到查询为null的问题

    mvc linq to sql,linq to entity,sum,null 昨天写了段sum的统计语句, decimal sums sums = ( from fac in db.Apply wh ...

  6. C++(变量类型-深入)

    变量类型 变量其实只不过是程序可操作的存储区的名称.C++ 中每个变量都有指定的类型,类型决定了变量存储的大小和布局,该范围内的值都可以存储在内存中,运算符可应用于变量上. 变量的名称可以由字母.数字 ...

  7. R语言曲线拟合函数(绘图)

    曲线拟合:(线性回归方法:lm) 1.x排序 2.求线性回归方程并赋予一个新变量     z=lm(y~x+I(x^2)+...) 3.plot(x,y)    #做y对x的散点图 4.lines(x ...

  8. Linux下如何从mysql数据库里导出导入数据

    https://blog.csdn.net/u012884402/article/details/47337701 一. 表的导入 1.进入数据库 mysql 数据库名 2.​查看表 show tab ...

  9. Android Measure 体系简单总结

    Android对View的测量是半协商半强制半模糊半具体的. 测量过程中的两套尺寸体系:  [半强制] ParentView**约束ChildView: **MeasureSpec(通过measure ...

  10. NSAllowsArbitraryLoadsInWebContent NSAllowsArbitraryLoads

    By specifying NSAllowsArbitraryLoadsInWebContent, you are overriding NSAllowsArbitraryLoads on iOS 1 ...