- 浏览: 1985806 次
- 性别:
- 来自: 哈尔滨
文章分类
- 全部博客 (188)
- java基础 (22)
- 经验+注意 (39)
- Oracle (34)
- javaScript (28)
- jquery (24)
- iBatIS (11)
- hibernate (8)
- struts1.x (1)
- spring (1)
- SVN (1)
- myeclipse (12)
- jbmp工作流 (1)
- 其他 (22)
- 杂谈 (4)
- struts2 (5)
- css (4)
- 正则表达式 (2)
- jstl标签 (4)
- Java Tree (2)
- Jboss (1)
- json (1)
- HttpURLConnection (1)
- Apache commons工具包 (1)
- groovy+grails (2)
最新评论
-
q2425533:
Java字符串倒序输出 + 数组的排序 -
变脸小伙:
今天也跟着学习了,用到了
struts2拦截器 获得请求方法名+获得请求参数 -
tuspark:
讲解的很不错。URLConnection类的内容也可以看这篇文 ...
HttpURLConnection详解 -
wolf746773350:
...
window.location.href/replace/reload()--页面跳转+替换+刷新 -
wolf746773350:
[/flash]
window.location.href/replace/reload()--页面跳转+替换+刷新
如何在struts2的Action中如何获得ServletContext 服务器容器对象
1.实现接口(import org.apache.struts2.util.ServletContextAware;) implements ServletContextAware
2.定义变量
/**
* 服务器容器
*/
private ServletContext context;
3.实现方法
public void setServletContext(ServletContext arg0) {
this.context = arg0;
}
4.具体代码应用(将登陆用户ID,放入服务器容器)
/**
* 判断用户账号密码是否正确,是否已经登入
*/
@SuppressWarnings("unchecked")
private boolean isgo() {
// 调用service将用户信息调出
TEmployeeSafe tem = empSafeService.queryById(employeeId);
if (tem == null) {
this.setMsg("用户名输入有误!");
return false;
}
// 新增验证,验证当前工号对应角色是否为开启状态
// t_employee_safe.roleNum = t_employee_role.roleNum 并且t_employee_role.state = 10
//TEmployeeRole role = service.queryByRoleNum(tem);
TEmployeeRole role = empRoleService.queryById(tem.getRoleNum());
if(role.getState() != null){
if(!role.getState().equals("10")){
this.setMsg("当前用户对应角色未开启!");
return false;
}
}else{
this.setMsg("当前用户无对应角色!");
return false;
}
TEmployeeInfo info = empService.queryEmploye(employeeId);
// 将密码转换为md5 形式
String pwd = KeyedDigestMD5.getKeyedDigest(employeePass, "").toUpperCase();
if (tem.getEmployeePass().equals(pwd)) {
// 取得服务器中的用户集合
HashMap<String, String> map = (HashMap<String, String>) context
.getAttribute("userList");
// 获取sessionId
String SessionId = ServletActionContext.getRequest().getSession()
.getId();
// 如果服务器中不存在此用户则将用户加入集合,存在则删除原来的,再重新加入新的。
if (map == null || map.size() == 0) {
map = new HashMap<String, String>();
// 创立标志
map.put(tem.getEmployeeId(), SessionId);
// 将标志放入服务器中
context.setAttribute("userList", map);
// 将标志放入session
ServletActionContext.getRequest().getSession().setAttribute(
"user", tem);
ServletActionContext.getRequest().getSession().setAttribute(
"info", info);
ServletActionContext.getRequest().getSession().setAttribute(
"role", role);
} else {
if (map.get(tem.getEmployeeId()) != null) {
// 存在用户则将其删除
map.remove(tem.getEmployeeId());
}
map.put(tem.getEmployeeId(), SessionId);
// 将标志重新放入服务器中
context.setAttribute("userList", map);
// 将标志放入session
ServletActionContext.getRequest().getSession().setAttribute(
"user", tem);
}
return true;
}
this.setMsg("密码输入有误!");
return false;
}
==================================================================================
5.导包时注意,必须导入import org.apache.struts2.util.ServletContextAware;
strurts2 application 报错
package com.bonck.user.login;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.springframework.web.context.ServletContextAware;
import org.springframework.web.struts.ActionSupport;
import com.bonck.app.UserApp;
import com.bonck.dao.Useinfo;
public class LoginAction extends ActionSupport implements ServletContextAware,
ServletRequestAware {
/**
*
*/
private static final long serialVersionUID = 1L;
private String username;
private String password;
private HttpServletRequest request;
private ServletContext application;
public String execute() throws Exception {
UserApp app=new UserApp();
Useinfo user =app.getUser(username, password);
if(user.getUiId()!=null){
request.setAttribute("username", username);
application.setAttribute("pwd", password);
return "welcome";
}
else
return "error";
}
public void setServletContext(ServletContext arg0) {
application = arg0;
}
public void setServletRequest(HttpServletRequest arg0) {
request = arg0;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public HttpServletRequest getRequest() {
return request;
}
public void setRequest(HttpServletRequest request) {
this.request = request;
}
public ServletContext getApplication() {
return application;
}
public void setApplication(ServletContext application) {
this.application = application;
}
}
一直报错,最后终于发现spring倒的鬼,解决方案:将该
import org.springframework.web.context.ServletContextAware;
换成
import org.apache.struts2.util.ServletContextAware;即可
看来还的认真!
发表评论
-
java获得系统盘符(Windows、linux自动切换)
2017-12-22 16:08 2421做文件读写时,本机开发是windows系统,但服务器是li ... -
mysql 时间列自动插入当前日期时间
2012-05-09 13:46 3165用current_timestamp,不过这个默认值 ... -
java switch的使用+switch用String作为条件
2012-03-23 16:58 67389一、java switch的基本使用: /* int参数的s ... -
Java字符串倒序输出 + 数组的排序
2012-03-08 18:06 9344一、Java字符串倒序输出 方法一:利用 ... -
HTML转义字符
2012-02-23 14:53 2717HTML字符实体(Character Entit ... -
jQuery Ajax 实例 ($.ajax、$.post、$.get)
2012-02-09 10:43 300903Jquery在异步提交方面封装的很好,直接用AJAX非常麻烦, ... -
checkbox加onClick事件,ajax异步请求后台,$.ajax
2012-02-08 17:02 6809XXX平台要实现一个功能,公告弹出页面上使用复选框设置不再通知 ... -
js限制文件上传类型
2012-01-16 11:24 2279var name = $('#file').val(); v ... -
Random()随机数+随机切换图片
2011-12-13 14:55 3169一、Random()随机数 转自:http://bl ... -
Request对象各种获得路径的方法+Request对象各种方法(.getRemoteAddr)
2011-12-13 14:43 9702用jboss发布的工程,测试request对象返回路径的方法, ... -
HttpURLConnection与URL---接口的应用
2011-11-26 10:14 1868一版XXX中的更新内存的接口应用: 一、定义一个有返回 ... -
ibatIS的<dynamic prepend="WHERE">原理,是判断前一个AND字母是否存在
2011-10-31 17:51 24862今天付出了惨痛的代价,调sqlMap文件调了一下午,杯具啊!! ... -
session详细解析(是否过期、失效时间)
2011-10-26 15:22 11271Session一直是我们做web项 ... -
insert into (select from)表复制+select into from表复制
2011-10-18 17:20 12120Insert INTO table(field1,field2 ... -
jsp、js、<a>的访问方式(绝对路径+相对路径)
2011-10-17 17:38 32948一、项目中应用: 1.PrivInterceptor ... -
struts2拦截器 获得请求方法名+获得请求参数
2011-10-14 16:15 24415SSI框架为基础开发的,hulian平台 struts2拦截 ... -
frameset中如何直接跳转至首页(中转页)--window.parent.parent.location.replace
2011-10-13 17:50 2643之间跳转页(中转页),turnToLogin.jsp ... -
request.getContextPath获取绝对路径
2011-10-13 17:31 34751项目需求:所有jsp页必须通过Action转发,不能直接在地址 ... -
json-lib-2.2.3-jdk15.jar+所需jar包
2011-10-10 13:05 13675做项目,用到了json-lib-2.2.3-jdk15.jar ... -
JSTL EL表达式读取cookie中的值
2011-09-30 15:31 132581.cookie中设置值 <script type=& ...
相关推荐
Struts2插件负责在Action执行时从Spring容器中查找并注入Bean。 总结一下,Spring在`web.xml`中的配置主要关注ApplicationContext的初始化和配置文件的位置,而Struts中的配置则是在Struts2配置文件中声明Action和...
- **上下文**:在Struts2中,ActionContext是每个请求处理的核心上下文对象,它提供了当前请求的环境信息,包括但不限于请求参数、会话状态、应用程序范围内的共享数据等。 - **Action**:是Struts2中最基本的业务...
在可测试性方面,Struts 1的Action需要在Web容器中测试,而Struts 2的Action可以脱离Web容器单独测试。此外,Struts 1使用ActionForm封装表单项,而Struts 2直接使用业务逻辑Action封装表单项,简化了开发。 最后,...
在Struts2中,尽管大部分的HTTP请求处理工作由Struts2框架接管,但我们仍然可以通过HttpServletRequest、HttpSession和ServletContext这三个Servlet API的核心组件来获取和操作请求信息。 HttpServletRequest对象...
在web应用的部署描述文件web.xml中配置ActionServlet后,当服务器启动或有第一个请求到达时,就会加载并初始化ActionServlet类。初始化过程中,ActionServlet的init()方法会被调用,这是初始化Struts应用的关键。 ...
Struts框架的基本结构包括:浏览器发送请求到Web服务器,Web服务器上的Servlet容器处理请求,调用模型组件(如JavaBean和EJB)执行业务逻辑,然后通过控制器返回响应,最终由视图(JSP)渲染结果显示给用户。...
#### 五、Struts2中的默认包struts-default的作用 1. **定义内置组件**:`struts-default`包预定义了一系列内置的拦截器和结果类型,这是Struts2许多核心功能的基础。 2. **自动加载**:`struts-default.xml`文件是...
2. Servlet:Java Servlet组件,运行在Servlet容器中,处理HTTP请求,创建JavaBean对象,并将响应返回给用户。Servlet是MVC架构中的控制器,负责转发请求和控制流程。 3. JSP标签库和XML:JSP标签库提供了更简洁的...
在Struts1框架中,Servlet通常扮演控制器的角色,被Servlet容器如Tomcat动态加载,根据请求进行响应。例如,Struts1的ActionServlet作为核心控制器,接收HTTP请求,根据配置信息转发到相应的Action进行处理。 ...
- HttpSession (session):用于在客户端和服务器之间保持状态的会话对象 - ServletContext (application):整个应用共享的数据存储 - ServletConfig (config):Servlet的配置信息 - Object (page):当前页面的...
根据提供的华为Java面试题,我们将深入探讨两个主要概念:Struts框架体系结构及其开发工作,以及JSP中的内置对象和动作。 ### 1. Struts框架体系结构 #### 概述 Struts是一个用于构建企业级Java Web应用程序的开源...
在Java Web开发中,过滤器(Filter)是一种重要的组件,用于拦截客户端发送至服务器的请求或服务器返回至客户端的响应。Struts框架作为Java Web开发中的一种流行框架,利用了过滤器机制来增强其功能性和灵活性。本文...
当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的返回时,就应该使用异步编程,在很多情况下采用异步途径往往更有效率。 20、abstract class和interface有什么区别? ...
2. **Filter**: 同样,可以在Filter的init()方法中获取ApplicationContext,或者通过ServletContextAware接口,将Spring上下文注册到ServletContext,然后在doFilter()方法中使用。 3. **Listener**: 在监听器的...
在`web.xml`中添加`ContextLoaderListener`,用于在服务器启动时初始化Spring的ApplicationContext,并将BeanFactory放入ServletContext中。 Spring的`ContextLoaderListener`初始化代码示例: ```java public ...
在Servlet开发中,`ServletContext`对象用于在多个Servlet间共享数据。当Servlet容器启动Web应用时,会创建一个唯一的`ServletContext`实例,它与Web应用的生命周期相同。 第4章讨论了请求和响应以及会话技术。HTTP...
2. **Servlet API**:熟悉Servlet API中的关键类和方法,如`HttpServletRequest`、`HttpServletResponse`、`ServletConfig`以及`ServletContext`等,这些类提供了处理请求、生成响应和获取上下文信息的方法。...
3. **ActionForm.getMyFile()**:在Struts框架中,ActionForm对象的某个属性(如myFile)可以用来存储用户上传的文件路径。 4. **System.getProperty("user.dir")**:在Java中,可以使用System类的getProperty方法...
### JavaEE实训教程知识点梳理 #### 一、JavaEE概述 **1.1 JavaEE的概念** ...**10.5 在Struts2中使用session** - **管理员表admin**:可以使用Struts2的拦截器来管理会话状态,例如登录验证。