我公司的网站“批发啦!www.pifala.com”是jsp开发的,有一个很好的框架结构。可是各个URL连接都是类似
http://www.pifala.com/f50.jsp?ln=zhs&pg=10151
这样的带有?的标准语句。 这导致我们的网站www.pifala.com不是很适合搜索引擎的搜索喜好。
老板指令:把这些连接都改为类似静态页面的目录级连接,而且目录结构不能太深。
一般来说,把网站URL改成目录结构,有2个方法:
1. 通过Apache或者Resin的Rewrite模块将类似http://www.pifala.com/f50.jsp?ln=zhs&pg=10151的语句重写为http://www.pifala.com/f50/ln=zhs,pg=10151,act=LSN
这样在网页上就表现为静态目录级别连接。
2. 用专用工具把网站全部生成为静态的html文件。 *.jsp的动态网页只是用来生成html使用; 客户浏览网站www.pifala.com实际都是浏览那些已经生成的静态html文件。
因为我公司网站是电子商务网站,里边的产品信息、报价等会经常变,并且因为我们还提供在线订购的订单管理功能,所以,经过权衡,我们选用方法1,通过Apache或者Resin的Rewrite模块重写URL。
具体方法如下。
1. 在Resin的对应本WEB-INF目录下的web.xml文件中新增如下部分:
<web-app id='/'>
<directory-servlet>none</directory-servlet>
<filter filter-name='rewrite' filter-class='com.caucho.filters.RewriteFilter'>
<init>
<rewrite pattern="/f500/([^/]*)\.html" target="/\test\f500.jsp?paras=$1"/>
</init>
</filter>
<filter-mapping url-pattern='/*' filter-name='rewrite'/>
</web-app>
2. 在Java文件中新增一个方法:
public String get_request_paras_value_sep(String paraname,String default_value,HttpServletRequest request) {
}
这个方法很重要,作用是把f500.jsp?paras=$1 中得到的paras列表分解为多个独立的paras,然后取得该para的值。举例说明:
URL: f50/ln=zhs,pg=10151,act=LSN
经过Rewrite还原后,就是 f50.jsp?paras=ln=zhs,pg=10151,act=LSN
paras=ln=zhs,pg=10151,act=LSN 经过get_request_paras_value_sep()分解后就得到:
ln=zhs
pg=10151
| 论坛热门帖子: | [lch203] 写得蛮好的linux学习笔记(10-21) [黑马制造] 学习java的30个目标(10-19) [笑傲股林] 做测试半年了,有点迷茫,应该再学些什么提高自己的测试水平和测试能力呢?(10-19) [udp8589] 大家用google的来吱一声? 用百度的~~也来报道下?(10-18) [沂偌掳兆] 本人总结的一些认为C++比较经典的书籍,希望对大家有用(10-18) |
| TAG标签: | 技巧 总结 重写 目录 关于 URL 我们 方法 pg 网站 act |
注册
个人空间
