今天在一个后台管理的项目中,遇到了一个诡异的问题,我在做日志管理 > 添加日志 的时候,需要从session中获取用户名,添加到数据库,记录是哪个用户进行了相关的操作。
验证的时候所有需要添加日志的按钮都通过了验证,唯独修改密码功能就是不能成功添加日志,报session的空指针错误,
我获取session的方法是:
HttpSession session = ServletActionContext.getRequest().getSession();
session.getAttribute(SysParam.TANSUO_MOBILE_SYS);
或者:
Map session = ActionContext.getContext().getSession();
session.get(SysParam.TANSUO_MOBILE_SYS);
后来一想,修改密码用的是dwr,并没有走action,所以是不是不能通过正常的方法获取session?
查了查资料,将获取session的代码改为:
WebContext ctx = WebContextFactory.get();
session.getAttribute(SysParam.TANSUO_MOBILE_SYS);
成功获取session!
相关资料:
http://xsen.iteye.com/blog/62947
分享到:
相关推荐
DWR 中取得 Session 等信息 DWR(Direct Web Remoting)是一种基于 Ajax 的远程调用技术,允许开发者在 Web 应用程序中轻松地调用 Java 服务端方法。然而,在使用 DWR 时,如何取得 Session 中保存的用户信息成为一...
`scope`属性用于指定对象的生命周期,如`application`、`session`、`request`或`page`。`include`和`exclude`元素用于控制对象的方法访问权限。 ### 4. `<param>` 元素 `<param>`元素提供额外的参数给特定的...
考虑到安全性,你可以限制DWR允许访问的IP地址,设置session超时等。对于性能优化,可以考虑启用缓存,控制并发请求的数量,以及合理地组织DWR调用。 7. **调试与日志** DWR提供了丰富的调试和日志功能。通过调整...
【DWR技术详解】 DWR (Direct Web Remoting) 是一种JavaScript库,它允许Web应用程序在客户端和服务器之间进行实时的、动态的双向通信。在Java应用开发中,DWR通常用于实现AJAX功能,使得网页可以无刷新地与服务器...
3. **Session管理**: - 处理**Hibernate**会话的开启和关闭。 - 通常通过**DWR**的配置文件或服务Bean中的自定义逻辑实现。 #### 五、DWR与WebWork集成 **DWR**可以与**WebWork**框架集成,实现更复杂的前端与...
这与EJB 3.0中使用注解声明Session Bean类似,但它们的实现机制不同。通过注解,DWR能自动识别哪些类和方法可供JavaScript调用。 DWR的工作原理主要是: - **Java到JavaScript的转换**: DWR会根据dwr.xml或注解...
例如,不恰当的DWR配置可能会暴露敏感的服务器资源,因此在使用DWR时,应谨慎处理JSP内置对象,如限制对session和application的访问权限。 综上所述,DWR和JSP内置对象的关系紧密且多维,它们共同构建了一个强大而...
4. **dwr中的session管理和页面转发**:DWR提供了灵活的会话管理和页面跳转机制,以支持更复杂的应用场景。 5. **dwr.xml配置**:这是配置DWR的主要方式之一,用于指定可调用的Java对象、方法权限以及其他配置选项...
`ScriptSessionFilter`接口用于定义过滤规则,实现`match(ScriptSession session)`方法,根据用户的ID或其他属性来决定是否匹配当前的ScriptSession。这样,你可以确保消息只推送给特定用户。 `SendMessageThread`...
- **4.6.3 Session管理**:管理Hibernate Session的生命周期。 **4.7 DWR与WebWork** - WebWork是另一种MVC框架,DWR可以与其结合使用。 - **4.7.1 配置dwr.xml**:适应WebWork的需求。 - **4.7.2 在JSP中导入脚本*...
- 管理Hibernate的Session,确保线程安全性。 #### 五、DWR中的JavaScript使用技巧 ##### 5.1 简单的回调函数 - **使用方法**: - 定义一个简单的JavaScript函数来处理服务器端返回的结果。 - 示例代码: ```...
7. **整合 Hibernate**: 如果项目中使用了 Hibernate 作为持久层框架,可以在 DWR 接口中调用 Hibernate 的 Session 或 EntityManager 来处理数据库操作。确保在多线程环境中正确管理和关闭数据库连接。 **DWR 的...
5. **安全与优化**:为了防止跨站脚本攻击(XSS)和跨站请求伪造(CSRF),DWR提供了安全机制,如设置session ID和跨域限制。同时,通过缓存和批处理等优化手段,可以提高性能。 6. **DWR Demo**:`dwrdemo`可能是...
### dwr消息推送功能 Direct Web Remoting (DWR) 是一种开源框架,它简化了JavaScript与服务器端Java代码之间的交互。DWR 提供了一种简单的方法来将 Java 对象暴露给 JavaScript,允许 JavaScript 调用 Java 方法,...
5. **Session Management**:DWR能够维护客户端会话状态,确保每个请求都能正确地与特定的用户会话关联。 6. **Push Channel**:在推模式下,服务器通过建立一个通道(Channel)来监控数据变化,并在数据更新时通过...
`create`子元素允许创建指定类的实例,`javascript`属性指定在JavaScript中使用的名称,`scope`属性定义对象的生命周期(如session或global)。`param`子元素允许传递参数给创建方法。`convert`子元素定义对象转换...
若有数据,将字符创推送给指定jsp页面(dwr两种推送方式,一种session记录jsp页面id,后台使用定时器不断推送,即不断执行java业务代码,第二种jsp通过js定时器监听java业务代码,有数据推送,这里用的是第二种)
对于登录状态,通常会将用户信息保存在服务器端session或者使用cookie来跟踪用户状态,以便在后续请求中确认用户已登录。 这个"dwr用户登陆验证的例子"提供了一个很好的起点,让初学者能够了解DWR的基本用法和登录...