九大内置对象
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");