Struts2_事物管理&文件上传
来源:互联网 发布:国考行测技巧知乎 编辑:程序博客网 时间:2024/05/28 15:06
在实现登陆后 对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";
}
- Struts2_事物管理&文件上传
- Struts2_事物管理&文件上传
- 11级_Java_曹建波 03.02 Struts2_事物管理&文件上传
- Struts2_文件上传_Demo
- Struts2_单文件上传
- Struts2_多文件上传
- struts2_文件上传
- Struts2_文件上传
- 42. Struts2_文件的上传
- 26.struts2_文件的上传
- JavaWeb开发知识总结(七)-(struts2_文件上传_Ajax)
- Struts2_文件上传关于限制文件名、类型及大小
- 本地文件上传、下载服务器文件事物码
- 事物管理
- 事物管理
- 事物管理
- 事物管理
- 事物管理
- java正则表达式-案例代码
- Hdu Base Station (网络流最大权闭合图)
- POJ2531--Network Saboteur
- c++模板 (STL)
- 浮点数的二进制表示分析
- Struts2_事物管理&文件上传
- Linux启动过程
- TE6410之自己动手编写LED驱动
- buffer与cache
- 进入IT我不曾后悔,希望高人指点迷津
- argparse – Command line option and argument parsing
- javascript解析json
- MAC 快捷键
- Minigui 海思3531