目的
为了简化用户的开发
不需要用户实例化 可以直接使用
内置对象
1.pageContext JSP的页面容器
2.request 得到用户的·请求信息
3.response 服务器向客户端的回应信息
4.session 用来保存用户的每一个信息
5.application 表示所有用户的共享信息
6.config 服务器配置,可以取得初始化参数
7.out 页面输出
8.page 表示从该页面中表示出来的一个servlet实例
9.exception 表示JSP页面所发生的异常,在错误页中才起作用
JSP内置对象四种属性范围
在JSP中提供了四种属性的保存范围,所谓的属性保存范围,指的就是一个设置的对象,可以在多少个页面中保存并可以继续使用
四种属性范围
pageContext:只在一个页面中保存属性,跳转之后无效
request:只在一次请求中保存,服务器跳转之后任然有效
session:在一次会话范围中,无论何种跳转都可以使用,但是新开浏览器无法使用
application:在整个服务器上保存,所有用户都可以使用
属性操作方法
public void setAttribute(String name,Object o) 设置属性的名称及内容
public Object getAttribute(String name) 根据属性名称取得属性
public void removeAttribute(String name) 删除指定的属性
1. page属性范围(pageContext 范围)
本页可取得 forward 跳转之后本页无法取得
2. request属性范围
服务器跳转之后依然保留 forward 跳转
request表示客户端的请求 正常情况下一个服务器只回应一次
如果是服务端跳转 请求地址没有改变 所以相当于回应了一次 地址栏改变相当于第二次请求 第一次请求内容消失 无法取得
3.session属性范围
任何一个与设置页面相关的页面中取得 服务器 客户端
4.application
所有用户都能看到
request内置对象
接收客户端发送来的请求信息 客户端到服务器
request内置对象的常用操作
1.getParameter 接收客户端发来的请求参数内容
2.getParameterValues 取得客户端发来的一组请求参数内容
3.getParameterNames 取得全部请求参数的名称
4.getRemoteAdd 得到客户端的IP地址
5.setCharacterEncoding 设置统一的请求编码
6.isUserRole 进行用户的身份验证
7.getSession 取得当前session对象
8.getRequestURL 返回正在请求的路径
9.getHeaderNames 取得全部请求的头信息名称
10.getHeader 取得头信息内容
11.getMethod 取得用户提交方式
12.getServletPath 取得访问路径
13.getCountextPath 取得上下文资源路径
参数 头信息(自己操作系统 浏览器一些信息)
只要应用在HTTP
解决乱码问题
setCharacterEncoding
//设置接收编码
request.setCharacterEncoding("utf-8");
接收请求参数
getParameter
接收多参
getParameterValues
URL地址重写
有长度限制
动态页面地址?参数名称1=参数内容1&参数名称2=参数内容2&...
localhost:8080/class_javaweb1/jsp3_1/request3.jsp?name=zhangsan&password=123
接收全部请求参数getParameterNames 返回为枚举型
显示全部头信息
getHeaderNames
<%
Enumeration enu = request.getHeaderNames();
while(enu.hasMoreElements()){
String headname = (String)enu.nextElement();
String headvalue = request.getHeader(headname);
%>
<%=headname %>-->
<%=headvalue %><br >
<%
}
%>
<%
String method = request.getMethod();//数据传输方法
String ip = request.getRemoteAddr();//IP地址
String path = request.getServletPath();//访问路径
String contextpath = request.getContextPath();//路径上下文路径
%>
method:<%=method %>
ip:<%=ip %>
<%=path %>
<%=contextpath %>
response对象
对客户端的请求进行回应
方法
1.addCookie 客户端增加cookie
2.setHeader 设置回应头信息
3.setRedirect 页面跳转
刷新头信息 定时刷新
setHeader(“refresh”,1)
定时跳转
静态
<meta http-equiv="refresh" content="3;URL=request1.html">
动态
response.setHeader("refresh", "5;URL=request1.html");
forward服务器跳转 跳转后地址不会改变
response.sendRedirect客户端跳转 跳转后改变地址 (a标签)
Cookie
让服务器端的程序能将一些只须保存在客户端 减少服务器的负载 安全性差
Cookie 实例化对象
getName 名字
getCValue 内容
setMaxAge 设置保存时间
session对象 表示会话 区分不同的访问对象
getId 取得会话
getCreationTime 创建时间
getLassAccessedTime 最后一次操作时间
isNew 是否是新用户
invalidate 让session失效
getAttributeNames 得到全部属性名称
登录注销
判断session值是否存在 存在能操作 不存在返回登陆
Application对象
getRealPath 得到虚拟目录对应的绝对路径
getAttributeNames 得到所有属性名的名称
getContextPath取得当前虚拟路径的名称
第一个/表示前面的路径 后面加的东西会拼在该路径后
String path = application.getRealPath("/");
也可以通过this.getServletContext替代
String path = this.getServletContext().getRealPath("/");