JSP中九大内置对象为:
request 请求对象 类型 javax.servlet.ServletRequest 作用域 Request
response 响应对象 类型 javax.servlet.SrvletResponse 作用域 Page
pageContext 页面上下文对象 类型 javax.servlet.jsp.PageContext 作用域 Page
session 会话对象 类型 javax.servlet.http.HttpSession 作用域 Session
application 应用程序对象 类型 javax.servlet.ServletContext 作用域 Application
out 输出对象 类型 javax.servlet.jsp.JspWriter 作用域 Page
config 配置对象 类型 javax.servlet.ServletConfig 作用域 Page
page 页面对象 类型 javax.lang.Object 作用域 Page
exception 例外对象 类型 javax.lang.Throwable 作用域 page
JSP内置对象——application对象
一、application介绍
1、实现了用户间数据的共享,可存放全局变量。(类似静态对象)
2、开始于服务器启动,终止于服务器的关闭(生命周期)
3、在用户的前后连接或不同用户之间的连接中,可以对application对象的同一属性进行操作
4、在任何地方对application对象属性进行操作,都将影响到其他用户对此的访问
5、application对象是ServletContext类的实例
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.ServletResponseAware;
import org.apache.struts2.util.ServletContextAware;
import com.opensymphony.xwork2.ActionSupport;
//所有Action动作的父类,并注入内置对象
public class SuperAction implements ServletRequestAware,
ServletResponseAware,ServletContextAware{
/**
*
*/
//请求对象
protected HttpServletRequest request;
//响应对象
protected HttpServletResponse response;
//会话对象
protected HttpSession session;
//全局对象
protected ServletContext application;
public void setServletContext(ServletContext application) {
// TODO Auto-generated method stub
this.application=application;
}
public void setServletResponse(HttpServletResponse response) {
// TODO Auto-generated method stub
this.response=response;
}
public void setServletRequest(HttpServletRequest request) {
// TODO Auto-generated method stub
this.request=request;
this.session=request.getSession();
}
}
子类这样也可以直接引用父类的属性
三 在MVC框架中获取内置对象
1. struts2中获取内置对象
Struts2获取request对象
1.通过ActionContext获取返回的是map集合
Map request = (Map)ActionContext.getContext().get(“request”);
request.put(“tasks”, tasks);
2.通过ServletActionContext类来获取
HttpServletRequest request = ServletActionContext.getRequest();
request.setAttribute(“username”, “zhangsan”);
req.getSession().setAttribute(“b”, “bb”);//获取session对象
request.getSession().getServletContext().getApplication(); //得到Application
3.通过接口注入的方式(推荐使用)
Struts2获取session对象
Map session=ActionContext.getContext().getSession();
//在session中设值
session.put(“username”, username);
2.springMVC中获取内置对象
//获取request对象
1.(推荐使用)
public String reg2(HttpServletRequest req){
req.setAttribute(“a”, “aa”);
}
2.
public String reg(ModelMap map){
map.put(“a”, “aaa”);
return “index”;
}
//获取session对象
1.(推荐使用)
public String reg2(HttpServletRequest req){
req.getSession().setAttribute(“b”, “bb”);
}
2.使用注解
@SessionAttributes({“u”,”a”}) //将ModelMap中属性名字为u、a的再放入session中。这样,request和session中都有了。