Java去掉 URL 中的 jsessionid

import javax.servlet.*;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpServletResponseWrapper;

import javax.servlet.http.HttpSession;

import java.io.IOException;

 

 

public class DisableUrlSessionFilter 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() {

     }

}

 

[代码] web.xml

<filter>

   <filter-name>jsessionid</filter-name>

   <filter-class>

    com.haoxingtong.web.web.filter.DisableUrlSessionFilter

   </filter-class>

</filter>

<filter-mapping>

   <filter-name>jsessionid</filter-name>

   <url-pattern>/*</url-pattern>

</filter-mapping>

上一篇:Python CookieJar保存cookie,但不会将其发送到网站


下一篇:javascript-如何使用Liberty更改生成的JSESSIONID的长度?