Struts2实现URL伪静态

Struts2、ssh实现url伪静态步骤:

依赖jar:urlrewrite-3.2.0.jar


第一步:在WEB-INF下新建urlrewrite.xml文件


第二步:配置web.xml文件,注意配置文件顺序,需要在struts配置前面

<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>

<dispatcher>REQUEST</dispatcher>

<dispatcher>FORWARD</dispatcher>

</filter-mapping>


             <filter>

<filter-name>struts2</filter-name>

<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>

</filter>

<filter-mapping>

<filter-name>struts2</filter-name>

<url-pattern>/*</url-pattern>

<dispatcher>REQUEST</dispatcher>

<dispatcher>FORWARD</dispatcher>

<dispatcher>INCLUDE</dispatcher>

</filter-mapping>


 第三步:配置urlrewrite.xml文件

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 3.2//EN"        
"http://tuckey.org/res/dtds/urlrewrite3.2.dtd">
<urlrewrite>

<rule>

<from>^/([A-Za-z0-9]+)/([A-Za-z0-9]+)\.htm$</from>

<to type="forward">/$1!$2.do</to>

</rule>

<outbound-rule>

<from>/([A-Za-z0-9]+)!([A-Za-z0-9]+)[\.do]$</from> 

<to>/$1/$2.htm</to>

</outbound-rule>

</urlrewrite>

注:ruleurl重写规则,from是显示出来的地址,to是映射的实际地址。示例:<a href="http://localhost:8080/douwanplay/user/testUrlRewrite.htm">GO</a>,表示实际请求为user!testUrlRewrite.do

$1是重写参数,它的值与from中的正则表达式是一一对应,可以为多个,()里是匹配的正则表达式, 在正则表达式^指定字符的串开始,$为指定结束(form一个括号--对应to的一个$参数)


outbound-rule 是反重写配置,即实际动态连接经其映射之后在页面显示为静态连接模式。示例:<a href="<c:url value="/user!testUrlRewrite.do" />">NO</a>,实际页面显示为user/testUrlRewrite.htm参数配置同rule, <c:url /> 为 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>







说明:

1、配struts2拦截器的时候需要加:

    <dispatcher>REQUEST</dispatcher>    //不加这个页面不能使用struts2标签
    <dispatcher>FORWARD</dispatcher>    //转发必须
    <dispatcher>INCLUDE</dispatcher>

2、配置web.xml的时候,rewrite一定要在strtus2的上面。

web.xml 配置顺序

1>struts-cleanup:

2>sitemesh

3>UrlRewriteFilter   这个必须在sitemesh 后,否则rewrite后的页面不会被sitemesh 渲染。

4>struts2



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值