首页 > 代码库 > Struts2 action 的 ;jsessionid=xxx 使找不到页面 Bug 的解决 [转帖]
Struts2 action 的 ;jsessionid=xxx 使找不到页面 Bug 的解决 [转帖]
一: jsessionid 简介:
因为Session默认是需要Cookie支持的 有些客户浏览器是关闭Cookie的,
这个时候就需要在URL中指定服务器上的jssessionid标识.如果你的web应用带有 jsessionid ,首先你的web应用不安全,而且也不利于 SEO (亦不美观).
二: Java代码:
1 import javax.servlet.*; 2 import javax.servlet.http.HttpServletRequest; 3 import javax.servlet.http.HttpServletResponse; 4 import javax.servlet.http.HttpServletResponseWrapper; 5 import javax.servlet.http.HttpSession; 6 import java.io.IOException; 7 8 public class DisableUrlSessionFilter implements Filter { 9 10 public void doFilter(ServletRequest request, ServletResponse response,11 FilterChain chain) throws IOException, ServletException {12 if (!(request instanceof HttpServletRequest)) {13 chain.doFilter(request, response);14 return;15 }16 17 HttpServletRequest httpRequest = (HttpServletRequest) request;18 HttpServletResponse httpResponse = (HttpServletResponse) response;19 20 if (httpRequest.isRequestedSessionIdFromURL()) {21 HttpSession session = httpRequest.getSession();22 if (session != null)23 session.invalidate();24 }25 // wrap response to remove URL encoding26 HttpServletResponseWrapper wrappedResponse = new HttpServletResponseWrapper(27 httpResponse) {28 @Override29 public String encodeRedirectUrl(String url) {30 return url;31 }32 33 public String encodeRedirectURL(String url) {34 return url;35 }36 37 public String encodeUrl(String url) {38 return url;39 }40 41 public String encodeURL(String url) {42 return url;43 }44 };45 chain.doFilter(request, wrappedResponse);46 }47 48 public void init(FilterConfig config) throws ServletException {49 }50 51 public void destroy() {52 }53 }
三: web.xml配置filter:
1 <filter> 2 <filter-name>jsessionid</filter-name> 3 <filter-class> 4 xinyu.filter.DisableUrlSessionFilter 5 </filter-class> 6 </filter> 7 <filter-mapping> 8 <filter-name>jsessionid</filter-name> 9 <url-pattern>/*</url-pattern>10 </filter-mapping>
Struts2 action 的 ;jsessionid=xxx 使找不到页面 Bug 的解决 [转帖]
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。