swfupload在xp系统上360极速模式报302错误解决方法
2018-02-09 16:53
561 查看
swfupload有时在谷歌或火狐内核丢失session,有拦截器验证登录时会报302错误。
解决思路是在前台获取jsessionid,上传时一并传入后台,在拦截器通过请求的jsessionid获取session,再进行登录验证。
1.前端通过
2.后台通过sessionid获取session,使用session监听器配合一个静态的hashmap即可实现。
首先,创建自己的sessionContext
然后建立session监听,要实现HttpSessionListener接口
接着,在web.xml中配置session监听器
完事,大功告成,之后在代码中直接获取就OK了
3.在拦截器中使用session判断登录状态就ok了
解决思路是在前台获取jsessionid,上传时一并传入后台,在拦截器通过请求的jsessionid获取session,再进行登录验证。
1.前端通过
<input type="hidden" id="ssid" value="<%=request.getSession().getId()%>"/>获取jsessionid,在
post_params: {"jsessionid":document.all("ssid").value}传入参数。
2.后台通过sessionid获取session,使用session监听器配合一个静态的hashmap即可实现。
首先,创建自己的sessionContext
public class MySessionContext { private static MySessionContext instance; private HashMap<String,HttpSession> sessionMap; private MySessionContext() { sessionMap = new HashMap<String,HttpSession>(); } public static MySessionContext getInstance() { if (instance == null) { instance = new MySessionContext(); } return instance; } public synchronized void addSession(HttpSession session) { if (session != null) { sessionMap.put(session.getId(), session); } } public synchronized void delSession(HttpSession session) { if (session != null) { sessionMap.remove(session.getId()); } } public synchronized HttpSession getSession(String sessionID) { if (sessionID == null) { return null; } return sessionMap.get(sessionID); } }
然后建立session监听,要实现HttpSessionListener接口
public class SessionListener implements HttpSessionListener { private MySessionContext myc = MySessionContext.getInstance(); public void sessionCreated(HttpSessionEvent httpSessionEvent) { HttpSession session = httpSessionEvent.getSession(); myc.addSession(session); } public void sessionDestroyed(HttpSessionEvent httpSessionEvent) { HttpSession session = httpSessionEvent.getSession(); myc.delSession(session); } }
接着,在web.xml中配置session监听器
<listener> <listener-class>SessionListener</listener-class> </listener>
完事,大功告成,之后在代码中直接获取就OK了
MySessionContext myc= MySessionContext.getInstance(); HttpSession sess = myc.getSession(sessionId);
3.在拦截器中使用session判断登录状态就ok了
相关文章推荐
- VISTA/win7添加网络中xp系统共享打印机错误的解决方法
- 联想Linux系统转XP出现error 17错误的解决方法
- 6531S安装XP系统的方法——解决安装XP蓝屏及硬盘无法使用AHCI模式
- XP系统下安装Oracle11g R2常见的错误及解决方法
- swfupload提示“错误302”的解决方法
- XP部分系统引导错误的非主流解决方法
- Win7 64位系统XP模式失效的原因及解决方法
- xp系统下,Replication编程时28037错误的解决方法
- 解决HP笔记本安装XP SP3后出现系统蓝屏0x0000007E错误的方法
- XP系统出现内存读写错误的详细解决方法
- XP系统中关于“错误报告”解决方法
- SQL Server 2005: SQL Server blocked access to procedure 'sys.xp_cmdshell' 错误解决方法
- Delta Force Xtreme、战地风云2 重装系统游戏启动错误解决方法
- 无法加载oracle in oradb10g_home2 odbc驱动程序的安装例程,因为存在系统错误代码998 解决方法
- 向sql数据库中插入空时间报系统错误的解决方法
- XP系统启动失败后的十大解决方法
- 解决SPS平台列表视图切换为数据表模式错误解决方法
- 跟后台打印程序系统服务通讯时出现错误解决方法
- SPS平台列表视图切换为数据表模式错误解决方法
- asp.net办公自动化系统开发实例导航的安装出现错误的解决方法