jsp 伪静态

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>
你会发现你鼠标放上去,他显示newqing而不是qing,这是因为在页面tomcat编译页面是被替换了

下一步:在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>标签的结果就可以了

第一次写东西,有点乱








猜你喜欢

转载自blog.csdn.net/Uniquelike/article/details/19973687