Struts2_事物管理&文件上传
来源:互联网 发布:linux怎么背命令 编辑:程序博客网 时间:2024/05/07 07:46
在实现登陆后 对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>
HttpServletRequestHttpSession 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);
方式二: 实现几个接口
packagewww.csdn.struts_scope.action;
importjavax.servlet.ServletContext;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importjavax.servlet.http.HttpSession;
importorg.apache.struts2.ServletActionContext;
importorg.apache.struts2.interceptor.ServletRequestAware;
importorg.apache.struts2.interceptor.ServletResponseAware;
importorg.apache.struts2.util.ServletContextAware;
importwww.csdn.struts_scope.domain.User;
importcom.opensymphony.xwork2.ActionContext;
importcom.opensymphony.xwork2.ActionSupport;
public classUsersAction extendsActionSupport implements ServletRequestAware,
ServletResponseAware, ServletContextAware {
//调用servlet中的api
privateHttpServletRequestrequest;
privateHttpServletResponseresponse;
privateServletContext application;
privateUser user;
publicUser getUser() {
return user;
}
public voidsetUser(User user) {
this.user= user;
}
//注入request
public voidsetServletRequest(HttpServletRequest request) {
this.request= request;
}
//注入response
public voidsetServletResponse(HttpServletResponse response) {
this.response= response;
}
//注入application
public voidsetServletContext(ServletContextapplication) {
this.application= application;
}
publicString 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";
}
- Struts2_事物管理&文件上传
- Struts2_事物管理&文件上传
- 11级_Java_曹建波 03.02 Struts2_事物管理&文件上传
- Struts2_文件上传_Demo
- Struts2_单文件上传
- Struts2_多文件上传
- struts2_文件上传
- Struts2_文件上传
- 42. Struts2_文件的上传
- 26.struts2_文件的上传
- JavaWeb开发知识总结(七)-(struts2_文件上传_Ajax)
- Struts2_文件上传关于限制文件名、类型及大小
- 本地文件上传、下载服务器文件事物码
- 事物管理
- 事物管理
- 事物管理
- 事物管理
- 事物管理
- C语言堆栈入门——堆和栈的区别
- 【大众点评】2015年校园招聘在线笔试题之{字符串包含}
- poj 2833
- c#类似跑马灯抽签小程序
- freemarker 百度百科
- Struts2_事物管理&文件上传
- 百度2015校园招聘笔试题——研发工程师(西安站)
- JSP九大内置对象及四个作用域
- crm创建基于fetch的自定义报表
- JSP常见指令
- 堆和栈的区别
- Page、request、session、application四个域的区别
- 监控oracle性能的一些常用查询
- 简单实用的DataSet更新数据库的类+总结(c#)