URL的静态化对SEO是非常友好的。有很多网站40%左右的流量都是来源于搜索引擎,特别是新网站。
动态URL:/common/detail.html?id=268789
静态URL:/common/detail-268789
一种方法:可以在apache或nginx中做配置。
二种方法:可以在sturts中处理
1、下载urlrewritefilter-3.1.0.zip,附件中有。
2、解压后,将urlrewrite-3.1.0.jar放入 WEB-INF/lib,将urlrewrite.xml放入WEB-INF/
3、在web.xml中加入
<filter>
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
<init-param>
<param-name>logLevel</param-name>
<param-value>WARN</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<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>*.html</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
urlRewrite的filter要在struts之上
4、urlrewrite.xml
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 3.1//EN"
"http://tuckey.org/res/dtds/urlrewrite3.1.dtd">
<!--
Configuration file for UrlRewriteFilter
http://tuckey.org/urlrewrite/
-->
<urlrewrite>
<rule>
<note>
The rule means that requests to /test/status/ will be redirected to /rewrite-status
the url will be rewritten.
</note>
<from>/common/detail\-([0-9]+)$</from>
<to>%{context-path}/common/detail.html?id=$1</to>
</rule>
</urlrewrite>
from是接到的请求url,to是解晰后的动态url。都是正则,原文件中有详细的使用介绍。
这时可以访问/common/detail-268789试试效果
分享到:
相关推荐
在使用Struts2的过程中,可能会遇到一个常见的问题,即应用试图跳转到一个不存在的页面,导致用户看到404错误。404错误通常表示服务器无法找到请求的资源,这可能是由于URL配置错误、控制器映射问题或者资源实际不...
1. **Action配置**:在Struts2中,Action是业务逻辑的核心组件。每个Action通常对应一个特定的URL,这在struts.xml配置文件中定义。例如,`<action name="myAction" class="com.example.MyAction">` 将URL `/...
本框架为struts2+spring3+hibernate4+urlrewrite(伪静态地址) Struts采用通配,web-inf下的urlrewrite.xml为伪静态配置文件,跳转到struts.xml进行对应
本知识点将详细介绍Struts2中的注解开发及其核心组件。 标题提到的"Struts2注解开发jar"主要指的是`struts2-convention-plugin`,这是一个Struts2的插件,它的主要作用是支持基于约定优于配置(Convention over ...
- 在Struts2中,Action类是处理用户请求的中心。它包含了业务逻辑,当用户发送请求时,Struts2会根据配置找到相应的Action执行。 - 结果映射(Result Maps)定义了Action执行后的跳转路径,可以是JSP页面、其他...
在`struts.xml`配置文件中,我们定义了Action类与URL的映射,以及Action执行后的跳转结果,这些结果可以是JSP页面、其他Action或静态资源。 3. **登录功能实现**:在Struts2Demo中,登录功能通常包含两个部分:登录...
2. **Package**:包是Struts2中的一个关键概念,用于组织相关的Action和结果(Result)。包可以继承其他包,从而实现配置的复用和分层。`package`标签的属性包括name、extends、namespace等,其中,namespace用于...
在Struts2中,Action的执行结果可以被导向到不同的视图,这其中包括了"redirect"和"redirectAction"两种重定向结果类型。这两种结果类型在实际应用中有着重要的作用,特别是对于处理URL重写、防止重复提交等问题。 ...
2. **Action类**:在Struts2中,Action类是处理用户请求的核心,它是业务逻辑的载体。每个Action类对应一个URL,处理特定的用户请求,并通过返回结果(Result)来决定跳转到哪个页面。 3. **配置文件**:Struts2的...
在Struts2中,JSP常用于展示用户界面和处理Struts2框架转发过来的请求。 `src`目录则包含了应用的源代码,主要包括Java类和配置文件。在Struts2中,主要有以下几个关键部分: 1. **Action类**:这是业务逻辑的核心...
在Struts2应用中,通常会有一个`struts.xml`配置文件,它定义了Action类与请求URL的映射,以及结果页面的跳转规则。在这个Demo中,你可能会找到一个或多个Action类的实现,它们处理用户请求并返回结果。 `src`目录...
4. **视图层**:在Struts2中,视图通常是JSP页面。JSP页面负责展示数据,它们通过OGNL(Object-Graph Navigation Language)表达式来获取Action中的属性值。 5. **拦截器(Interceptors)**:拦截器是Struts2的一大...
通过这个“手机化话务通系统”,开发者可以深入理解Struts2的运行机制和实际应用,同时掌握Web开发中的MVC模式、拦截器机制以及手机化的实现策略。这是一个良好的学习和实践平台,有助于提升Java Web开发技能。
在Struts2中,Result主要负责将处理后的数据传递给相应的视图,如JSP、HTML或者其他的静态资源。Result类型是通过配置在Action类的execute方法返回值或者struts.xml配置文件中定义的。默认情况下,如果未明确指定...
OGNL(Object-Graph Navigation Language)是Struts2中的默认表达式语言,用于在Action与JSP视图之间传递数据。 视图层,Struts2支持多种视图技术,如JSP、FreeMarker、Velocity等,开发者可以根据需求选择合适的...
5. 定义结果:在struts.xml中配置Action执行后的跳转结果,可以是另一个Action,也可以是静态资源或JSP页面。 6. 测试:通过浏览器访问配置好的URL,查看输出结果。 在实际项目中,Struts2不仅能够处理简单的...
在Struts2中实现数据库操作是常见的需求,包括查询、添加、修改和删除数据。以下将详细讲解如何在Struts2中进行这些基本操作。 1. **连接数据库** 在Struts2中,通常我们会创建一个数据库连接类,如`DBcon`,它...
Struts2的结果类型定义了Action执行后应跳转的目标,它可以是另一个Action、一个静态资源、一个JSP页面,甚至是重定向到外部URL。通过结果类型,开发者可以灵活控制请求的流向。 总的来说,Struts2提供了全面的工具...
在Struts2中,我们可以将生成的Chart对象转换为图片(如JPEG或PNG),然后将其作为响应的一部分发送给浏览器。这通常通过ChartUtilities类的静态方法实现,如`ChartUtilities.writeChartAsJPEG()`或`ChartUtilities....
**插件和扩展性**:Struts 2 提供了许多内置插件,如Freemarker和Velocity模板引擎支持,JSON和Ajax处理,以及国际化和本地化等。其高度的扩展性使得开发者可以根据需求轻松地添加自定义插件。 **异常处理**:...