九大内置对象、四大作用域

时间:2022-01-01 13:03:27

九大内置对象

out.request,response,session,application,pageContext,Config,Page,Exception

四大作用域

内置对象作用域:application>session>request>pageContext        

 

Request.代表转发,(代码在服务器内部执行的一次性请求,url地址不会发生改变,可以携带我们的参数)(request.getRequestDispatcher("login.jsp").forward(request, response);)

 

Response:代表重定向(在客户端执行的2次请求,url地址肯定会发生改变,可以携带参数,但是很少用),用a项目跳转b项目,必须要用重定向,就是跳转页面

response.sendRedirect("showInfo.jsp"); 

request.setAttirbute (),, request.getAttirbute: 主要用服务端内部做转发使用

request.Parameter() :主要用户获取前端提交的表单输入框数据

session..setAttirbute (),将登录成功用户名保存到session中

Session  会话  一次对象(存在服务端)

每打开一个网页,(新建一个窗口),都会产生一个会话,每一个会话都有一个独立的session ID,session一般用于保存户名

Session.setAttribute(“user”,user);

session.setMaxInactiveInterval(100);

<%

out.print(session.getId());

session.setAttribute("name", "zhang");

%>

<a href="Mysession.jsp">跳转</a>

 

<%

out.print(session.getId());

session.getAttribute("name")

%>

 

1、session.removeAttribute()可以指定销毁session中的某个属性

2、session.invalidate()是让当前浏览器的session销毁,也就是一个session被销毁,比如用户登录后注销就用这个,因为注销意味着该用户session中的所有属性均失效。

cookie的默认时效是会话级别,在关闭浏览器就结束了

设置cookie

Cookie cookie1=new Cookie("ad",URLEncoder.encode("jeck"));

//把密码存入到cookie里面

Cookie cookie2=new Cookie("pwd","123");

//把cookie,添加到内置对象里面

response.addCookie(cookie1);

response.addCookie(cookie2);

获取cookie

Cookie[] cookie=request.getCookies();

if(cookie!=null&&cookie.length>0){

//开始进行遍历

for(int i=0;i<cookie.length;i++){

//通过键值对来存,所有你可以通过键来拿值

if(cookie[i].getName().equals("ad")){

//获取用户名,解密

userName=URLDecoder.decode(cookie[i].getValue());

out.print(userName);

}else if(cookie[i].getName().equals("pwd")){

//获取密码

pwd=cookie[i].getValue();

out.print(pwd);

 

/* 所有的getgetAttribute内置对象返回的都是object; */

//作用域在当前页

pageContext.setAttribute("userName", "admin");

//作用域在容器内,转发

request.setAttribute("userName", "admin");

//作用域:只要Tomcat容器不关闭,都能获取内置对象的值,任何网页都可以获取

application.setAttribute("userName", "admin");