Jsp通过Filter实现UrlRewriter原理

web.xml文件:

 1 <?xml version="1.0" encoding="UTF-8"?>
2 <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
4 <session-config>
5 <session-timeout>10</session-timeout>
6 </session-config>
7 <welcome-file-list>
8 <welcome-file>index.jsp</welcome-file>
9 </welcome-file-list>
10 <filter>
11 <filter-name>UrlRewriterHelper</filter-name>
12 <filter-class>helper.UrlRewriterHelper</filter-class>
13 </filter>
14 <filter-mapping>
15 <filter-name>UrlRewriterHelper</filter-name>
16 <url-pattern>/*</url-pattern>
17 </filter-mapping>
18 </web-app>

web.xml

UrlRewriterHelper文件:

 1 package helper;
2
3 import java.io.IOException;
4 import java.net.HttpRetryException;
5
6 import javax.servlet.Filter;
7 import javax.servlet.FilterChain;
8 import javax.servlet.FilterConfig;
9 import javax.servlet.RequestDispatcher;
10 import javax.servlet.ServletException;
11 import javax.servlet.ServletRequest;
12 import javax.servlet.ServletResponse;
13 import javax.servlet.http.HttpServletRequest;
14
15 public class UrlRewriterHelper implements Filter {
16
17 @Override
18 public void destroy() {
19 // TODO Auto-generated method stub
20
21 }
22
23 @Override
24 public void doFilter(ServletRequest arg0, ServletResponse response,
25 FilterChain arg2) throws IOException, ServletException {
26 // TODO Auto-generated method stub
27 if (arg0 instanceof HttpServletRequest) {
28 HttpServletRequest request = (HttpServletRequest) arg0;
29 String url = request.getRequestURI();
30 int beginIndex = url.lastIndexOf(".htm");
31 if (beginIndex == url.length() - 4) {
32 String newUrl = url.substring(0, beginIndex) + ".jsp";
33 String contextRoot = request.getContextPath();
34 beginIndex = newUrl.indexOf(contextRoot);
35 if (beginIndex == 0) {
36 newUrl = newUrl.substring(contextRoot.length());
37 RequestDispatcher dispatcher = request.getRequestDispatcher(newUrl);
38 dispatcher.forward(request, response);
39 return;
40 }
41 }
42 }
43 arg2.doFilter(arg0, response);
44 }
45
46 @Override
47 public void init(FilterConfig arg0) throws ServletException {
48 // TODO Auto-generated method stub
49
50 }
51
52 }

UrlRewriterHelper

Jsp通过Filter实现UrlRewriter原理,布布扣,bubuko.com

时间: 2024-12-26 18:11:24

Jsp通过Filter实现UrlRewriter原理的相关文章

Jsp的filter拦截器实现用户权限分级

看了一下上学期学的项目,发现用到了jsp的filter来实现不同用户登录网站访问模块的分类,现在把代码分享出来跟大家共享一下··· package com.wws.filter; import java.io.IOException; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import javax.servlet.Filter; import javax.

Bloom Filter概念和原理【转】

Bloom Filter概念和原理 Bloom Filter是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合.Bloom Filter的这种高效是有一定代价的:在判断一个元素是否属于某个集合时,有可能会把不属于这个集合的元素误认为属于这个集合(false positive).因此,Bloom Filter不适合那些“零错误”的应用场合.而在能容忍低错误率的应用场合下,Bloom Filter通过极少的错误换取了存储空间的极大节省. 集合表示和元

JSP中Filter中访问Spring管理的beans

@Override public void init(FilterConfig filterConfig) {  //unchecked = filterConfig.getInitParameter("unchecked").split(",");  WebApplicationContext wc = WebApplicationContextUtils.getWebApplicationContext(filterConfig.getServletContex

JSP中filter详解以及应用实例(转载)

filter功能.它使用户可以改变一个 request和修改一个response. Filter 不是一个servlet,它不能产生一个response,它能够在一个request到达servlet之前预处理request,也可以在离开 servlet时处理response.换种说法,filter其实是一个”servlet chaining”(servlet 链). 一个filter 包括: 1. 在servlet被调用之前截获; 2. 在servlet被调用之前检查servlet reques

Bloom Filter概念和原理

Bloom Filter是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合.Bloom Filter的这种高效是有一定代价的:在判断一个元素是否属于某个集合时,有可能会把不属于这个集合的元素误认为属于这个集合(false positive).因此,Bloom Filter不适合那些“零错误”的应用场合.而在能容忍低错误率的应用场合下,Bloom Filter通过极少的错误换取了存储空间的极大节省. 集合表示和元素查询 下面我们具体来看Bloom

Jsp过滤器Filter配置过滤类型汇总

1.如果要映射过滤应用程序中所有资源: <filter> <filter-name>loggerfilter</filter-name> <filter-class>myfilter.LoggerFilter</filter-class> </filter> <filter-mapping>     <filter-name>loggerfilter</filter-name> <url-pa

Bloom Filter(布隆过滤器)原理

Bloom Filter(布隆过滤器)主要用于判断某个元素是否属于集合内,但是这种判断不是一定正确的. 经典问题: 假设你有数量非常庞大的URL集合,现在给你一个新的URL,要你快速判断这个URL是否在上述的URL集合中. 解决这个问题比较原始的方法是:先用一个数组把所有URL存起来,然后再扫描这个数组,判断里面是否有元素与新的这个URL相同.这样做会耗费非常大的空间和时间,是非常不妥的一种做法. 另一种非常快速的方法就是使用布隆过滤器了.如果布隆过滤器说一个元素在某个集合内,那么这个元素是很有

[Java] JSP笔记 - Filter 过滤器

一.什么是Web过滤器 Servlet API 很久以前就已成为企业应用开发的基石,而 Servlet 过滤器则是对 J2EE 家族的相对较新的补充. Servlet 过滤器是可插入的 Web 组件,它允许我们实现 Web 应用程序中的预处理和后期处理逻辑.过滤器支持 servlet 和 JSP 页面的基本请求处理功能,比如日志记录.性能.安全.会话处理.XSLT 转换,等等. 过滤器最初是随 Java Servlet 2.3 规范发布的. Servlet 过滤器是什么?Servlet 过滤器是

jsp生命周期和工作原理

jsp的工作原理jsp是一种Servlet,但是与HttpServlet的工作方式不太一样.httpservlet是先由源代码编译为class文件后部署到服务器下的,先编译后部署.而jsp则是先部署后编译为class文件,先部署后编译jsp会在客户端第一次请求jsp文件时被编译为Httpjsppage类该类是Servlet的一个子类.该类会被服务器临时存放在服务器工作目录里面.以下说明jsp的编译过程.在客户端第一次请求greeting.jsp时,Tomcat先将greeting.jsp转化为标