`
还有也许
  • 浏览: 168553 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

学习urlrewritefilter的几点注意

    博客分类:
  • wap
阅读更多

其实我觉得urlrewritefilter做的就是将浏览器中一个动态的地址变成静态的,比如我在浏览器中输入

http://localhost:8080/wapDemo/13浏览器如何去执行以前那个完整的写法呢

http://localhost:8080/wapDemo/infoList.do?corp_account=13   再者http://localhost:8080/wapDemo/13/24 他就会执行

http://localhost:8080/wapDemo/infoDisp.do?corp_account=13&corp_product=24 

大家首先会想到写个过滤器在web.xml中配置一下,这当然是可以的,而其我已经写好了类似的处理

比如请看我的AuthFilter.java


 

package com.running.wap.support;

import java.io.IOException;
import java.util.regex.Pattern;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class AuthFilter extends HttpServlet implements Filter{

	public void destroy() {
		// TODO Auto-generated method stub
		
	}

	public void doFilter(ServletRequest request, ServletResponse response,
			FilterChain filterchain) throws IOException, ServletException {
		
        boolean   b,b2;  
        String account=null;
        String account2=null;
		HttpServletRequest req = (HttpServletRequest) request;
		HttpServletResponse resp = (HttpServletResponse) response;
		//获得浏览器中输入的url地址
		String url = req.getRequestURL().toString();
		
		//得到请求uri,比如url为http://localhost:8080/wapDemo/13,则uri为
		//http://localhost:8080/ 以后的东西,此时为wapDemo/13
		String uri=req.getRequestURI();
		//如果url不是以.do结尾
		if (!url.endsWith(".do")){
			//接着就是对该uri这个字符串进行处理的过程,大体思路是获得第一个/的位置,如果有两个就获得两个/的位置
			//接着看你截获的字符串是不是数字类型的,然后获得那一个或两个数值,将其当做参数传到相应的位置
			int index=uri.lastIndexOf("/");
			int index2=uri.lastIndexOf("/",index-1);
			
			if(index>-1&&index2>-1){
			    account=uri.substring(index + 1);
			    account2=uri.substring(index2+1,index);
			     b  = Pattern.compile("\\d+").matcher(account).matches();  
			     b2 = Pattern.compile("\\d+").matcher(account2).matches();
			   if(b&&b2){
					 int corp_account,corp_product;
					 corp_product = Integer.parseInt(account);
					    corp_account = Integer.parseInt(account2);
					    resp.sendRedirect("../infoDisp.do?corp_account="+corp_account+"&corp_product="+corp_product);
					 }
			   else if(b&&b2==false){
					int corp_account;
					corp_account = Integer.parseInt(account);
				    resp.sendRedirect("infoList.do?corp_account="+corp_account);
				}
			}
		 
		if(url.equals("http://192.168.1.5:8080/wapDemo/")){
				resp.sendRedirect("index.do");
		    }		
	
		}else{
			filterchain.doFilter(request, response);

		}
		
	}

	public void init(FilterConfig arg0) throws ServletException {
		// TODO Auto-generated method stub
		
	}

}

 

但因为现在流行比较火的处理该问题的jar包urlrewritefilter的诞生,我们就不用写这些了,直接在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>^/(\d+)$</from>
        <to type="redirect">%{context-path}/infoList.do?corp_account=$1</to> 
    </rule>
    <rule>
        <from>^/(\d+)/(\d+)$</from>
        <to type="redirect">%{context-path}/infoDisp.do?corp_account=$1&amp;corp_product=$2</to>
    </rule>
    <!--  
    <outbound-rule>
        <from>index.jsp</from>
        <to>/</to>
    </outbound-rule>
    -->
</urlrewrite>

 

就可以了,不用再伤脑筋写你自己的过滤器了。

还有就是web.xml中

   

<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>

 

配置的作用,就是说当用户在浏览器中输入http://Ip:port/项目名/      之后会去找你的index.jsp页面,所以可以在你的

index.jsp中这样写

   

<%@ page language="java" contentType="text/html;charset=UTF-8"%>
<%
response.sendRedirect("index.do");
%>

 

相当于在浏览器中输入http://IP:port/项目名/index.do 一个效果,是不是很巧妙呢。

  

 

2
0
分享到:
评论

相关推荐

    urlrewritefilter

    在使用`URLRewriteFilter`时,通常的步骤包括以下几点: 1. 添加`URLRewriteFilter`的JAR文件到Web应用的`WEB-INF/lib`目录。 2. 创建并配置`urlrewrite.xml`文件,定义重写规则。 3. 在`web.xml`中配置`...

    UrlRewriteFilter

    UrlRewriteFilter架包和文档

    urlrewritefilter-4.0.3.jar.zip

    通过学习和理解URLRewriteFilter提供的规则语法,开发者可以灵活地定制URL处理逻辑,以满足不同Web应用的需求。 综上所述,URLRewriteFilter是一个强大的工具,可以帮助开发者在Java Web应用中实现复杂的URL管理,...

    urlrewritefilter-3.2.0下载

    标题 "urlrewritefilter-3.2.0下载" 指的是UrlRewriteFilter的3.2.0版本,这是一个非常流行的开源Java过滤器,它主要用于URL重写和管理。在Web开发中,URL重写是一项重要技术,可以用于优化SEO(搜索引擎优化),...

    urlrewritefilter实现伪静态

    **URLRewriteFilter详解:实现高效且优雅的伪静态** 在Web开发中,为了提高用户体验和搜索引擎优化(SEO),我们常常需要将动态URL转化为看似静态的格式,这就是所谓的“伪静态”。URLRewriteFilter是一个非常实用...

    jsp 利用urlrewritefilter实现伪静态

    描述中提到的关键词"jsp"、"过滤器"和"urlrewritefilter"是关键的技术点。JSP是Java的一种动态网页技术,过滤器在Java Web开发中用于拦截请求或响应,进行预处理或后处理。URLRewriteFilter则是一个基于Tuckey组织...

    urlrewritefilter-4.0.4.jar.zip

    **URLRewriteFilter详解** URLRewriteFilter是一款广泛使用的开源HTTP重写过滤器,它基于Apache的Tuckey项目开发,主要用于对URL进行重写和转换。在Java Web应用程序中,URLRewriteFilter可以帮助开发者实现诸如...

    urlrewritefilter-4.0.3.jar

    这是urlrewritefilter-4.0.3.jar下载,通过java的Filter过滤器对URL进行重写,用户得到的全部都是经过处理后的URL静态地址,本质上通过伪地址进行页面跳转。 软件介绍 urlrewritefilter-4.0.3.jar是有时候项目中的...

    urlrewritefilter-4.0.3.zip

    《URLRewriteFilter详解及其在实现伪静态中的应用》 URLRewriteFilter是一款广泛应用于Java Web开发中的开源过滤器,其主要功能是对HTTP请求的URL进行重写,从而实现URL的美化、动态URL的静态化等多种目的。在这个...

    urlrewritefilter 例子

    《URLRewriteFilter详解与应用实例》 ...通过深入学习和实践,开发者可以掌握URLRewriteFilter的精髓,将其运用到自己的项目中,为用户提供更加友好的URL,同时也为网站的长期发展打下坚实的基础。

    网址重写过滤器urlrewritefilter

    **网址重写过滤器urlrewritefilter详解** 在Web开发中,URL(统一资源定位符)是用户与服务器交互的重要组成部分。一个清晰、简洁的URL不仅可以提高用户体验,也有助于搜索引擎优化(SEO)。`urlrewritefilter`是...

    urlrewritefilter-3.1.0.zip

    《URLRewriteFilter详解及其在Web应用中的实践》 URLRewriteFilter是开源项目Tuckey提供的一款强大的URL重写工具,它基于Apache的Filter机制,可以对HTTP请求的URL进行灵活的重写和转发,从而实现诸如URL美化、SEO...

    urlrewritefilter-3.2.0.zip

    - 注意URL的可读性和可维护性,考虑未来可能的变更。 7. **版本更新** URLRewriteFilter 3.2.0版本可能包含性能优化、错误修复和新的特性,具体更新日志需参照官方文档。 综上所述,URLRewriteFilter是Web开发中...

    urlrewritefilter-2.6.0-src

    通过对`Rule`、`Condition`、`Action`等核心组件的理解,开发者不仅可以定制自己的URL重写规则,还能深入学习到Web请求处理、配置解析、映射策略等相关技术,这对于提升Java Web开发技能具有重要价值。同时,源码的...

    urlrewritefilter-2.6.zip(URL重写,重命名)

    《URL重写技术详解——基于URLRewriteFilter的实践应用》 在Web开发中,URL重写是一项重要的技术,它能够使我们的网站URL更加简洁、美观,同时也可以隐藏某些敏感信息,提高网站的安全性。本文将围绕...

    urlrewritefilter-3.1.0.jar.zip

    《URLRewriteFilter详解及其在伪静态中的应用》 URLRewriteFilter是一款广泛应用于Java Web开发中的开源过滤器,主要用于URL重写和管理。它的主要功能是改变HTTP请求的URL,使得原本动态的URL看起来像是静态的,...

Global site tag (gtag.js) - Google Analytics