最近做了一个项目,因为有大量的新闻页面,为了提高对搜索引擎的收录支持,所以使用了UrlRewrite
现在把做项目之前对UrlRewrite的相关学习做了一下整理,现在发上来做个记录
一:还是先把UrlRewrite下载下来吧
下载地址:下载UrlRewrite
。我下载的是urlrewritefilter-2.6.zip,最新的是urlrewritefilter-3.2.0.zip,不过这个还是测试版。
二:解压之后共有两个文件,一个是配置文件:urlrewrite.xml,另一个是jar包,新建工程,把jar包扔进去,配置文件放到WEB-INF下。
三:在web.xml中加入如下代码:
<!-- UrlRewrite start -->
<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>
<!-- UrlRewrite start -->
四:关于urlrewrite.xml的讲解
首先把我写的代码贴出来吧
<urlrewrite>
<!-- first -->
<rule>
<from>/news/([A-Za-z0-9]+)_([A-Za-z0-9]+).html$</from>
<to type="forward">/news/newslist.jsp?tid=$1&uname=$2</to>
</rule>
<!-- second -->
<rule>
<from>/news/singlenews.html</from>
<to type="forward">/news/singlenews.jsp</to>
</rule>
<!-- third -->
<rule>
<from>/testurl/([A-Za-z0-9]+)_([A-Za-z0-9]+).html$</from>
<to type="forward">/servlet/URLServlet?tid=$1&uname=$2</to>
</rule>
</urlrewrite>
rule是定义URL的伪装规则
每个rule下都包含一对标签<from />和<to />
以我写的第二个rule为例,当用户访问的路径(from中定义的)是/news/singlenews.html时,
实际上访问的是下面to映射的地址:/news/singlenews.jsp
当访问的地址带参数的时候,如第一种rule
当用户访问的路径是/news/123_hello.html的时候
实际上访问的是to中定义的/news/newslist.jsp?tid=123&uname=hello
当访问Servlet的时候,如第三种rule
用户访问的路径是/testurl/123_hello.html
实际上访问的是to中定义的/servlet/URLServlet?tid=123&uname=hello
PS:from中的访问规则通常需要用正则表达式,但是不会用的很复杂。
注意:跳转的时候,就不要写实际路径了,跳转路径要按照映射的规则写
以上面为例:想要跳转到/news/newslist.jsp?tid=123&uname=hello
需要这样写:response.sendRedirect("/news/"+123+"_"+hello+".html");
(总结完)
PS:PS:新近补充,urlrewrite在resin下部署不能出现任何的同名!~比如首页映射的是index.html,新闻的映射为news/index.html,虽然路径不同,但是在resin下仍然会出现无法找到或者抛出异常,通过测试,在tomcat下不存在这个问题。同时在resin下可能会对输入输出流有一点点影响。因为过滤的是全部url,在项目实施过程中出现了验证码无法生成的问题。同样的,在tomcat下无不良影响。
PS.PS:语文不好,不怎么会写总结,凑合着看吧
分享到:
相关推荐
在实际项目中,`URLrewrite`可以用于多种场景:隐藏Servlet或JSP的实际路径,防止直接访问;实现URL参数的隐藏,提升安全性;优化SEO,比如将动态URL转换为静态URL形式;以及根据用户状态进行不同处理,如权限控制等...
`urlrewrite`框架兼容于Java Servlet容器,如Tomcat,Jetty等,广泛应用于JSP项目中。 **一、URL重写的重要性** 1. **用户体验**:简洁、有意义的URL有助于用户更好地理解页面内容,提高用户对网站的接受度。 2. *...
要使用URLRewrite 3.2.0,首先需要将其JAR包添加到Web应用程序的`WEB-INF/lib`目录下。接着,在Web应用的`WEB-INF`目录下创建`urlrewrite.xml`配置文件,编写重写规则。 ### 4. 示例配置 ```xml <urlrewrite> ^...
在Java Web应用程序中,URLRewrite常用于隐藏实际的Servlet或JSP路径,提升用户体验,同时也有助于保护内部系统结构。 二、URLRewrite的工作原理 URLRewrite的核心是通过匹配规则来转换HTTP请求的URL。这些规则...
这个URL先会根据`<outbound-rule>`转换为`http://localhost:8080/URLRewrite/page/second`,然后再由`<rule>`转换为`http://localhost:8080/URLRewrite/page/second.jsp`,最终访问到实际的资源。 总结来说,URL...
本篇文章将深入探讨如何在JSP环境中使用URLRewrite来实现URL的伪静态化。 首先,理解URL伪静态化的概念至关重要。伪静态化是将动态网页的URL转换成看似静态的URL形式,这样做的好处包括提高搜索引擎友好度、提升...
`urlrewritefilter`遵循特定的配置文件(通常命名为`urlrewrite.xml`),该文件包含了重写规则,例如将动态请求映射到实际的Servlet或者JSP页面。 在描述中提到的博客链接,可能详细介绍了如何使用`urlrewrite`进行...
### 伪静态URLRewrite实例解析 #### 一、伪静态URLRewrite概念与作用 在Web开发领域,为了提高用户体验、便于搜索引擎抓取以及优化网站结构,常常需要对URL进行美化处理,这就是所谓的“伪静态”。通过将动态URL...
<filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class> <param-name>logLevel</param-name> <param-value>commons</param-value> </init-param> </filter> <filter-name>...
DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 2.6//EN" "http://tuckey.org/res/dtds/urlrewrite2.6.dtd"> <urlrewrite> ^/([0-9]+).html$</from> <to type="forward">/index.jsp?id=$1</to> </...
2. **配置web.xml**:在项目的`web.xml`配置文件中,声明URLRewriteFilter作为Servlet过滤器,并设定其初始化参数,指定`urlrewrite.xml`的位置。 3. **编写urlrewrite.xml**:创建`urlrewrite.xml`文件,定义规则...
"JSP+Servlet系统 使用伪静态" 这个标题表明这是一个基于Java Web技术构建的系统,特别提到了"JSP"(JavaServer Pages)和"Servlet",它们是Java语言用于开发动态网页和服务的核心组件。"伪静态"则是指将动态URL转化...
本篇文章将深入探讨如何在JSP环境中使用URLRewrite工具来实现URL的伪静态化,以及其背后的原理和优势。 首先,我们要理解什么是URL伪静态化。在动态网站中,URL通常会包含一些参数,如 "?id=123",这样的URL对于...
Apache是最流行的Web服务器,但它不支持JSP和Servlet,因此通常我们会将其与Servlet容器(如Tomcat)结合使用,Apache处理静态页面,Tomcat处理动态页面,以实现各自的优势。 Tomcat是Apache基金会的一个Servlet...
2. **使用URL映射和Servlet**:在Servlet配置中,可以定义多个URL映射,每个映射对应不同的业务逻辑。这样,用户看到的URL就可以与实际处理请求的Servlet映射关系解耦。 ```xml <!-- web.xml配置 --> <servlet> ...
使用URL重写技术,如Apache的mod_rewrite模块或Tomcat的Context配置,可以将动态请求转换成伪静态形式。在JSP中,我们可能需要结合服务器的配置来实现这一过程。 5. **隐藏Servlet路径** 为了使URL看起来更像静态...
URLRewriteFilter是由Tuckey组织开发的一款强大的URL处理工具,它基于Apache HTTP服务器的mod_rewrite模块理念,但适用于任何支持Servlet和JSP的Web应用程序。该过滤器允许开发者通过配置规则来灵活地控制请求的URL...
2. **URL重写(UrlRewrite)**:通过第三方库如Tuckey的UrlRewriteFilter,可以实现URL的重写,将实际的请求路径和参数转换成更友好的形式。例如,`/index.jsp?ptr=xxx` 可以被重写为 `/ptr/xxx`,隐藏了原URL中的....
JSP URLRewrite地址静态化是一个重要的Web开发技巧,通过使用`URLRewriteFilter`工具,我们可以实现动态URL的静态化展示,进而提升网站的SEO效果和用户体验。正确配置和使用该工具,对于提升网站的整体质量有着积极...