application
对于整个web应用有效。一旦jsp,servlet将数据放在application中,该数据将可以被该应用下其他所有的jsp,servlet访问,通常只应该把web应用的状态数据放入application里。
常用方法:getAttribute(String attName);
setAttribute(String attName,String attValue);
getInitParameter(String paramName);
作用:
1.在整个web应用的多个jsp,servlet之间共享数据
2.访问web应用的配置参数
jsp获取application里的变量
application.getAttribute("");
servlet获取application里的变量
ServletContext sc = getServletConfig().getServletContext();
sc.getAttribute("");
用application的getInitParameter(String paramName)获取web应用的配置参数
config
代表该jsp配置信息,更多在servlet中有效
常用方法:getInitParameter(String paramName);getInitParameternames()
exception
仅在处理 异常页面才有效
out
out对象代表一个页面输出流,通常用于在页面输出变量值和常量
page
也就是servlet中的this,其类型就是生成的Servlet类,能用page的地方就可用this
pageContext
这个对象代表页面上下文,该对象主要用于访问jsp之间的共享数据。使pageContext可以访问page,request,session,application范围的变量
request
每个request对象封装着一次用户请求,并且所有的请求参数都被封装在request对象中。
并不是每个表单都会生成参数请求,而是有name属性的表单域才能生成请求参数
常用方法:getAttribute(String paramName);
getParameterValues(String paramName);
setAttribute(String attName,Object attrValue);
getAttribute(String attName);
setCharacterEncoding(String env);
response
服务端对客户端的响应
重定向
转发(forward)与重定向(redirect)
1.执行forward之后依然是上一次的请求,执行redirect后生成二次请求
2.forward的目标页面可以访问原请求的请求参数,所有原请求的请求参数、request范围的属性全部存在;redirect反之
3.forward地址栏的URL不会改变, redirect地址栏改为重定向的目标URL
增加cookie
cookie会一直放在客户端,除非超出cookie的生命周期,由session发给客户端,session会随着浏览器的关闭而失效
1.创建cookie实例 Cookie的构造器 Cookie(String name,String value)
Cookie cookie=new Cookie("username",name);
2.设置cookie的生命周期,若不设置,cookie会随着浏览器的关闭而自动消失
cookie.setMaxAge(24*3600);//24小时
3.向客户端写cookie
response.addCookie(cookie);
访问cookie
1.获取本站在客户端保存的所有cookie
Cookie[] cookies = response.getCookies();
2.遍历客户端上的每个cookie
for(Cookie c:cookies){
if(c.getName().equals("username")){//若cookie的名为uesrname,则该cookie是需要访问的cookie
out.println(c.getValue());
}
}
session
session对象代表一次对话,从浏览器连接服务器开始,到客户端浏览器与服务器断开为止,这个过程就是一次对话。(实现购物车)
session对象是HttpSession的实例,常用方法:setAttribute(String attName);getAttribute(String attName);