java_SSH继续充电_struts2_第一天
2015-11-23 12:17
621 查看
Action访问servletAPI,获取Map类型的servlet元素
1,取得Map类型的request,session,application:
private Map<String ,Object> request;
pirvate Map<String,Object> session;
private Map<String ,Object> application;
this.request=(Map)ActionCOntext.getContext().get("request");
this.application=ActionContext.getContext().getApplication();
this.request.put("reqAttr","reqDirect");
this.session.put("sessionAttr","sessionAttr");
this.application.plut("applicationAttr","aapplicationAttr");
this.session=ActionContext.getContext().getSession();
jsp:访问通过EL:reqAttr:${requestScope.reqAttr} ssessionAttr:${sessionScopoe.ssessionAttr} application:${applicationScope.applicatgionAttr}
2,通过IOC,DI获取
通过注入方式实现接口:requestAware,SessionAware,applicatioinAware
首先实现其方法:public void setRequest(Map<String,Object> request){
this.request=request;
}
public void setSession(Map<String,Object> session){
this.session=session;
}
public void setApplication(Map<String,Object> application){
this.application=application;
}
获取真实的servletAPI类型的servlet元素
privaete HttpServletRequset request;
prjivaet HttpSession session;
pirvaet HttpSevletResponse response;
private ServletContext application;
this.request=ServletActionCOntext.getRequest();
this.resposne=ServletActionCOntext.getResponse();
this.session=this.request.getSession();
this.application=ServletActionContext.getServletContext();
this.request.setAttrivute("reqttr",reqattr);
this.session.setAttribute("sessionAttr",sessionAttr);
this.application.setAttribute("applicationAttr","applicationAttr");
PrintWriter out=resposne.getWriter();
out.print("Hello Resposne");
out.flush();
out. close();
System.out.println("testActon");
return null;主要是针对ajax停止运行
控制反转:继承 ActionSupport 实现 servletRequestAware,ServletResposneAware,ServletContetxt
public void setServletRequest(HttpServletRequest request){
this.request=request;
}
public void setServletResponse(HttpServletResponset response){
this.response=response;
}
2,struts.xml总result类型:
dispatcher:forward方式,服务器端调整
redirect:客户端调整
chain:action转发,forward方式,服务器端跳转action
redirectAction:客户端跳转action
全局result:<global-results>
<result name="main">/index.jsp</result>
</global-results>
1,取得Map类型的request,session,application:
private Map<String ,Object> request;
pirvate Map<String,Object> session;
private Map<String ,Object> application;
this.request=(Map)ActionCOntext.getContext().get("request");
this.application=ActionContext.getContext().getApplication();
this.request.put("reqAttr","reqDirect");
this.session.put("sessionAttr","sessionAttr");
this.application.plut("applicationAttr","aapplicationAttr");
this.session=ActionContext.getContext().getSession();
jsp:访问通过EL:reqAttr:${requestScope.reqAttr} ssessionAttr:${sessionScopoe.ssessionAttr} application:${applicationScope.applicatgionAttr}
2,通过IOC,DI获取
通过注入方式实现接口:requestAware,SessionAware,applicatioinAware
首先实现其方法:public void setRequest(Map<String,Object> request){
this.request=request;
}
public void setSession(Map<String,Object> session){
this.session=session;
}
public void setApplication(Map<String,Object> application){
this.application=application;
}
获取真实的servletAPI类型的servlet元素
privaete HttpServletRequset request;
prjivaet HttpSession session;
pirvaet HttpSevletResponse response;
private ServletContext application;
this.request=ServletActionCOntext.getRequest();
this.resposne=ServletActionCOntext.getResponse();
this.session=this.request.getSession();
this.application=ServletActionContext.getServletContext();
this.request.setAttrivute("reqttr",reqattr);
this.session.setAttribute("sessionAttr",sessionAttr);
this.application.setAttribute("applicationAttr","applicationAttr");
PrintWriter out=resposne.getWriter();
out.print("Hello Resposne");
out.flush();
out. close();
System.out.println("testActon");
return null;主要是针对ajax停止运行
控制反转:继承 ActionSupport 实现 servletRequestAware,ServletResposneAware,ServletContetxt
public void setServletRequest(HttpServletRequest request){
this.request=request;
}
public void setServletResponse(HttpServletResponset response){
this.response=response;
}
2,struts.xml总result类型:
dispatcher:forward方式,服务器端调整
redirect:客户端调整
chain:action转发,forward方式,服务器端跳转action
redirectAction:客户端跳转action
全局result:<global-results>
<result name="main">/index.jsp</result>
</global-results>
Redirect和Dispatcher 区别
使用forward是服务跳转,浏览器不知道它所请求的具体资源来源,浏览器的地址栏不会变; 使用redirect,服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL。
request.getRequestDispatcher("test.jsp").forward(request, response);//转发到test.jsp response.sendRedirect("test.jsp");//重定向到test.jsp
重定向:以前的request中存放的变量全部失效,并进入一个新的request作用域。 转发:以前的request中存放的变量不会失效,就像把两个页面拼到了一起。
forward,转发页面和转发到的页面可以共享request里面的数据. redirect,不能共享数据.
相关文章推荐
- 百度ueditor struts2图片上传问题解决方案
- struts2的工作原理
- 《深入理解java虚拟机》学习笔记之虚拟机字节码执行引擎
- Spring事务配置
- Hibernate持久化对象存在三种状态
- Myeclipse快捷键
- Java验证码生成
- 使用 Spring 进行单元测试
- java静态代码块、非静态代码块、构造器执行顺序
- 配置JDK————找不到或无法加载主类
- Struts2入门简单示例
- Java中的private、protected、public和default的区别
- 【leetcode】Minimum Path Sum
- Java开发中的23种设计模式详解(转)
- struts2 基础入门
- Java虚拟机-----方法区和运行时常量池
- 【leetcode】Spiral Matrix II
- java web实现用户权限管理
- javaweb过滤器
- java定时器学习