Java去掉 URL 中的 jsessionid

2021/4/9 12:25:15

本文主要是介绍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>



这篇关于Java去掉 URL 中的 jsessionid的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程