zoukankan      html  css  js  c++  java
  • 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  <welcome-file-list>
     5   <welcome-file>index.jsp</welcome-file>
     6  </welcome-file-list>
     7     <filter>
     8         <filter-name>UrlRewriterHelper</filter-name>
     9         <filter-class>helper.UrlRewriterHelper</filter-class>
    10     </filter>
    11     <filter-mapping>
    12         <filter-name>UrlRewriterHelper</filter-name>
    13         <url-pattern>/*</url-pattern>
    14     </filter-mapping>
    15 </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
  • 相关阅读:
    Django会话之session(手动设置)
    Django model字段类型参考列表
    Django会话之cookie(手动设置)
    Java AES加密
    Java AES加密
    Java JDBC
    Java JDBC
    Java-Map
    Java-Map
    Java-螺旋方阵
  • 原文地址:https://www.cnblogs.com/qiyebao/p/3694565.html
Copyright © 2011-2022 走看看