当前的项目中.用到了DWR.以为不用struts没什么关系.结果spring+dwr让我在session获取这块碰到了问题.
如:系统登录页面中我要进行验证码验证.一般生成的验证码是放在session中的.我点登录的时候.用的是dwr.所以是js直接调用后台的方法. 那么后台的方法只是一个普通的java类.是不存在什么request,session的.所以就不到session中的值.当然你要是用spirng MVC的话,可能可以.(我没用过,不好说). 经查资料,原来DWR本身中就可以传session.只不过是隐藏的. 那么方法就是通过DWR的API.(网上说很多人不推荐,不知为什么)
具体应用: HttpServletRequest,HttpServletResponse,HttpSession,ServletContext,ServletConfig. Java类中定义方法: save(String name, HttpSession session) Javascript调用: Service.save(jsID,jsName,callBack) 注意,这里不需要传入session这个参数,DWR会自动传入,在Java端可以直接使用. 这样的话,你就可以在后台的save方法中得到sesion了
dwr和session通讯的方式:
1. java类中把session作为参数,如: public void makeChart(String chartType,HttpSession session)
2.页面中调用如下: TestJFreeChartDwr.makeChart(type,show); 无需传递session参数,dwr会自动填充到session里
3.再次得到session中的值 session.getAttribute(“参数名”);