一.直观感受
1.未使用重写url
2.使用重写url
二.伪静态技术介绍
1.使用优点:
满足搜索引擎的要求、隐藏技术实现,提高网站的移植性 、满足美感的要求
将动态URL伪装成静态的HTML页面
实现思想:通过Filter拦截所有法相*.html请求,按照某种规则将请求forward到实际的*.jsp页面即可。
2.使用介绍:
1.目录结构
2.导入jar包
urlrewrite-3.1.0.jar
3.web.xml配置
- <?xml version="1.0" encoding="UTF-8"?>
- <web-app version="2.5"
- xmlns="http://java.sun.com/xml/ns/javaee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
- http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
- <!-- urlRewriteFilter -->
- <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-name>hw</servlet-name>
- <servlet-class>com.techbirds.servlet.HelloWorldServlet</servlet-class>
- </servlet>
- <servlet-mapping>
- <servlet-name>hw</servlet-name>
- <url-pattern>/hw.do</url-pattern>
- </servlet-mapping>
- </web-app>
4.urlrewrite.xml配置
伪静态配置文件,基于正则表达式的(完成将网页的forward from--->to)
- <?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">
- <!--
- Configuration file for UrlRewriteFilter
- http://tuckey.org/urlrewrite/
- -->
- <urlrewrite>
- <!-- 地址栏输入demo1 主页固定:
- 首页访问,直接在地址栏输入xxxx/home->(自动转换成)->xxxx/index.jsp
- -->
- <rule>
- <from>/home</from>
- <to>/index.jsp</to>
- </rule>
- <!-- 地址栏输入demo2:
- 将所有jsp页面的访问请求,重写成html的访问请求
- ps:正则要求0-9和a-z和A-Z以及斜杠/
- -->
- <rule>
- <from>^([0-9a-zA-Z\/]*).htm$</from>
- <to>/$1.jsp</to>
- </rule>
- </urlrewrite>
将struts2过滤器进行修改,修改后如下
- <filter-mapping>
- <filter-name>struts2</filter-name>
- <url-pattern>/*</url-pattern>
- <dispatcher>REQUEST</dispatcher>
- <dispatcher>FORWARD</dispatcher>
- </filter-mapping>
一定要加
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
不然会导致404错误
三、使用总结
对任何服务器请求可进行url重写,无论是在地址栏输入地址还是页面中通过超链接进行访问都是可以实现地址的重写,并且也可以对ajax的
请求进行url重写。
ps:只通过rule便可实现配置
请求进行url重写。
ps:只通过rule便可实现配置