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页面传值方式,包括使用表单、URL重写、JavaScript动态改变表单行为、JSP内置对象和标签库以及Cookie和Session。不同的场景下可以选择不同的方法来满足需求。在实际应用中,开发者还需要考虑...
下面将详细阐述JSP中的URL重写原理、配置方法及其实际应用。 ### URL重写原理 URL重写(URL Rewriting)是一种服务器端技术,用于改变请求的URL,使之看起来更友好、更具描述性,同时不影响原有的资源定位。在JSP...
综上所述,JSP提供了多种页面跳转的方法,每种方法都有其适用场景和限制。`response.sendRedirect`适用于需要改变URL或进行跨服务器跳转的情况;`response.setHeader`则更偏向于遵循HTTP规范的重定向操作;而`<jsp:...
本篇文章将详细探讨“jsp动态转静态URL重写”的概念、重要性以及实现方法。 一、动态URL与静态URL的区别 1. 动态URL:动态URL通常包含“?”、“=”、"&"等特殊字符,用于传递参数给服务器执行相应的动态脚本,例如...
3. 解析JSP:使用JSP的`RequestDispatcher.include()`或`JspRuntimeLibrary.include()`方法,将JSP页面包含进来并执行,得到HTML字符串。 4. 生成HTML:将HTML字符串写入到一个新文件中,文件名通常是JSP文件名加上....
综上所述,`urlrewritefilter`是JSP项目中实现URL重写的一个强大工具,通过合理的配置和规则设定,可以极大地改善Web应用的URL结构,提高用户体验和SEO效果。理解并熟练运用它的配置和规则,对于提升Web应用质量具有...
在Servlet中,我们使用`request.getRequestDispatcher("/bbs.jsp").forward(request, response)`将控制权传递给`bbs.jsp`,这样,请求和响应对象会保持不变,JSP页面可以访问之前设置在请求作用域内的属性。...
伪静态URL重写实际就是以静态地址(如:http://127.0.0.1:8080/pro/index.html)访问地态网页的方法(如:http://127.0.0.1:8080/pro/index.jsp)。 这个项目里有两个示例 输入...
- **重写JspWriter**:JspWriter是JSP页面中负责输出内容的对象。通过自定义JspWriter,可以在页面渲染时直接将内容写入到静态HTML文件中,而不是输出到浏览器。 - **使用Filter过滤器**:在用户访问特定URL时,...
在Web应用程序中,动态页面是主要内容,它们允许网站提供个性化的信息和服务,但这也意味着每次用户请求页面时,服务器都需要重新编译或执行JSP,可能还需要与数据库交互,这些操作都会消耗大量系统资源。...
`post.jsp`页面可以通过`request.getParameter("btn1")`和`request.getParameter("btn2")`获取到传递的值。 **注意点:** - POST方式虽然更安全,但也需要注意防止跨站脚本攻击(XSS)等安全问题。 - POST请求通常...
总结来说,JSP页面静态化是提高Web应用性能的有效手段,它需要结合合适的策略和技术,如预渲染、实时转换和缓存,以达到最佳效果。在实际应用中,还需要关注URL管理、数据更新、SEO和安全性等方面,确保系统的稳定性...
Jsp技术概述和jsp页面中的JavaBean组件参照 Jsp技术概述 Jsp技术可以让我们轻松地创建静态及动态的网络内容。Jsp技术设计了所有Java Servlet技术的动态能力,而且还提供了更自然的途径创建静态内容。Jsp主要特点...
### JSP中Action使用Session方法实例分析 #### 引言 在Web开发中,特别是采用Java Server Pages (JSP) 和 Struts 框架进行开发时,会话管理(Session Management)是一项非常重要的功能。Session 使得服务器能够...
在本文中,我们将深入探讨如何使用JSP(JavaServer Pages)页面实现图片上传功能,并在上传后能够在页面上展示这些图片。JSP是Java平台上的一种动态网页技术,它结合了HTML和Java代码,使得开发者能够方便地创建交互...
1. **提升用户体验**:通过创建有意义、简洁的URL,用户可以更容易地理解和记住页面地址,增加网站的可读性和可分享性。例如,`example.com/blog/post/123`比`example.com/?id=123`更有助于用户理解其指向的是哪篇...
标题"地址栏的地址重写静态"指的是将原本动态生成的ASPX页面转换为静态HTML页面,从而改善网站性能和用户体验。 ASPX页面是基于微软.NET Framework的ASP.NET技术构建的,这些页面通常处理服务器端的请求,执行逻辑...
这种方法尤其适用于静态资源管理,比如在多个页面中重复使用的背景图片或者logo。 首先,了解JSP的基本结构。JSP是由HTML、CSS、JavaScript以及Java代码混合组成的。在HTML或JSP中插入图片,通常使用`<img>`标签: ...
ASP.NET URL重写和动态生成静态页面是两个关键的技术,它们在提高网站性能、优化搜索引擎排名(SEO)以及提供用户友好的URL等方面发挥着重要作用。 首先,我们来深入理解ASP.NET URL重写。URL重写是一种技术,允许...
在JSP中,可以使用EL(Expression Language)和JSTL(JavaServer Pages Standard Tag Library)简化页面逻辑,减少Java代码的使用。 4. Hibernate 与 Servlet 结合: 在Servlet中,我们通常会创建Hibernate ...