`
wiwiluo
  • 浏览: 17734 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

我做的UrlRewrite

阅读更多

 xml文件:

 

<!-- UrlRewrite start -->
	<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>
	<!-- UrlRewrite end -->

<servlet>
    <servlet-name>NewsServlet2</servlet-name>
    <servlet-class>fkw.bll.news.NewsServlet2</servlet-class>
  </servlet>
<servlet-mapping>
    <servlet-name>NewsServlet2</servlet-name>
    <url-pattern>/servlet/NewsServlet2</url-pattern>
  </servlet-mapping>

 

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>

	<!-- 将/front/news/index.jsp映射为/news/index.html -->
	<rule>
		<from>/news/index.html</from>
		<to type="forward">/front/news/index.jsp</to>
	</rule>

	<!-- 将servlet/NewsServlet2?action=listNews伪装成news/listNews.html -->
	<rule>
		<from>news/listNews.html</from>
		<to type="forward">servlet/NewsServlet2?action=listNews</to>
	</rule>

	<!-- 讲servlet/NewsServlet2?action=getNews伪装成news/showNews.html -->
	<rule>
		<from>news/showNews_([0-9]+).html$</from>
		<to type="forward">
			servlet/NewsServlet2?action=getNews&amp;newsid=$1
		</to>
	</rule>

</urlrewrite>

 

工程目录结构:

 

 

Servlet:

 

package fkw.bll.news;

import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import fkw.iface.INews;
import fkw.impl.ImplFactory;
import fkw.impl.news.NewsImpl;
import fkw.model.news.NewsBean;

/**
 * UrlRewrite test
 * 
 * @author saebalee
 * 
 */
public class NewsServlet2 extends HttpServlet {

	/**
	 * 
	 */
	private static final long serialVersionUID = 2934173725340619559L;

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doPost(request, response);
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		String action = request.getParameter("action");
		System.out.println("新闻访问的action是:" + action);
		String forward = null;
		if ("listNews".equals(action)) {
			forward = ListNews(request, response);
		} else if ("getNews".equals(action)) {
			forward = GetNews(request, response);
		}
		request.getRequestDispatcher(forward).forward(request, response);
	}

	/**
	 * 新闻列表
	 * 
	 * @param request
	 * @param response
	 * @return
	 */
	private String ListNews(HttpServletRequest request,
			HttpServletResponse response) {
		String url = null;
		try {
			INews newsImpl = (INews) ImplFactory.getInstance(NewsImpl.class
					.getName());
			List<NewsBean> newss = newsImpl.listNews();
			request.setAttribute("newss", newss);
			url = "../front/news/newslist.jsp";
		} catch (Exception e) {
			e.printStackTrace();
		}
		return url;
	}

	/**
	 * 获取新闻
	 * 
	 * @param request
	 * @param response
	 * @return
	 */
	private String GetNews(HttpServletRequest request,
			HttpServletResponse response) {
		String url = null;
		int newsid = Integer.parseInt(request.getParameter("newsid"));
		System.out.println("新闻id是:" + newsid);
		try {
			INews newsImpl = (INews) ImplFactory.getInstance(NewsImpl.class
					.getName());
			NewsBean news = newsImpl.getNews(newsid);
			List<NewsBean> newss = newsImpl.listNews();
			request.setAttribute("news", news);
			request.setAttribute("newss", newss);
			url = "../front/news/showNews.jsp";
		} catch (Exception e) {
			e.printStackTrace();
		}
		return url;
	}
}

 

index.jsp:

 

只有一个超链接

<a href="../news/listNews.html">查看新闻列表</a>

 

newslist.jsp:

 

<body topmargin="0">
<table id="newslist" cellpadding="7" cellspacing="3" border="0" align="center" width="70%" bordercolor="#FF6600">
	<tr>
    	<td colspan="2"><a href="index.html">首页</a> &gt;&gt; 新闻列表</td>
    </tr>
	<tr>
    	<td class="title" colspan="2">新闻列表</td>
    </tr>
    <c:forEach items="${newss}" var="news">
	<tr>
    	<td width="70%" align="left"><a href="../news/showNews_${news.newsid }.html">${news.title }</a></td>
        <td width="30%" align="right">发布时间:${news.addtime }</td>
    </tr>
    </c:forEach>
</table>
</body>

 

showNews.jsp:

 

<body topmargin="0">
<div id="con">
<table cellpadding="7" cellspacing="3" border="0" align="center" width="100%" bordercolor="#FF6600">
	<tr>
    	<td><a href="index.html">首页</a> &gt;&gt; <a href="listNews.html">新闻列表</a> &gt;&gt; ${news.title }</td>
    </tr>
	<tr>
    	<th class="title">${news.title }</th>
    </tr>
	<tr>
    	<td align="right">来源网址:${news.author } 发表时间:${news.addtime }</td>
    </tr>
    <tr>
    	<td bgcolor="#E8F2FE" class="content">${news.intro }</td>
    </tr>
    <tr>
    	<td class="content">${news.content }</td>
    </tr>
</table>
</div>
<div id="listnew">
	<span style="float: right;height: 30px; width: 100%;position: relative; margin-left: 50px;">新闻列表</span>
	<c:forEach items="${newss }" var="neww">
		<li><a href="../news/showNews_${neww.newsid }.html">${neww.title }</a></li>
	</c:forEach>
</div>
</body>

 

效果图:

 

第一张:这个是列出了全部的新闻标题,如果没有UrlRewrite的话,地址栏实际显示的应该是

http://localhost:8080/fkw/servlet/NewsServlet2?action=listNews

而经过UrlRewrite,目前如下显示

下面每一条新闻标题的超链接都是:http://localhost:8080/fkw/news/showNews_newid.html

newsid为每一条新闻的id

 

 

第二张图:

这张是对某一条新闻的具体显示

实际访问的地址其实是:

http://localhost:8080/fkw/servlet/NewsServlet2?action=getNews&newsid=3

现在如下显示

 

 

分享到:
评论
1 楼 wiwiluo 2010-01-27  
不好意思,我好像发错板块了

相关推荐

    urlrewrite2伪静态与使用文档(IIS)

    标题“urlrewrite2伪静态与使用文档(IIS)”涉及到的是在IIS(Internet Information Services)服务器环境中,使用urlrewrite2模块实现URL重写和伪静态功能的技术内容。URL重写是Web开发中的一项关键技术,它允许...

    urlrewrite-maven-example.zip

    《URLRewrite:掌握网页地址重写的关键技术》 URLRewrite是一款强大的URL管理工具,尤其在Java Web应用中广泛使用,它可以帮助开发者实现URL的重写和转换,以达到优化URL、隐藏真实路径、提高SEO效果等目的。在本篇...

    UrlRewrite.rar

    《URL重写技术详解——基于UrlRewrite工具的实践指南》 在Web开发领域,URL重写是一项重要的技术,它能够使网站的URL更加友好、简洁,提高用户体验,同时也有利于搜索引擎优化(SEO)。本篇文章将围绕“UrlRewrite....

    netcn_URLRewrite

    什么是UrlRewrite UrlRewrite 是 将动态页面转换为静态页面的一种技术 例如 您网站页面是 http: www yourdomain com news docread aspx id 123 为什么使用UrlRewrite: 1 处理这样的情形:你要更改你的web应用...

    URLRewrite配置和使用

    URLRewrite配置和使用 URLRewrite是一种URL重写技术,它可以满足搜索引擎的要求,隐藏技术实现,提高网站的移植性,并满足美感的要求。下面将详细介绍URLRewrite的配置和使用。 1. 满足搜索引擎的要求 搜索引擎对...

    urlrewrite3.04的demo

    **URLRewrite 3.0.4:优雅的URL管理工具** 在Web开发中,URL的设计和管理对于网站的用户体验和搜索引擎优化(SEO)至关重要。`urlrewrite`是一款优秀的Java库,专门用于处理URL重写,它使得动态网站能够展现静态化...

    IIS Urlrewrite2

    1. **安装**:下载并安装IIS URL重写2的扩展,通常是`IIS Urlrewrite2.exe`文件,通过IIS Manager进行安装。 2. **添加规则**:在IIS Manager中选择目标站点,然后在“管理服务”下找到“URL重写”,点击“添加规则...

    UrlRewrite域名重写

    UrlRewrite是一个强大的URL管理工具,常用于ASP.NET应用程序中,它允许开发者通过自定义规则对网站的URL进行重写和转换。这个技术的核心在于提供更友好的、搜索引擎优化(SEO)的URL,同时也可以帮助解决网站迁移或...

    URLrewrite-实例

    《URL重写技术详解——基于Java的URLrewrite实践》 在Web开发中,URL重写(URL Rewrite)是一项重要的技术,它允许我们以更友好、更可读的方式隐藏实际的URL路径,从而提升用户体验和搜索引擎优化(SEO)。本文将...

    iis urlrewrite文件

    IIS URL Rewrite模块是Microsoft为Internet Information Services (IIS) web服务器开发的一个功能强大的URL处理工具。这个模块允许管理员和开发者通过自定义规则来重写和管理网站的URL,从而提高网站的SEO优化、实现...

    urlrewrite 支持自定义多配置文件

    在网上找了很多都不合心意,就知道改了下源码,只改了org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.class 文件,如果担心安全的朋友,可以下载 4.0.3的jar 替换UrlRewriteFilter.class即可。 confPath 默认 ...

    打造UrlRewrite源码

    UrlRewrite一般都是在web.config里配置访问规则在路由到实际页面,所以先实现自定义节点信息读取,这里我定义了俩个类 webconfig定义了组,不需要的话可以把UrlRewriteConfigGroup类去掉并修改配置节点,在...

    URLRewrite.dll

    《深入理解URLRewrite.dll:实现网站优化与伪静态技术》 在Web开发领域,URL重写技术扮演着至关重要的角色,它可以帮助我们优化网站结构,提升用户体验,并对搜索引擎友好。其中,`URLRewrite.dll`是IIS(Internet ...

    URLRewrite URL重写组件

    **URLRewrite组件详解** URLRewrite是一款广泛应用于ASP.NET应用程序中的URL重写工具,它允许开发者通过修改HTTP请求的URL来实现各种功能,如优化SEO(搜索引擎优化)、隐藏内部结构、提供友好的URL以及实现负载...

    urlrewrite

    《深入理解URLRewrite:Java路径重写技术详解》 在Web开发中,URL重写是一种常见的技术,它能够帮助我们优化网站的URL结构,提高搜索引擎优化(SEO),以及实现更加友好的用户界面。本文将重点讲解Java环境下的URL...

    urlrewrite 支持自定义多配置文件(*通配符)

    urlrewrite 只支持单个配置文件,默认的配置文件为:/WEB-INF/urlrewrite.xml 现在对urlrewrite-3.2的源码进行了修改,使它能够支持多文件和通配符的形式加载自定义配置文件,即可以进行如下的配置: &lt;param-name&gt;...

    UrlRewrite.dll

    UrlRewrite.dll是微软IIS(Internet Information Services)服务器中的一个关键组件,主要负责URL重写功能。在网站开发和管理中,它扮演着至关重要的角色,尤其在优化搜索引擎优化(SEO)、实现友好的URL结构以及...

    URLRewrite帮助文档

    ### URLRewrite使用帮助文档 #### 一、URLRewriteFilter简介 URLRewriteFilter是一个功能强大的Web过滤器,主要用于实现URL的改写操作。它能够帮助开发者将动态URL转换成静态URL,这对于提高用户体验、优化SEO...

    urlRewrite

    ### URL重写(UrlRewrite)技术详解 #### 一、引言 URL重写(UrlRewrite)是一种网络服务器功能,它允许开发者通过规则来转换客户端请求的URL,从而达到美化URL、增加安全性以及提高搜索引擎优化(SEO)的效果。在...

    UrlRewrite例子

    UrlRewrite是一个强大的URL重写工具,常用于Java Web应用中,尤其是与Struts2框架结合使用时,能够帮助开发者优化URL结构,提高网站的SEO友好性和用户体验。在这个"UrlRewrite例子"中,我们将深入探讨UrlRewrite的...

Global site tag (gtag.js) - Google Analytics