jsp九大内置对象
page、out、request、response、session、application、pageContext、config、exception。
page对象
表示当前页面JSP本身,只在jsp内合法。
<%@ page language=“java” contentType=“text/html; charset=utf-8”
pageEncoding=“utf-8”%>
out对象
用于在web浏览器内输出信息,且管理应用服务器上的输出缓冲区。
Syso用于在控制台输出。
主要有out.print()方法和out.println()方法,println()换行。
out.print(“ok”);
out.println(“插入失败!”);
Request请求对象
代表客户端请求信息,接收HTTP协议服务器的数据。
主要包括:头信息、系统信息、请求方式、请求参数。
返回值 Request方法 注释
String getParameter(String key); 通过key值(网页表单中的name属性)获取request对象中对应的值。
String[] getParameterValues(String key); 通过key值(网页表单中的name属性)获取request对象中对应的全部值。
Void setCharacterEncoding(“utf-8”); 设置request对象的编码格式。
RequestDispatcher getRequestDispatcher(“xxx.jsp”).forward(request,response); 携带request转发到xxx.jsp页面。
Response响应对象
对客户端的响应。将JSP容器处理过的对象传回客户端。
作用域:只在JSP页面有效。
//页面重定向,将request请求重新定位到一个不同的URL。
Void sendRedirect(String location);
//转发 重定向
Request.getRequestDispatcher(String location).forward(request,response); Response.sendRedirect(String location);
Web服务器调用内部方法实现请求处理,在同一web应用,共享request请求数据。 Web服务器返回一个相应后,浏览器再次发出一个请求。重定向后数据无法共享。
服务器端发挥作用,通过forward()方法在多个页面间传递数据。 在客户端发挥作用,通过新的请求完成页面跳转。
//内部控制转移,URL不变 新请求导致URL变化
//重定向
if(userId!= 0){
session.setAttribute("isReg", "用户名已存在!");
}else{
user.setUserPwd(userPwd) ;
int result=us.regUser(user);
if(result!=0){
session.setAttribute("isReg", "注册成功!");
}else{
session.setAttribute("isReg", "注册失败!");
}
}
response.sendRedirect("../index.jsp");
//js实现跳转的方法:
<script type=”text/javascript”>
Function exit(){
Window.location.href=”doExit.jsp”;
}
</script>
Session会话对象
1.由服务器自动创建的,与用户请求相关的对象。
2.服务器为每个用户创建一个session对象,保存用户信息,跟踪用户操作状态。
3.Session对象内部使用Map类保存数据,格式为key/value。
4.value值可以使用复杂的对象类型,不限于字符串类。
5.session支持多线程,一个客户端一个session;客户端不一样,session就不一样,同一客户端,session一样。
返回值 Session方法 注释
给session设置属性
void setAttribute(String key,Object value);
取session的属性值
Object(需强转) getAttribute(String key);
使session失效
void Invalidate();
获取session的id
String getId();
设置session最大非活动时间(单位:秒)
Void setMaxInactiveInterval(int interval);
获取sesssion当前最大非活动时间(秒)
Int get MaxInactiveInterval();
移除session的属性
void RemoveAttribute(String key);
//session的一个方法
<%
<form action="domonidenglu.jsp">
帐号:<input type="text" name="zhanghao"/>
密码:<input type="password" name="mima"/>
<input type="submit" value="提交">
</form>
....String zhanghao=request.getParameter("zhanghao");
String mima=request.getParameter("mima");
out.print("帐号是:"+zhanghao);
out.print("密码是:"+mima);
if(zhanghao.equals("admin")&&mima.equals("123456")||zhanghao.equals("admin1")&&mima.equals("123")){
//跳转前用session保存数据
session.setAttribute("umima",mima );
session.setAttribute("uzhanghao",zhanghao);
response.sendRedirect("dengluchenggong.jsp");
}else{
response.sendRedirect("denglushib-ai.jsp");
}
%>
}
application对象
可将信息保存到服务器中,直到服务器关闭。
与session相比,生命周期更长,类似于系统“全局变量”
。
Object Application.getAttribute(String name);//获取application中存储的数据
Application.setAttribute(String name,Object save);//向application中存储数据
生命周期对比:
- page:数据在当前页面有效,跳转到其他页面后数据失效(包括转发、重定向)。
- request:数据在若干页面间有效,前提:转发。
- session:在整个访问过程中有效,不管转发还是重定向。
- application:生命周期直到服务器关闭。
Cookie对象(非JSP内置对象)
由服务器产生保存在客户端的文本信息。
作用:对特定对象追踪;统计浏览次数;简化登录。
安全:容易造成信息泄露。
- 保存cookie到本地
Cookie cookie=new Cookie(String name,String value);//声明cookie
Response.addCookie(cookie);//由系统推送cookie到本地
Cookie.setMaxAge(60);//cookie生命周期60秒
//之后当用户浏览器启动,访问我们的jsp页面,就会读取cookie数据,根据数据个性化加载对应信息到页面
2. 读取本地cookie数据
Cookie[] cookies=request.getCookie();
//从用户request请求读取全部cookie
If(cookie!=null){
For(Cookie c:cookies)//循环遍历cookie们
{
If(c.getName().equals(“cname”))//如果cookie的name与要找的相同
{
String name=c.getValue();//取出该cookie对应的value值
}
}
}