STRUTS2中有各种ACTION,DO等结尾的URL,看起来很不美观,URL重写很有必要。
我用的是urlrewrite-3.0.4.jar 网上搜了下,应该有更高版本。
web.xml配置:
<!-- Url重写 -->
<filter>
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>
org.tuckey.web.filters.urlrewrite.UrlRewriteFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<!-- Url重写结束 -->
<!--默认页-->
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
<!--struts2配置-->
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/struts/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.jsp</url-pattern>
<dispatcher>REQUEST </dispatcher>
<dispatcher>FORWARD </dispatcher>
<dispatcher>INCLUDE </dispatcher>
</filter-mapping>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
<dispatcher>REQUEST </dispatcher>
<dispatcher>FORWARD </dispatcher>
<dispatcher>INCLUDE </dispatcher>
</filter-mapping>
然后在WEB-INF下建xml文件 取名:urlrewrite.xml
<urlrewrite>
<!--{1}-->
<rule>
<from>^/index.html</from>
<to type="forward">/index.action</to>
</rule>
<!--{2}-->
<rule>
<from>^/book-([0-9]+).html$</from>
<to type="forward">
/indexbook.action?bookid=$1
</to>
</rule>
<!--{3}-->
<rule>
<from>^/depart-([0-9]+)-([0-9]+).html$</from>
<to type="forward">
/indexdepartbook.action?departmentId=$1&majorId=$2
</to>
</rule>
<!--{4}-->
<rule>
<from>^/(.*)(.html)$</from>
<to>/$1.action</to>
</rule>
</urlrewrite>
只要在webroot下建一个空白文件叫index.html 就能直接通过index.html来访问首页的action了。
{1}意思是你访问index.html的时候,实际访问的其实是index.action。
{2}访问book-1.html 等于 indexbook.action?bookid=1
{3}多个参数,访问depart-1-0.html 等于 indexdepartbook.action?departmentId=1&majorId=0
{4}拦截所有的后缀为action的URL,URL重写为action名+html后缀。
补充:
若带参数的地址是字符 则用:(\S{1,10}) ---- S表示String,1,10表示10最长长度为10.
如:
<rule>
<from>^/(\S{1,10}).html$</from>
<to type="forward">/indexindex.action?forshort=$1</to>
</rule>
分享到:
相关推荐
在实际项目中,为了提高URL的可读性、搜索引擎优化(SEO)以及安全控制,我们经常需要对URL进行重写。这就是`URL Rewrite Filter`发挥作用的地方,它是一个基于Apache的开源过滤器,用于实现URL重写规则。在这个场景...
在SSH2(Spring + Struts2 + Hibernate)框架中,URLRewrite是一种强大的工具,可以用于实现URL重写功能,使得网站的URL更加友好、易于理解和记忆。这在SEO优化及用户体验提升方面具有重要意义。 ##### URLRewrite...
`urlRewrite`是Tuckey开源组织提供的一个URL重写过滤器,它能够帮助我们在Struts2应用中实现这个目标。 在这个最简实例中,我们将探讨如何在MyEclipse环境中集成Struts2和urlRewrite,创建一个基本的应用来演示URL...
UrlRewrite是一个强大的URL重写工具,常用于Java Web应用中,尤其是与Struts2框架结合使用时,能够帮助开发者优化URL结构,提高网站的SEO友好性和用户体验。在这个"UrlRewrite例子"中,我们将深入探讨UrlRewrite的...
`urlrewrite`可以很好地与Spring MVC、Struts2等框架集成,用于统一处理URL映射。 总的来说,`urlrewrite`是一个强大的工具,能够帮助开发者灵活地管理和控制应用程序的URL结构,提升用户体验和系统性能。学习和...
《URL重写技术详解——基于Java的URLrewrite实践》 在Web开发中,URL重写(URL Rewrite)是一项重要的技术,它允许我们以更友好、更可读的方式隐藏实际的URL路径,从而提升用户体验和搜索引擎优化(SEO)。本文将...
下面我们将详细探讨如何在Struts2框架中实现URL重写。 首先,了解URL重写的基本概念。URL重写是通过改变HTTP请求URL的外观,而不会改变其实际的行为。这通常涉及到在URL中添加或修改查询字符串,或者将路径信息改写...
`URLRewrite`是一款强大的URL重写工具,主要用于Apache Tomcat服务器,它可以让你灵活地管理和重写URL,实现诸如URL美化、隐藏参数、路径映射等功能。在Web开发中,URL重写对于SEO(搜索引擎优化)和提升用户体验都...
为了实现URL重写功能,我们需要在`web.xml`中配置URL Rewrite Filter,并在`urlrewrite.xml`中定义重写规则。 **1. `web.xml` 配置:** ```xml <filter-name>UrlRewriteFilter <filter-class>org.tuckey.web....
标题 "urlrewrite的简单搭建" 涉及到的知识点主要集中在使用URL重写工具 `UrlRewriteFilter` 上,这是一个基于Java的开源过滤器,用于处理和重写HTTP请求的URL,通常与Web应用程序(如Spring MVC或Struts)一起使用...
URLRewriteFilter是一款开源的URL重写工具,它可以方便地对HTTP请求的URL进行规则匹配和转换。 在Struts1.2框架中,URL通常是带有.action后缀的,这在某些情况下可能不那么直观和友好。URLRewriteFilter的引入就是...
4. **集成Spring、Struts或JSP**:`urlrewrite`框架可以很好地与各种Java Web框架如Spring、Struts进行集成。例如,在Spring MVC中,`urlrewrite`可以帮助隐藏DispatcherServlet的URL,使应用看起来更像单页面应用。...
本教程将深入探讨如何在Struts2中实现URL重写,以将`.do`后缀改写为`.html`。 首先,我们需要引入URL重写工具,例如`Tuckey URL Rewrite Filter`。这是一个强大的URL管理过滤器,可以帮助我们轻松地重写和管理URL。...
在`WEB-INF`目录下新建一个名为`urlrewrite.xml`的文件,用于定义具体的URL重写规则。示例内容如下: ```xml <!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 2.6//EN" ...
9. **与Web框架集成**:`URLRewrite`可以很好地与Spring MVC、Struts等Web框架集成,进一步优化URL管理和路由。 10. **性能优化**:合理使用`URLRewrite`可以提高网站性能,例如通过减少不必要的参数传递,使URL更...
7. **性能影响**:虽然`UrlRewrite`提供了很多便利,但过度使用或设计不当的规则可能会对性能造成一定影响,因为每个请求都需要经过Filter处理。因此,在实际应用中应适度优化规则,避免不必要的重写。 8. **调试与...
UrlRewrite Filter是一个开源的URL重写过滤器,它可以对HTTP请求的URL进行修改,从而实现伪静态效果。它是基于Tuckey组织开发的,适用于Java Web应用。 3. **配置Web工程**: - 创建一个新的Web项目,并添加JSTL...
综上所述,Struts2的路径问题可能涉及多个层面,包括Action配置、结果类型设置、静态资源访问策略、插件和拦截器的使用,以及URL重写和部署配置等。解决这些问题通常需要对Struts2的工作原理有深入理解,并能熟练...
这个库提供了一套配置文件(如urlrewrite.xml)来定义URL重写规则,使得管理变得更加方便。 6. **测试与调试**:完成URL重写后,我们需要进行充分的测试,确保所有URL都能正确重写并执行相应的Action,同时不会影响...