﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-遗失的冬季-文章分类-Struts</title><link>http://www.blogjava.net/bluewind/category/30725.html</link><description>永远支持BeanSoft~</description><language>zh-cn</language><lastBuildDate>Mon, 28 Apr 2008 10:00:44 GMT</lastBuildDate><pubDate>Mon, 28 Apr 2008 10:00:44 GMT</pubDate><ttl>60</ttl><item><title>URL重写技术</title><link>http://www.blogjava.net/bluewind/articles/192015.html</link><dc:creator>bluerain_wind</dc:creator><author>bluerain_wind</author><pubDate>Thu, 10 Apr 2008 15:00:00 GMT</pubDate><guid>http://www.blogjava.net/bluewind/articles/192015.html</guid><wfw:comment>http://www.blogjava.net/bluewind/comments/192015.html</wfw:comment><comments>http://www.blogjava.net/bluewind/articles/192015.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/bluewind/comments/commentRss/192015.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/bluewind/services/trackbacks/192015.html</trackback:ping><description><![CDATA[URL重写技术的优点：<br />
1、满足搜索引擎的要求。某些搜索引擎不能支持动态页面的抓取，大量的信息就不能被用户搜索到。应此把网站地址改成静态的绝对地址是很有必要的。<br />
2、隐藏技术实现。<br />
有些网站挂着.asp、.jsp开发语言的标记，让人一眼就看出使用什么语言开发的。使用URL重写技术就可以实现地址的隐藏。<br />
<br />
下面是个URL重写技术的例子：<br />
<br />
index.jsp<br />
<p>&lt;%@ page language="java" pageEncoding="ISO-8859-1"%&gt;</p>
<p>&lt;%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %&gt;<br />
&lt;%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %&gt;<br />
&lt;%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %&gt;<br />
&lt;%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles" %&gt;</p>
<p><br />
&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&gt;<br />
&lt;html:html lang="true"&gt;<br />
&nbsp; &lt;head&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;html:base /&gt;<br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;title&gt;index.jsp&lt;/title&gt;</p>
<p>&nbsp;&lt;meta http-equiv="pragma" content="no-cache"&gt;<br />
&nbsp;&lt;meta http-equiv="cache-control" content="no-cache"&gt;<br />
&nbsp;&lt;meta http-equiv="expires" content="0"&gt;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&lt;meta http-equiv="keywords" content="keyword1,keyword2,keyword3"&gt;<br />
&nbsp;&lt;meta http-equiv="description" content="This is my page"&gt;<br />
&nbsp;&lt;!--<br />
&nbsp;&lt;link rel="stylesheet" type="text/css" href="styles.css"&gt;<br />
&nbsp;--&gt;</p>
<p>&nbsp; &lt;/head&gt;<br />
&nbsp; <br />
&nbsp; &lt;body&gt;<br />
&nbsp;&nbsp; &lt;html:link page="/personal/jilin/gaohongyan"&gt;test&lt;/html:link&gt; <br />
&nbsp; &lt;/body&gt;<br />
&lt;/html:html&gt;</p>
<br />
<br />
Action的java代码：<br />
UrlReWriteAction.jsp<br />
<p>* Generated by MyEclipse Struts<br />
&nbsp;* Template path: templates/java/JavaClass.vtl<br />
&nbsp;*/<br />
package com.yourcompany.struts.action;</p>
<p>import javax.servlet.http.HttpServletRequest;<br />
import javax.servlet.http.HttpServletResponse;<br />
import org.apache.struts.action.Action;<br />
import org.apache.struts.action.ActionForm;<br />
import org.apache.struts.action.ActionForward;<br />
import org.apache.struts.action.ActionMapping;</p>
<p>/** <br />
&nbsp;* MyEclipse Struts<br />
&nbsp;* Creation date: 04-10-2008<br />
&nbsp;* <br />
&nbsp;* XDoclet definition:<br />
&nbsp;* @struts.action validate="true"<br />
&nbsp;*/<br />
public class UrlReWriteAction extends Action {<br />
&nbsp;/*<br />
&nbsp; * Generated Methods<br />
&nbsp; */</p>
<p>&nbsp;/** <br />
&nbsp; * Method execute<br />
&nbsp; * @param mapping<br />
&nbsp; * @param form<br />
&nbsp; * @param request<br />
&nbsp; * @param response<br />
&nbsp; * @return ActionForward<br />
&nbsp; */<br />
&nbsp;public ActionForward execute(ActionMapping mapping, ActionForm form,<br />
&nbsp;&nbsp;&nbsp;HttpServletRequest request, HttpServletResponse response) {<br />
&nbsp;&nbsp;// TODO Auto-generated method stub<br />
&nbsp;&nbsp;System.out.println("city = " + request.getParameter("city"));<br />
&nbsp;&nbsp;System.out.println("name = " + request.getParameter("name"));<br />
&nbsp;&nbsp;return null;<br />
&nbsp;}<br />
}<br />
<br />
<br />
导入JAR包：urlrewrite-2.6.0.jar 在 <a href="http://tuckey.org/urlrewrite/">http://tuckey.org/urlrewrite/</a>下载<br />
<br />
<br />
web.xml中添加以下代码：<br />
&lt;filter&gt;<br />
&nbsp;&nbsp;&lt;filter-name&gt;UrlRewriteFilter&lt;/filter-name&gt;<br />
&nbsp;&nbsp;&lt;filter-class&gt;<br />
&nbsp;&nbsp;&nbsp;org.tuckey.web.filters.urlrewrite.UrlRewriteFilter<br />
&nbsp;&nbsp;&lt;/filter-class&gt;<br />
&nbsp;&lt;/filter&gt;<br />
&nbsp;<br />
&nbsp;&lt;filter-mapping&gt;<br />
&nbsp;&nbsp;&lt;filter-name&gt;UrlRewriteFilter&lt;/filter-name&gt;<br />
&nbsp;&nbsp;&lt;url-pattern&gt;/*&lt;/url-pattern&gt;<br />
&nbsp;&lt;/filter-mapping&gt;<br />
<br />
在WEB-INF添加：<br />
urlrewrite.xml</p>
<p>&lt;?xml version="1.0" encoding="utf-8"?&gt;<br />
&lt;!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 2.6//EN"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "http://tuckey.org/res/dtds/urlrewrite2.6.dtd"&gt;</p>
<p>&lt;urlrewrite&gt;</p>
<p>&nbsp;&lt;rule&gt;<br />
&nbsp;&nbsp;&lt;from&gt;/personal/([a-z]+)/([a-z]+)&lt;/from&gt;<br />
&nbsp;&nbsp;&lt;to type="forward"&gt;/urlReWrite.do?city=$1&amp;amp;name=$2&lt;/to&gt;<br />
&nbsp;&lt;/rule&gt;</p>
<p>&lt;/urlrewrite&gt;<br />
<br />
更多内容请登录：<a href="http://tuckey.org/urlrewrite/">http://tuckey.org/urlrewrite/</a></p>
  <img src ="http://www.blogjava.net/bluewind/aggbug/192015.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/bluewind/" target="_blank">bluerain_wind</a> 2008-04-10 23:00 <a href="http://www.blogjava.net/bluewind/articles/192015.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>