表单提交 url如何重写

来源:百度知道 编辑:UC知道 时间:2024/06/15 15:11:15
http://zhidao.baidu.com/question/85477810.html?quesup1

一般表单提交后地址是这样的/search.jsp?a=1&b=2
如何变成这样呢
/search/1/2

URL重写就是首先获得一个进入的URL请求然后把它重新写成网站可以处理的另一个URL的过程。举个例子来说,如果通过浏览器进来的URL是“UserProfile.aspx?ID=1”那么它可以被重写成 “UserProfile/1.aspx”,这样的URL,这样的网址可以更好的被网站所阅读。
  如果浏览器不支持Cookie或用户阻止了所有Cookie,可以把会话ID附加在HTML页面中所有的URL上,这些页面作为响应发送给客户。这样,当用户单击URL时,会话ID被自动作为请求行的一部分而不是作为头行发送回服务器。这种方法称为URL重写(URL rewriting)。
  一般来说,URL重写是支持会话的非常健壮的方法。在不能确定浏览器是否支持Cookie的情况下应该使用这种方法。然而,使用URL重写应该注意下面几点:
  1.如果使用URL重写,应该在应用程序的所有页面中,对所有的URL编码,包括所有的超链接和表单的action属性值。
  2.应用程序的所有的页面都应该是动态的。因为不同的用户具有不同的会话ID,因此在静态HTML页面中无法在URL上附加会话ID。
  3.所有静态的HTML页面必须通过Servlet运行,在它将页面发送给客户时会重写URL。

<form name="fm" action="/search.jsp?a=1&b=2 " onsubmit="clickThis()">
</form>

js里写一个方法
function clickThis(){
document.fm.action="/search/1/2";
document.fm.submit();
}

js重写action参数

想那样访问 要在web.xml 里面配置一个监听器 监听/search