JAVA中使用UrlRewrite时遇到404怎么办?

今天使用UrlRewrite来测试一下伪静态页面,还是挺有意思的,其中遇到一点小问题,同大家分享一下!

动态页面:动态页面是以ASP、PHP、JSP、Perl、CGI等编程语言制作的,并不独立存在于服务器上的网页文件,只有当用户请求时服务器才返回一个完整的网页;

静态页面:是实际存在的,无需经过服务器的编译,直接加载到客户浏览器上显示出来。需要占一定的服务器空间。

伪静态页面:(这个度娘里面居然没有词条)伪静态页面,不是真正的静态页面,它本身其实是动态页面,但表现出来却是静态页面的访问地址,如:www.csdn.net/post/2_3.html 或者 www.csdn.net/post/23


这里使用了UrlRewrite,点 下载jar包 , 点下载配置文件 ,用之前需要简单配置一下。

首先,在web.xml里需要加上其过滤器。

<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>/*</url-pattern>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
</filter-mapping>
然后在WEB-INF下的urlRewrite配置文件里,加上自己的规则。

    <rule>
        <from>/content/([0-9]+)_([0-9]+).html</from>
        <to>/content_index.action?channelId=$1&amp;contentId=$2</to>
    </rule>


意思 是访问http://test.jacky.com/content/2_3.html 被跳转到 http://test.jacky.com/content_index.action?channelId=2&contentId=3


在你的Action中正常处理这两个参数就可以了


启动后,访问http://test.jacky.com/content/2_3.html tomcat总是出现404错误。


然后,找一些资料,原来需要在org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter过滤器中需要加点东西:

  1. <filter-mapping>  
  2.     <filter-name>struts2</filter-name>  
  3.         <url-pattern>/struts/*</url-pattern>  
  4.         <dispatcher>REQUEST</dispatcher>      
  5.         <dispatcher>FORWARD</dispatcher>      
  6.         <dispatcher>INCLUDE</dispatcher>   
  7. </filter-mapping>  

猜你喜欢

转载自blog.csdn.net/jackymvc/article/details/9357785