Struts2_事物管理&文件上传
2013-03-04 22:15
465 查看
在实现登陆后 对admin的增删改查的操作中。
http客户端-------------> web容器 ----->struts2过滤器-
------>struts.xml --->Action----service-->dao->J数据库
登陆
Action 中验证用户是否登陆成功
Admin entity; getEntity(){return entity;}; //request
返回到客户段:
sc.jsp页面 ${entity.adminName}
用户管理
----->查询所有的用户信息
Admin_list.jsp ${entity.adminName}
Servlet
session.setAttribute(“entity”,entity);
Application:
服务器端: 会话的集合
Session:
什么是一个会话?
从你打开IE浏览器开始----退出
就是一个会话。
Request
请求-------〉
《-------------------响应
Page:
当前页面
高内聚 低耦合
Struts2 :访问或添加request/session/application属性
通过前面的练习大家都知道,在action的方法中与servlet的所有的API是没有任何关系的。所以在struts2中做到了aciton与serlvet的松耦合,这点是非常强大的。但是如果没有HttpServletRequest,HttpServletSession,ServletContext有些功能是没有办法完成的。比如购物车程序,需要把购买的物品放入session中。所以就得找一些路径使得在struts2中和serlvet的API相结合。
Struts2 ActionContext Map
public String scope() throws Exception{
ActionContext ctx = ActionContext.getContext();
ctx.getApplication().put("app", "应用范围");//往ServletContext里放入app
ctx.getSession().put("ses", "session范围");//往session里放入ses
ctx.put("req", "request范围");//往request里放入req
return "scope";
}
JSP:
<body>
${applicationScope.app} <br>
${sessionScope.ses}<br>
${requestScope.req}<br>
</body>
HttpServletRequest HttpSession ServletContext
Request session application
request.setAttribute(“name”,value);
${requestScope.name}
session.setAttribute(“name”,value);
${sessionScope.name}
application
ServletContext application = getServletContext();
application.setAttribute(“name”, value);
${application.name}
Struts2 servlet 松耦合
获取HttpServletRequest / HttpSession / ServletContext / HttpServletResponse对象
方式一:
ServletActionContext 调用Servlet API
//Struts2中 提供 ServletActionContext
//request
HttpServletRequest request = ServletActionContext.getRequest();
request.setAttribute("user", user);
//session
HttpSession session = request.getSession();
session.setAttribute("user", user);
//application
ServletContext application = ServletActionContext.getServletContext();
application.setAttribute("user", user);
方式二: 实现几个接口
package www.csdn.struts_scope.action;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts2.ServletActionContext;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.ServletResponseAware;
import org.apache.struts2.util.ServletContextAware;
import www.csdn.struts_scope.domain.User;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class UsersAction extends ActionSupport implements ServletRequestAware,
ServletResponseAware, ServletContextAware {
//调用servlet中的api
private HttpServletRequest request;
private HttpServletResponse response;
private ServletContext application;
private User user;
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
// 注入request
public void setServletRequest(HttpServletRequest request) {
this.request = request;
}
// 注入response
public void setServletResponse(HttpServletResponse response) {
this.response = response;
}
// 注入application
public void setServletContext(ServletContext application) {
this.application = application;
}
public String login(){
request.setAttribute("user", user);
request.getSession().setAttribute("user", user);
application.setAttribute("user", user);
return "user_login";
}
}
如果能用 ActionContext 解决 就不坚决不使用后边两种
就用方式一、ServeltActionContext
文件上传:
public String upload() {
// 首先确认你保存的路径 ServletContext application
// 创建文件
File file = new File(getPath());
if (!file.exists()) {
file.mkdirs();
}
try {
if (upload != null) {
for (int i = 0; i < upload.length; i++) {
File uploadFile = upload[i];
/*if(uploadFile==null){
continue;
}*/
// commons-io FileUtils工具 copyFile(要拷贝的文件,拷贝给谁的那个文件);
FileUtils.copyFile(uploadFile, new File(file, System
.currentTimeMillis()
+ "_" + uploadFileName[i]));
}
return "upload";
}
} catch (IOException e) {
e.printStackTrace();
}
return "fail";
}
http客户端-------------> web容器 ----->struts2过滤器-
------>struts.xml --->Action----service-->dao->J数据库
登陆
Action 中验证用户是否登陆成功
Admin entity; getEntity(){return entity;}; //request
返回到客户段:
sc.jsp页面 ${entity.adminName}
用户管理
----->查询所有的用户信息
Admin_list.jsp ${entity.adminName}
Servlet
session.setAttribute(“entity”,entity);
Application:
服务器端: 会话的集合
Session:
什么是一个会话?
从你打开IE浏览器开始----退出
就是一个会话。
Request
请求-------〉
《-------------------响应
Page:
当前页面
高内聚 低耦合
Struts2 :访问或添加request/session/application属性
通过前面的练习大家都知道,在action的方法中与servlet的所有的API是没有任何关系的。所以在struts2中做到了aciton与serlvet的松耦合,这点是非常强大的。但是如果没有HttpServletRequest,HttpServletSession,ServletContext有些功能是没有办法完成的。比如购物车程序,需要把购买的物品放入session中。所以就得找一些路径使得在struts2中和serlvet的API相结合。
Struts2 ActionContext Map
public String scope() throws Exception{
ActionContext ctx = ActionContext.getContext();
ctx.getApplication().put("app", "应用范围");//往ServletContext里放入app
ctx.getSession().put("ses", "session范围");//往session里放入ses
ctx.put("req", "request范围");//往request里放入req
return "scope";
}
JSP:
<body>
${applicationScope.app} <br>
${sessionScope.ses}<br>
${requestScope.req}<br>
</body>
HttpServletRequest HttpSession ServletContext
Request session application
request.setAttribute(“name”,value);
${requestScope.name}
session.setAttribute(“name”,value);
${sessionScope.name}
application
ServletContext application = getServletContext();
application.setAttribute(“name”, value);
${application.name}
Struts2 servlet 松耦合
获取HttpServletRequest / HttpSession / ServletContext / HttpServletResponse对象
方式一:
ServletActionContext 调用Servlet API
//Struts2中 提供 ServletActionContext
//request
HttpServletRequest request = ServletActionContext.getRequest();
request.setAttribute("user", user);
//session
HttpSession session = request.getSession();
session.setAttribute("user", user);
//application
ServletContext application = ServletActionContext.getServletContext();
application.setAttribute("user", user);
方式二: 实现几个接口
package www.csdn.struts_scope.action;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts2.ServletActionContext;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.ServletResponseAware;
import org.apache.struts2.util.ServletContextAware;
import www.csdn.struts_scope.domain.User;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class UsersAction extends ActionSupport implements ServletRequestAware,
ServletResponseAware, ServletContextAware {
//调用servlet中的api
private HttpServletRequest request;
private HttpServletResponse response;
private ServletContext application;
private User user;
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
// 注入request
public void setServletRequest(HttpServletRequest request) {
this.request = request;
}
// 注入response
public void setServletResponse(HttpServletResponse response) {
this.response = response;
}
// 注入application
public void setServletContext(ServletContext application) {
this.application = application;
}
public String login(){
request.setAttribute("user", user);
request.getSession().setAttribute("user", user);
application.setAttribute("user", user);
return "user_login";
}
}
如果能用 ActionContext 解决 就不坚决不使用后边两种
就用方式一、ServeltActionContext
文件上传:
public String upload() {
// 首先确认你保存的路径 ServletContext application
// 创建文件
File file = new File(getPath());
if (!file.exists()) {
file.mkdirs();
}
try {
if (upload != null) {
for (int i = 0; i < upload.length; i++) {
File uploadFile = upload[i];
/*if(uploadFile==null){
continue;
}*/
// commons-io FileUtils工具 copyFile(要拷贝的文件,拷贝给谁的那个文件);
FileUtils.copyFile(uploadFile, new File(file, System
.currentTimeMillis()
+ "_" + uploadFileName[i]));
}
return "upload";
}
} catch (IOException e) {
e.printStackTrace();
}
return "fail";
}
相关文章推荐
- 11级_Java_曹建波 03.02 Struts2_事物管理&文件上传
- Struts2_事物管理&文件上传
- Struts2 Chapter 7&8 :文件的上传和下载,图形报表的生成part1
- Struts2 Chapter7 国际标签&文件的上传和下载
- struts2开发环境中,enctype="multipart/form-data"上传文件时,request.getInputStream()为null的原因(转http://topic.csdn.net/u/20101210/11/78454a19-7
- Struts2 上传文件报错: Unable to find 'struts.multipart.saveDir' property setting.
- (转)struts2开发环境中,enctype="multipart/form-data"上传文件时,request.getInputStream()为null
- Struts2学习之文件上传/下载&ValueStack(三)
- struts2开发环境中,enctype="multipart/form-data"上传文件时,request.getInputStream()为null的原因
- JSP&Struts2----文件上传
- <转载> struts2文件上传
- Struts2上传文件出现:Unable to find 'struts.multipart.saveDir' property setting
- .NET快速信息化系统开发框架 V3.2->Web版本新增“文件管理中心”集上传、下载、文件共享等一身,非常实用的功能
- Struts2 上传文件报错: Unable to find 'struts.multipart.saveDir' property setting.
- 框架之struts2实现简易学生管理系统(struts2文件上传、分层)
- Struts2文件上传在配置fileUpload拦截器中设置文件大小无效的问题
- asp.net(C#)上传下载及文件管理代码
- Struts2学习笔记之文件的上传与下载
- struts2的文件的上传与下载笔记
- struts2 JS获取上传文件的绝对路径,兼容IE和FF