九大內置對象
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");
