下面是使用说明:
1.下载urlrewrite,官方下载地址:http://tuckey.org/urlrewrite/dist/urlrewritefilter-2.6.zip
2.解压缩文件,压缩包内文件copy到项目中(压缩包位置 -> 项目位置):
urlrewrite-2.6.0-src/webapp/WEB-INF/lib/urlrewrite-2.6.0.jar -> WebRoot/WEB-INF/lib/urlrewrite-2.6.0.jar
urlrewrite-2.6.0-src/webapp/WEB-INF/urlrewrite.xml -> WebRoot/WEB-INF/urlrewrite.xml
3.将以下代码添加到web.xml里
<filter> <filter-name>UrlRewriteFilter</filter-name> <filter-class> org.tuckey.web.filters.urlrewrite.UrlRewriteFilter </filter-class> </filter> <filter-mapping> <filter-name>UrlRewriteFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
4.修改urlrewrite.xml
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 2.6//EN"
"http://tuckey.org/res/dtds/urlrewrite2.6.dtd">
<!--
Configuration file for UrlRewriteFilter
http://tuckey.org/urlrewrite/
-->
<urlrewrite>
<!-- 不带参数 -->
<rule>
<from>^/way1</from>
<to >/notParam.jsp</to>
</rule>
<!-- 带参数单个 -->
<rule>
<from>^/way2([0-9]+)$</from>
<to >/onlyParam.jsp?id=$1</to>
</rule>
<!-- 带参数多个 -->
<rule>
<from>^/way3([0-9]+)/([a-z]+)/([0-9a-zA-Z]+)$</from>
<to >/manyParam.jsp\?id=$1&name1=$2&name2=$3</to>
</rule>
</urlrewrite>
5、建立index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>URL 重写</title>
<script type="text/javascript">
function formSubmit()
{
var way=document.getElementById("way").value;
if(way==1){
form1.action="way1"
form1.submit();
}
if(way==2){
form1.action="way2"+way
form1.submit();
}
if(way==3){
form1.action="way3"+way+"/admin"+"/admin110"
form1.submit();
}
}
</script>
</head>
<body>
<form name="form1" id="form1" method="post">
<h1>URL 重写</h1>
<select name="way" id="way">
<option value="1">不带参数的URL</option>
<option value="2">带参数的URL(单个参数)</option>
<option value="3">带参数的URL(多个参数)</option>
</select>
<input type="button" value="提交" οnclick="formSubmit()"/>
</form>
</body>
</html>
注意:这里action提交的是way1
6、建立notParam.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无参数</title>
</head>
<body>
无参数
</body>
</html>
7、建立onlyParam.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>带参数-单个</title>
</head>
<body>
id:<%=request.getParameter("id") %>
</body>
</html>
8、建立manyParam.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>带参数-单个</title>
</head>
<body>
<h2>数字:<%=request.getParameter("id") %></h2>
<h2>英文:<%=request.getParameter("name1") %></h2>
<h2>数字与英文:<%=request.getParameter("name2") %></h2>
</body>
</html>