使用Struts2与urlrewrite时
链接地址如下:http://localhost:8080/Finance/index
应该是链接到index.jsp
结果报了错
org.apache.jasper.JasperException: The Struts dispatcher cannot be found. This is usually caused by using Struts tags without the associated filter. Struts tags are only usable when the request has passed through its servlet filter, which initializes the Struts dispatcher needed for this tag. - [unknown location]
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:522)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:416)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.struts2.dispatcher.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:102)
org.tuckey.web.filters.urlrewrite.NormalRewrittenUrl.doRewrite(NormalRewrittenUrl.java:213)
org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:171)
org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145)
org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92)
org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:381)
org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:61)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
org.dengzh.filter.EncodeFilter.doFilter(EncodeFilter.java:38)
仔细检查以后,发现是struts2的filterDispatcher过滤器写成了如下
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
</filter-mapping>
把*.action改成*.即过滤所有后缀,就不会出现上述错误,不然会导致struts2的标签无法找到的问题
分享到:
相关推荐
- 在`urlrewrite.xml`中,我们可以定义规则来重写URL。例如,将上面的URL从`/struts2urlrewrite/welcome.action`重写为`/welcome`: ```xml <from>/welcome <to type="forward">/struts2urlrewrite/welcome....
urlrewrite Jar包 urlrewrite-3.1.0.jar
`type="redirect"`表示客户端会接收到一个302重定向响应,`%{contextPath}`是当前应用的上下文路径,`${name}`则是从原始URL中提取的参数。 4. **启动应用**:现在,当你运行应用并访问原始URL时,`URL Rewrite ...
url jessionid 处理url中有乱码的情况
**IIS URL重写2详解** IIS URL重写2是微软为Internet Information Services (IIS) 提供的一款强大且灵活的URL管理工具,主要用于优化网站的URL结构,提高搜索引擎优化(SEO)效果,以及实现更加友好的用户体验。这...
Mode Rewrite模块的配置方法是在Apache的配置文件httpd.conf中添加相关的指令,例如 LoadModule rewrite_module modules/mod_rewrite.so,这将启用Mode Rewrite模块。然后,在httpd.conf文件中添加相关的Rewrite规则...
根据提供的信息,项目中使用的是版本为2.6.0的`urlrewrite`库,其路径为`WebRoot/WEB-INF/lib/urlrewrite-2.6.0.jar`。 - **配置文件`urlrewrite.xml`**:这是URLRewrite的核心配置文件,其中定义了URL重写的规则。...
urlrewrite-2.5.2.jar urlrewrite-2.5.2.jar
在网上找了很多都不合心意,就知道改了下源码,只改了org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.class 文件,如果担心安全的朋友,可以下载 4.0.3的jar 替换UrlRewriteFilter.class即可。 confPath 默认 ...
2. **参数传递**:在URL中隐藏实际的请求参数,提高安全性。 3. **路径重定向**:根据预设规则进行URL重定向,如错误页处理、旧链接转向新链接等。 4. **动态路由**:通过正则表达式匹配URL,实现灵活的动态路由策略...
标题“urlrewrite2伪静态与使用文档(IIS)”涉及到的是在IIS(Internet Information Services)服务器环境中,使用urlrewrite2模块实现URL重写和伪静态功能的技术内容。URL重写是Web开发中的一项关键技术,它允许...
提供的源码示例程序可能包含了一个使用URLRewrite.dll进行URL重写的示例,通过研究这个程序,你可以更深入地了解如何在实际项目中应用和配置URLRewrite.dll。这有助于你掌握如何编写合适的重写规则,以及如何在代码...
使用URL重写技术,如Apache的mod_rewrite模块或者Tuckey的UrlRewriteFilter,可以将带有后缀的URL转换为更友好的格式。通过配置规则,可以将请求的URL动态地改变为无后缀的形式。 4. **Dispatcher Servlet**: ...
本篇文章将围绕“UrlRewrite.rar”这一主题,深入探讨URL重写的基本原理以及如何使用UrlRewrite工具进行实践操作。 一、URL重写概述 URL重写,顾名思义,就是将实际的、可能复杂难懂的URL转换为用户友好的、易于...
**IIS URL美化组件Rewrite.dll安装及使用详解** IIS(Internet Information Services)是微软提供的一个用于托管Web应用程序的服务器平台。在开发网站时,为了提升用户体验和搜索引擎优化(SEO),我们通常需要对...
2. **正则表达式**:在`<from>`和`<to>`中使用正则表达式,实现更复杂的URL匹配和替换。 3. **自定义变量**:通过`<set>`标签设置和引用变量,增加规则的灵活性。 4. **Session和Cookie管理**:可以对Session和...
5. **会话管理**:在URL中隐式传递会话ID,避免使用Cookie。 总结起来,`URLRewrite 4.0.3`是一个强大的URL管理工具,它通过灵活的配置,可以帮助Java Web开发者优化URL结构,提高应用的可用性和安全性。理解并熟练...
Apache服务器中的模块,如mod_rewrite,依赖于PCRE库进行URL重写和其他复杂匹配任务。 5. **apr-1.7.0.tar.gz**: APR (Apache Portable Runtime) 是Apache的基础库,提供跨平台的系统接口,如文件I/O、网络通信等。...