通过Java Web Filter实现一个最简单的UrlRewrite过滤器

工具:支持JavaEE的Eclipse IDE

Web 过滤器可以通过动态Web项目来直接添加;或者直接创建Java项目通过添加类来完成,参看如下过滤器代码:

package me.ereach.urlfilter;

import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebFilter(
	filterName = "Filter01",
	urlPatterns = {"/*"}
)
public class Filter01 implements Filter {
	private FilterConfig fc;

	public void init(FilterConfig fConfig) throws ServletException {
		this.fc = fConfig;
	}

	public void doFilter(ServletRequest request,
			ServletResponse response, FilterChain chain)
			throws IOException, ServletException {
		HttpServletRequest httprequest = (HttpServletRequest)request;
		HttpServletResponse httpresponse = (HttpServletResponse)response;

		String contextPath = httprequest.getContextPath();
		String servletPath = httprequest.getServletPath();

		if (servletPath.startsWith("/hallo/")) {
			int l = servletPath.length();
			String next = contextPath + servletPath.substring(4);

			RequestDispatcher dispatcher = fc.getServletContext().getRequestDispatcher(next);
			dispatcher.forward(request,response);

			return;
		}
		else if (servletPath.startsWith("/welcom/hi/")) {
			int l = servletPath.length();
			String next = contextPath + servletPath.substring(9);

			RequestDispatcher dispatcher = fc.getServletContext().getRequestDispatcher(next);
			dispatcher.forward(request,response);

			return;
		}

		chain.doFilter(request, response);
	}

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

	}
}

该过滤器非常简单,所有转发的Url都写在代码里,因此,只要注册了这个过滤器就可以直接使用了。使用这个过滤器还需以下几个步骤:

  1. 导出这个过滤器为一个jar文件。
  2. 把这个jar拷贝到Web App的WEB-INF/lib
  3. 在WEB-INF/web-xml中注册这个jar
  4. 设置context-root为"/"
  5. 重启Web App以使设置生效
时间: 2024-10-13 02:19:29

通过Java Web Filter实现一个最简单的UrlRewrite过滤器的相关文章

Excel导出学习之道:Java Web利用POI导出Excel简单例子

采用Spring mvc架构: Controller层代码如下 [java] view plaincopy @Controller public class StudentExportController{ @Autowired private StudentExportService studentExportService; @RequestMapping(value = "/excel/export") public void exportExcel(HttpServletReq

java web filter 学习(2)

本文主要对filter的基本使用进行了讲解,其中涉及到了 filter是什么 一个filter处理一个jsp 多个filter处理一个jsp filter是什么 Filter 是java下的一种过滤器 ,能实现对java web程序 客户端和服务器端消息的过滤,也就是在服务器段接受request之前,可以预先对request进行处理,或在客户端接受response之前,对response进行处理. Filter的使用非常灵活,是在"链"到客户端和服务器之间的,在需要时可以配置到客户端与

Selenium+java - 手把手一起搭建一个最简单自动化测试框架

写在前面 我们刚开始做自动化测试,可能写的代码都是基于原生写的代码,看起来特别不美观,而且感觉特别生硬. 来看下面一段代码,如下图所示: 从上面图片代码来看,具体特征如下: driver对象在测试类中显示 定位元素的value值在测试类中显示 定位元素的方式(By对象)在测试类中显示 代码一报错,还要去测试类里面找是哪段代码报错,要是代码行数几百行时呢,就不好定位问题了 这样的测试脚本组装批量执行,批量报错后,怒号排查,定位问题,很吃力 看看自己有几条命中呢,其他现象就不一一列举了. 1.为什么

[原创]java WEB学习笔记40:简单标签概述(背景,使用一个标签,标签库的API,SimpleTag接口,创建一个自定义的标签的步骤 和简单实践)

本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 ---------------------------------

Java Web Filter登录验证

初做网站需要登录验证,转自 :http://blog.csdn.net/daguanjia11/article/details/48995789 Filter: Filter是服务器端的组件,用来过滤web请求.当发生一个web请求时,web容器会先检查请求的URL是否设置了Filter,如果设置了,则执行该Filter的doFilter方法.所有Filter都实现了javax.servlet.Filter接口,doFilter是定义在该接口中的最重要的方法. 最常见的使用过滤器的例子有:登录访

java web filter 基础

本文主要对Filter的使用进行讲解. 1.Filter是什么? Filter 技术是servlet 2.3 新增加的功能.Filter翻译过来的意思就是过滤器,能对客户端的消息进行预处理,然后将请求转发给其它的web组件,可以对ServletHttpRequest和ServletHttpResponse进行修改和检查.例如:在Filter中可以检查用户是否登录,对未登录的用户跳转到登陆界面. 2.过滤器快速入门 要定义一个过滤器,则需要实现javax.servlet.Filter接口,一个过滤

Java Web项目--显示一个静态页面

我们可以在Eclipse中新建一个Dynamic Web Project,然后在项目的WebContent目录下新建一个Html文件page1.html,其内容如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>page1</title> </head> <body> A Normal Html Page! <

java web Filter过滤器解决乱码

package com.kt.filter; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.Serv

基于java web开发的一个购物网站

这是我与一名大四毕业生共同完成的. 我俩合作完成了前台购物. 后台的商家管理是由我独立完成,包括商品的添加,修改. 亮点是通过条形码采集器,获得包括条形码,商品数量,可以直接添加到数据库中实现商品的出库和入库. 目前项目还在完善,我独立完成的部分日后可以会连带前面的实现一个上线的小测试. 本项目参考了传智播客的教学视频:http://dvd.boxuegu.com/course/35.html 项目代码放在了github上,欢迎push: github地址