Posted on 2008-04-10 23:00
wind_miao 閱讀(1621)
評論(0) 編輯 收藏 所屬分類:
Struts 、
J2EE
URL重寫技術的優點:
1、滿足搜索引擎的要求。某些搜索引擎不能支持動態頁面的抓取,大量的信息就不能被用戶搜索到。應此把網站地址改成靜態的絕對地址是很有必要的。
2、隱藏技術實現。
有些網站掛著.asp、.jsp開發語言的標記,讓人一眼就看出使用什么語言開發的。使用URL重寫技術就可以實現地址的隱藏。
下面是個URL重寫技術的例子:
index.jsp
<%@ page language="java" pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
<%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html:html lang="true">
<head>
<html:base />
<title>index.jsp</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<html:link page="/personal/jilin/gaohongyan">test</html:link>
</body>
</html:html>
Action的java代碼:
UrlReWriteAction.jsp
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package com.yourcompany.struts.action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
/**
* MyEclipse Struts
* Creation date: 04-10-2008
*
* XDoclet definition:
* @struts.action validate="true"
*/
public class UrlReWriteAction extends Action {
/*
* Generated Methods
*/
/**
* Method execute
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward
*/
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
// TODO Auto-generated method stub
System.out.println("city = " + request.getParameter("city"));
System.out.println("name = " + request.getParameter("name"));
return null;
}
}
導入JAR包:urlrewrite-2.6.0.jar 在 http://tuckey.org/urlrewrite/下載
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>
在WEB-INF添加:
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">
<urlrewrite>
<rule>
<from>/personal/([a-z]+)/([a-z]+)</from>
<to type="forward">/urlReWrite.do?city=$1&name=$2</to>
</rule>
</urlrewrite>
更多內容請登錄:http://tuckey.org/urlrewrite/