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

来源:互联网 发布:景观大数据软件课程 编辑:程序博客网 时间:2024/06/01 10:46

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中存储数据

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

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

Cookie cookie=new Cookie(String name,String value);//声明cookieResponse.addCookie(cookie);//由系统推送cookie到本地Cookie.setMaxAge(60);//cookie生命周期60秒

//之后当用户浏览器启动,访问我们的jsp页面,就会读取cookie数据,根据数据个性化加载对应信息到页面
2. 读取本地cookie数据

Cookie[] cookies=request.getCookie();//从用户request请求读取全部cookieIf(cookie!=null){For(Cookie c:cookies)//循环遍历cookie们{If(c.getName().equals(“cname”))//如果cookie的name与要找的相同{String name=c.getValue();//取出该cookie对应的value值}}}
0 0
原创粉丝点击