`
chinagdvea
  • 浏览: 132367 次
  • 性别: Icon_minigender_1
  • 来自: 韶关
社区版块
存档分类
最新评论

分析ulrwriter重写action和jsp页面地址的用法

阅读更多
1.下载jar包http://www.tuckey.org/urlrewrite/

2.配置web.xml的filter

<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要放在struts的filter之前

3.重点来了,配置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">

<!--

    Configuration file for UrlRewriteFilter
    http://tuckey.org/urlrewrite/

-->
<urlrewrite>

    <!--<rule>-->
        <!--<note>-->
            <!--action-->
        <!--</note>-->
        <!--<from>^/([_a-zA-Z]+[_0-9a-zA-Z-/]*[_0-9a-zA-Z]+)$</from>-->
        <!--<to type="redirect">/$1.action</to>-->
    <!--</rule>-->

    <rule>
        <note>
            jsp
        </note>
        <from>^/([_a-zA-Z]+[_0-9a-zA-Z-/]*[_0-9a-zA-Z]+).html$</from>
        <to type="forward">/$1.jsp</to>
    </rule>

    <outbound-rule>
        <note>
            jsp
        </note>
        <from>^/([_a-zA-Z]+[_0-9a-zA-Z-/]*[_0-9a-zA-Z]+).jsp$</from>
        <to type="forward">/$1.html</to>
    </outbound-rule>

    <outbound-rule>
        <note>
            action
        </note>
        <from>^/([_a-zA-Z]+[_0-9a-zA-Z-/]*[_0-9a-zA-Z]+).action$</from>
        <to>/$1</to>
    </outbound-rule>
</urlrewrite>


重写规则分析:
1.第一步,<outbound-rule>,此标签内rule 用于替换页面和浏览器显示的url,<from>表示页面原来填写的url,<to>表示重写后显示给用户看的地址,但是,这个替换规则只对
<a href="<%=request.getContextPath() + response.encodeURL("/jsp/home.jsp")%>">URLRewriter 修正页面URL</a>
		<a href="<c:url value="/jsp/home.html" />">URLRewriter 修正页面URL</a>

这两种在href内加了标签的写法有效,例如此处的/jsp/home.jsp在浏览器中的地址显示的是/jsp/home.html

2.第二步,<rule>,此标签内的rule用来解析页面和浏览器显示的url,在第一部中,点击那个a标签,会出现404错误,因为真实目录中并不存在home.html这用一个文件.但是写了rule规则的解析以后,会将请求url从home.html解析成home.jsp..这样便可以在浏览器上显示home.html但实际请求home.jsp资源,重写就成功了

有意思的地方是,struts2对于action请求,在浏览器上的请求地址可以不加上.action后缀,这就正好提供了一个方便的地方.我们可以只在<outbound-rule>指定匹配规则将.action后缀去掉,而不再<rule>里指定去掉.action后缀后的解析规则,因为即使请求写着/home就相当于/home.action
分享到:
评论

相关推荐

    几种JSP页面传值方式.txt

    以上介绍了几种常用的JSP页面传值方式,包括使用表单、URL重写、JavaScript动态改变表单行为、JSP内置对象和标签库以及Cookie和Session。不同的场景下可以选择不同的方法来满足需求。在实际应用中,开发者还需要考虑...

    jsp的一个url重写

    下面将详细阐述JSP中的URL重写原理、配置方法及其实际应用。 ### URL重写原理 URL重写(URL Rewriting)是一种服务器端技术,用于改变请求的URL,使之看起来更友好、更具描述性,同时不影响原有的资源定位。在JSP...

    JSP页面跳转方法汇总

    综上所述,JSP提供了多种页面跳转的方法,每种方法都有其适用场景和限制。`response.sendRedirect`适用于需要改变URL或进行跨服务器跳转的情况;`response.setHeader`则更偏向于遵循HTTP规范的重定向操作;而`&lt;jsp:...

    jsp 动态转静态 URL重写

    本篇文章将详细探讨“jsp动态转静态URL重写”的概念、重要性以及实现方法。 一、动态URL与静态URL的区别 1. 动态URL:动态URL通常包含“?”、“=”、"&"等特殊字符,用于传递参数给服务器执行相应的动态脚本,例如...

    动态Jsp页面转换成静态Html页面

    3. 解析JSP:使用JSP的`RequestDispatcher.include()`或`JspRuntimeLibrary.include()`方法,将JSP页面包含进来并执行,得到HTML字符串。 4. 生成HTML:将HTML字符串写入到一个新文件中,文件名通常是JSP文件名加上....

    JSP项目的URL重写

    综上所述,`urlrewritefilter`是JSP项目中实现URL重写的一个强大工具,通过合理的配置和规则设定,可以极大地改善Web应用的URL结构,提高用户体验和SEO效果。理解并熟练运用它的配置和规则,对于提升Web应用质量具有...

    jsp页面中获取servlet请求中的参数的办法详解

    在Servlet中,我们使用`request.getRequestDispatcher("/bbs.jsp").forward(request, response)`将控制权传递给`bbs.jsp`,这样,请求和响应对象会保持不变,JSP页面可以访问之前设置在请求作用域内的属性。...

    URL地址重写项目

    伪静态URL重写实际就是以静态地址(如:http://127.0.0.1:8080/pro/index.html)访问地态网页的方法(如:http://127.0.0.1:8080/pro/index.jsp)。 这个项目里有两个示例 输入...

    java JSP页面静态化总结_动态页面变为静态页面以减少访问数据库的次数提高速度.zip

    - **重写JspWriter**:JspWriter是JSP页面中负责输出内容的对象。通过自定义JspWriter,可以在页面渲染时直接将内容写入到静态HTML文件中,而不是输出到浏览器。 - **使用Filter过滤器**:在用户访问特定URL时,...

    jsp页面静态化

    在Web应用程序中,动态页面是主要内容,它们允许网站提供个性化的信息和服务,但这也意味着每次用户请求页面时,服务器都需要重新编译或执行JSP,可能还需要与数据库交互,这些操作都会消耗大量系统资源。...

    关于JSP页面间的传参问题

    `post.jsp`页面可以通过`request.getParameter("btn1")`和`request.getParameter("btn2")`获取到传递的值。 **注意点:** - POST方式虽然更安全,但也需要注意防止跨站脚本攻击(XSS)等安全问题。 - POST请求通常...

    jsp的页面静态化技术,很实用

    总结来说,JSP页面静态化是提高Web应用性能的有效手段,它需要结合合适的策略和技术,如预渲染、实时转换和缓存,以达到最佳效果。在实际应用中,还需要关注URL管理、数据更新、SEO和安全性等方面,确保系统的稳定性...

    Jsp技术概述和jsp页面中的JavaBean组件参照.pdf

    Jsp技术概述和jsp页面中的JavaBean组件参照 Jsp技术概述 Jsp技术可以让我们轻松地创建静态及动态的网络内容。Jsp技术设计了所有Java Servlet技术的动态能力,而且还提供了更自然的途径创建静态内容。Jsp主要特点...

    jsp中Action使用session方法实例分析.docx

    ### JSP中Action使用Session方法实例分析 #### 引言 在Web开发中,特别是采用Java Server Pages (JSP) 和 Struts 框架进行开发时,会话管理(Session Management)是一项非常重要的功能。Session 使得服务器能够...

    jsp页面上传图片例子

    在本文中,我们将深入探讨如何使用JSP(JavaServer Pages)页面实现图片上传功能,并在上传后能够在页面上展示这些图片。JSP是Java平台上的一种动态网页技术,它结合了HTML和Java代码,使得开发者能够方便地创建交互...

    URL重写 隐藏真实的访问地址 保证网站的安全

    1. **提升用户体验**:通过创建有意义、简洁的URL,用户可以更容易地理解和记住页面地址,增加网站的可读性和可分享性。例如,`example.com/blog/post/123`比`example.com/?id=123`更有助于用户理解其指向的是哪篇...

    地址栏的地址重写静态

    标题"地址栏的地址重写静态"指的是将原本动态生成的ASPX页面转换为静态HTML页面,从而改善网站性能和用户体验。 ASPX页面是基于微软.NET Framework的ASP.NET技术构建的,这些页面通常处理服务器端的请求,执行逻辑...

    JSP 页面中用绝对路径显示图片

    这种方法尤其适用于静态资源管理,比如在多个页面中重复使用的背景图片或者logo。 首先,了解JSP的基本结构。JSP是由HTML、CSS、JavaScript以及Java代码混合组成的。在HTML或JSP中插入图片,通常使用`&lt;img&gt;`标签: ...

    asp.net Url重写与动态生成静态页面

    ASP.NET URL重写和动态生成静态页面是两个关键的技术,它们在提高网站性能、优化搜索引擎排名(SEO)以及提供用户友好的URL等方面发挥着重要作用。 首先,我们来深入理解ASP.NET URL重写。URL重写是一种技术,允许...

    Hibernate servlet 和 JSP页面

    在JSP中,可以使用EL(Expression Language)和JSTL(JavaServer Pages Standard Tag Library)简化页面逻辑,减少Java代码的使用。 4. Hibernate 与 Servlet 结合: 在Servlet中,我们通常会创建Hibernate ...

Global site tag (gtag.js) - Google Analytics