1.Struts2访问Servlet API方式
1、ActionContext
2、实现Aware接口
3、ServletActionContext
Struts2三种方式访问Servlet api
Struts2的几个方面
ServletAPI:HttpServletRequest、HttpServletResponse,和ServeltContext对应JSP内置对象为Request、Response、Application(Servlet可以直接调用HttpServletRequest和HttpServletResponse,因为doGet、doPost方法)。
Struts:Struts不提供ServletAPI耦合,Struts的Action的execute方法不存在任何参数。
Struts提供的三种访问ServeltAPI方式:
方式一:ActionContext(上下文类,通过它可以获得servletAPI ,所有的对象都是以Map进行存储的)。
方式二:实现***Aware接口。
方式三:ServletActionContext(与方式一相似)。
struts访问Servlet API
Struts2提供了三种方式去访问Servlet API
struts访问servlet的方式
由于 strtus2 本身 是不提供 servlet API
所以无法获取到 HttpServletRequest
跟HttpServletResponse 对象的
但提供了三种方式去 获取该对象:
1、ActionContex act
2、实现 ***Aware 接口
3、ServletActionContext
@Struts2---struts2访问Servlet API的三种方式
Servlet API
HttpServletRequest
HttpServletResponse
ServletContext
Struts2没有Servlet API
Struts2访问Servlet API的三种方式
1>使用ActionContext访问Servlet API(推荐使用)
ActionContext actionContext=ActionContext.getContext(); Map<String, Object> sessionMap=actionContext.getSession(); sessionMap.put("user", user);
2>使用IOC的方式访问Servlet ApI
实现****Aware接口,如实现SessionAware接口,重写setSession方法
public void setSession(Map<String, Object> sessionMap) { this.sessionMap=sessionMap; } sessionMap.put("user",user);
3>耦合方式(ServletActionContext)访问Servlet API(不推荐使用)
ServletActionContext.getPageContext(); ServletActionContext.getRequest(); ServletActionContext.getResponse(); ServletActionContext.getServletContext();
Struts2提供了三种方式去访问Servlet API 1、使用ActionContext访问Servlet API(推荐使用) ActionContext actionContext=ActionContext.getContext(); Map<String, Object> sessionMap=actionContext.getSession(); sessionMap.put("user", user); 2、使用IOC的方式访问Servlet ApI 实现****Aware接口,如实现SessionAware接口,重写setSession方法 public void setSession(Map<String, Object> sessionMap) { this.sessionMap=arg0; } sessionMap.put("user",user); 3、耦合方式(ServletActionContext)访问Servlet API(该方法不推荐使用) ServletActionContext.getPageContext(); ServletActionContext.getRequest(); ServletActionContext.getResponse(); ServletActionContext.getServletContext();
struts2提供了3种方式访问servlet api:
ActionContext, 实现**Aware接口, ServletActionContext
servlet API
HttpServletRequest
HttpServletResponse
ServletContent
JSP的内置对象:
1.request:javax.servlet.httpServletRequest类型,代表客户端的请求信息,用于接收通过htt协议传送到服务器 的的数据,作用域为一次请求。
2. respose:javax.servlet.httpServletResponse类型,代表服务器端的响应,用于将服务器端的响应信息传到客户端。作用域是当前jsp页面。
3. application:可将数据保存到服务器端,服务器不停,application中保存的数据都有效,作用域在整个应用程序中都有效(保存数据后不关服务器)。
4. session:服务器端自动创建的与客户请求数据相关的对象,服务器为每个用户创建一个session对象,用于保存该用户的基本信息和操作信息状态。通常session有默认的有效时长,session保存数据是以key-value形式保存,value可以是对象。
5. out:输出流,用于向浏览器输出+管理服务器上的输出缓冲区。
6. pageContext:由web容器创建和初始化,其他对象要通过操作此对象获得,在jsp中可以直接操作该对象。此对象可以获取页面操作需要的所有以存在的参数信息。
7. config:获取服务器的配置信息,该对象通过pageContext.getServletcConfig()方法获取,web容器在启动后,也是通过config对象将配置信息传递给servlet。
8. page:jsp本身,只有在jsp页面内有效,相当与java代码中的this
9. exception:显示异常信息,在当前jsp页面中要设置isErrorPage="true"才可以正常使用,正常异常可能出现的地方均有try{}catch(){}出现,若出现的异常没有被捕获,则页面会产生exception对象,并将这个异常对象传递到page指令设定的异常页面,有异常页面处理这个异常对象。
传统的MVC模式的web项目是由servlet(doGet().doPost(),参数是HttpServletRequest(携带请求参数),HttpServletResponse(携带服务器响应参数),访问周期是由servlet的声明周期决定的 )和前端的jsp实现的,