JSP几个常用的内置对象(+Cookie对象)

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实现跳转的方法:

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的一个方法
<%
帐号: 密码:
....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中存储数据

生命周期对比:

  1. page:数据在当前页面有效,跳转到其他页面后数据失效(包括转发、重定向)。
  2. request:数据在若干页面间有效,前提:转发。
  3. session:在整个访问过程中有效,不管转发还是重定向。
  4. application:生命周期直到服务器关闭。

Cookie对象(非JSP内置对象)
由服务器产生保存在客户端的文本信息。
作用:对特定对象追踪;统计浏览次数;简化登录。
安全:容易造成信息泄露。

  1. 保存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值
}
}
}

在这里插入图片描述

你可能感兴趣的:(JSP)