比如我现在浏览我的JSP页面要这样:http://www.abc.com/str/u.jsp?id=2001.我怎么可以重写该URL成为.html的后缀,就像这样子:http://www.abc.com/str/20010304.html

解决方案 »

  1.   

    一般说的url重写是实现会话跟踪的一种方式,(还有使用cookies)你这里的这个问题使用字符串操作把最后的u.jsp?id=2001替换成20010304.html不就行了吗.
      

  2.   

    appfuse中使用了UrlRewrite.实现了url的重写,这样有什么用处呢?上网搜了一把,大体上有以下好处:1、满足搜索引擎的要求 
    某些搜索引擎不能支持动态页面的抓取,大量的信息就不能被潜在用户搜索到。用UrlRewrite技术你可以把 http://server/news.asp?id=111 变成 http://server/news/111.htm 这样他们就会被搜索引擎收录了。google虽然可以抓取动态页面,但是google对动态页面的评分一般低于静态页面。所以,对大量信息发布的网站,把网站地址改变成静态的绝对是值得的。
     
    2、隐藏技术实现,提高网站的移植性 
    每个页面都挂着鲜明的.asp/.jsp这种开发语言的标记,可以一眼让人看出你的网站使用什么语言做的。而且在改变网站的语言的时候,你需要改动大量的链接。而且,一个页面修改了扩展名,他的pagerank也会随之消失,从头开始。我们可以用UrlRewrite技术隐藏我们的实现细节,这样修改移植都很方便,而且完全不损失pagerank。 3、满足美感的要求 
    对于追求完美主义的网站设计师,即使是网页的地址也要看起来简洁明快。形如 http://server/news.asp?channel=3&id=111 的网页地址,肯定是上不了完美主义者的法眼的,用UrlRewrite技术,你可以把他变成 http://server/news/3/111.htm 。 
    在应用中怎样集成它呢?看看appfuse中的实现方式。
    首先在web.xml中配置一个过滤器:1<filter>
    2    <filter-name>rewriteFilter</filter-name>
    3    <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
    4    <init-param>
    5        <param-name>logLevel</param-name>
    6        <param-value>commons</param-value>
    7    </init-param>
    8</filter>
    1<filter-mapping>
    2    <filter-name>rewriteFilter</filter-name>
    3    <url-pattern>/**//*</url-pattern>
    4    <!--dispatcher>REQUEST</dispatcher>
    5    <dispatcher>FORWARD</dispatcher-->
    6</filter-mapping>
    然后在WEB-INF目录下有一个配置文件urlrewrite.xml内容如下: 1<?xml version="1.0" encoding="utf-8"?>
     2<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 3.0//EN"
     3    "http://tuckey.org/res/dtds/urlrewrite3.0.dtd">
     4
     5<!-- https://urlrewrite.dev.java.net/manual/3.0 -->
     6<urlrewrite>
     7    <rule>
     8        <from>^/user/(.*).html$</from>
     9        <to type="forward">/editUser.html\?username=$1</to>
    10    </rule>
    11
    12    <!-- Override default validation.js from WebWork -->
    13    <rule>
    14        <from>^/webwork/css_xhtml/validation.js$</from>
    15        <to type="forward">/template/css_xhtml/validation.js</to>
    16    </rule>
    17</urlrewrite>在http://www.blogjava.net/liuwentao253/archive/2006/08/20/64600.html地址可以看到原帖