zoukankan      html  css  js  c++  java
  • 去除url中自带的jsessionid

    web.xml中配置Filter:

    <filter>
       <filter-name>jsessionid</filter-name>
       <filter-class>
        cn.iautos.mall.filter.RemoveUrlSessionFilter
       </filter-class>
    </filter>
    <filter-mapping>
       <filter-name>jsessionid</filter-name>
       <url-pattern>/*</url-pattern>
    </filter-mapping>
      
    

    java代码如下:

    package cn.iautos.mall.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.ServletResponse;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpServletResponseWrapper;
    import javax.servlet.http.HttpSession;
    
    /**
     * 去除url中的jsessionid
     * @author xuzhenmin
     * @version 2014-5-30  下午2:33:34
     */
    public class RemoveUrlSessionFilter implements Filter {
    
       
        public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
            // skip non-http requests
            if (!(request instanceof HttpServletRequest)) {
                 chain.doFilter(request, response);
                return;
             }
    
             HttpServletRequest httpRequest = (HttpServletRequest) request;
             HttpServletResponse httpResponse = (HttpServletResponse) response;
    
            // clear session if session id in URL
            if (httpRequest.isRequestedSessionIdFromURL()) {
                 HttpSession session = httpRequest.getSession();
                if (session != null) session.invalidate();
             }
    
            // wrap response to remove URL encoding
             HttpServletResponseWrapper wrappedResponse = new HttpServletResponseWrapper(httpResponse) {
                 @Override
                public String encodeRedirectUrl(String url) {
                    return url;
                 }
    
             
                public String encodeRedirectURL(String url) {
                    return url;
                 }
    
               
                public String encodeUrl(String url) {
                    return url;
                 }
    
               
                public String encodeURL(String url) {
                    return url;
                 }
             };
    
            // process next request in chain
             chain.doFilter(request, wrappedResponse);
         }
    
        /**
          * Unused.
         */
        public void init(FilterConfig config) throws ServletException {
         }
    
        /**
          * Unused.
         */
        public void destroy() {
         }
    }
    
  • 相关阅读:
    Struts2+Spring3+Mybatis3开发环境搭建
    spring+struts2+mybatis
    【LeetCode】Populating Next Right Pointers in Each Node
    【LeetCode】Remove Duplicates from Sorted Array
    【LeetCode】Remove Duplicates from Sorted Array II
    【LeetCode】Binary Tree Inorder Traversal
    【LeetCode】Merge Two Sorted Lists
    【LeetCode】Reverse Integer
    【LeetCode】Same Tree
    【LeetCode】Maximum Depth of Binary Tree
  • 原文地址:https://www.cnblogs.com/xuzhenmin/p/3761104.html
Copyright © 2011-2022 走看看