首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

去除url中的 jsessionid

2013-09-30 
去掉url中的 jsessionid一: jsessionid 简介: 因为Session默认是需要Cookie支持的 有些客户浏览器是关闭Co

去掉url中的 jsessionid
一: jsessionid 简介:
因为Session默认是需要Cookie支持的 有些客户浏览器是关闭Cookie的,
这个时候就需要在URL中指定服务器上的jssessionid标识.如果你的web应用带有 jsessionid ,首先你的web应用不安全,而且也不利于 SEO (亦不美观).

二: Java代码:

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 {if (!(request instanceof HttpServletRequest)) {chain.doFilter(request, response);return;}HttpServletRequest httpRequest = (HttpServletRequest) request;HttpServletResponse httpResponse = (HttpServletResponse) response;if (httpRequest.isRequestedSessionIdFromURL()) {HttpSession session = httpRequest.getSession();if (session != null)session.invalidate();}// wrap response to remove URL encodingHttpServletResponseWrapper wrappedResponse = new HttpServletResponseWrapper(httpResponse) {@Overridepublic 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;}};chain.doFilter(request, wrappedResponse);}public void init(FilterConfig config) throws ServletException {}public void destroy() {}}


三: web.xml配置filter:
    <filter>   <filter-name>jsessionid</filter-name>   <filter-class>    xinyu.filter.DisableUrlSessionFilter   </filter-class></filter><filter-mapping>   <filter-name>jsessionid</filter-name>   <url-pattern>/*</url-pattern></filter-mapping>

热点排行