您的位置:首页 > 编程语言 > Java开发

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";

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐