大家有没有这种习气,便是在许多大的门户网站或是和银联交互的网站上想看看他是用什么技能做的,比如像login?parameter=1或是login.do,又或是login.action,一看就知道利用了java那种技能,但是有的网站为了粉饰所用技能,提高网站搜索的效率,将jsp页面伪装成html或是shtml等,我们先大略的理解一下利用Url重写能给你网站带来哪些好处。
第一:有利于搜索引擎的抓取。第二:让用户更随意马虎理解,很少有用户去关心你网站的页面的地址第三:隐蔽技能的实现,我们可以通过Url重写可以实现技能的隐蔽。
这里我们用的是这里就须要用到UrlRewriter技能,实际上他便是个过滤器下面是我用到的大略运用。
第一步:下载urlrewrite-3.2.0beta.jar包添加到maven下。
第二步:在WEB-INF目录或是Sprintboot/resources下建一个urlrewrite.xml配置文件。
第三步:在web.xml配置文件中初始化配置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>debug</param-value></init-param></filter><filter-mapping><filter-name>UrlRewriteFilter</filter-name><url-pattern>/</url-pattern></filter-mapping> /把稳:配置过滤器的同时也要在stuts2默认的过滤器中修正如下, 否则在讲url重写的时候回报404缺点。/<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>/do/</url-pattern> <dispatcher>REQUEST</dispatcher> <dispatcher>FORWARD</dispatcher> <dispatcher>INCLUDE</dispatcher> </filter-mapping>
第四步:我们再在urlrewrite.xml中配置要url重置的页面及action
<urlrewrite> <rule> <note>配置登录页面</note> <from>^/login.html</from> <to>/do/login.jsp</to> </rule> <rule> <note>配置登录action</note> <from>^/do/login.html</from> <to>/do/userLogin</to> </rule> <rule> <from>^/forum/thread/([0-9]+).html$</from> <to type="forward">/forum/list.action?id=$1</to> </rule> <rule> <from>^/forum/thread/([0-9]+).html?page=([0-9]+)$</from> <to type="forward">/forum/list.action?id=$1&page=$2</to> </rule></urlrewrite><rule></rule> //一个一个规则<note></note> //添加备注,养成好的习气,以免往后自己都不知道是做什么事情的<from></from> //显示的url,必须以正则表达式字符串的开始标志(^)和结束标志(&).<to></to> //真实处理逻辑或是跳转的页面
页面上输入:http://localhost:8080/Account/login.html
实际上是访问:http://localhost:8080/Account/do/login.jsp
全体url重定向成功!
#url#