1、需要架包 urlrewrite-2.6.0.jar 导入到web-inf 下的lib里
web里面的配置如下:伪静态过滤器 要放到 struts 配置的前面,servlet 配置前面
<!-- jsp伪静态 -->
<filter>
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
<init-param>
<param-name>logLevel</param-name>
<param-value>WARN</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<servlet配置>
<servlet>
<servlet-name>queryUserAll</servlet-name>
<servlet-class>com.zuo.servlet.queryUserAll</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>queryUserAll</servlet-name>
<url-pattern>/view</url-pattern>
</servlet-mapping>
2、包导入之后,在web-inf 下面创建一个文件 取名为:urlrewrite.xml,以下为参考代码:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 2.6//EN" "http://tuckey.org/res/dtds/urlrewrite2.6.dtd">
<urlrewrite>
<rule enabled="true">
<!-- 这里是正则表达匹配成功后执行 to标签 -->
<from>NEWS_([0-9]+)_([0-9]+)</from>
<!-- 这里的& a m p传参分割符号,就像 jsp?a=1&b=2 一样 -->
<!--view是一个servlet 自己在web配置一下,吧amp间的空格去掉-->
<to type="forward" last="true" encode="default">/view?method=$1& a m p;a m p=$2& a m p;wo=$2</to>
</rule>
<rule>
<from>result\/?</from><!-- servlet 转发的页面,\/? 是正则 表示请求可以是result也可以是result/-->
<to>result.jsp</to>
</rule>
<!-- 在把jsp编译成静态的时候替换 页面中 qing 的请求 -->
<outbound-rule>
<from>qing</from>
<to>newqing</to>
</outbound-rule>
</urlrewrite>
如下:
<%@ taglib uri="/struts-tags" prefix="s" %> <!-- 使用Struts2 标签库-->
<body>
<span style="white-space:pre"> </span><a href="<s:url value="qing"/>">请求</a>
</body>
下一步:在urlrewrite.xml配置文件,<urlrewrite>标签里加入
<rule enabled="true">
<from>newqing</from><!-- 这里是请求的页面 -->
<to>er.jsp</to><!-- 这里是跳转这个页面-->
</rule>
建立er.jsp页面
点击请求看地址栏,地址是newqing而不是er.jsp
然后再点击er.jsp页面里的提交
<!-- 这里面的action 请求的是 urlrewrite.xml配置文件里面的 <from>NEWS_([0-9]+)_([0-9]+)</from>这里匹配之后 执行to标签-->
<form action="NEWS_3_2" method="post">
<input type="submit" value="提交">
</form>
servlet文件如下:
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String a=request.getParameter("method");
String b=request.getParameter("amp");
String c=request.getParameter("wo");
System.out.println(a);
System.out.println(b);
System.out.println(c);
response.sendRedirect("result/");//再次请求伪静态配置
}
自己配置一下result <to>标签的结果就可以了
第一次写东西,有点乱