365bet外围网站-约彩365安卓版本-365dni是真的吃吗

JSP(5)—Session的创建以及简单使用

JSP(5)—Session的创建以及简单使用

页面:

1.案例

Book Detail Page

Book:<%=request.getParameter("book") %>



Return

<%

//步骤2.获取表单数据

//获取表单提交的参数

String book = request.getParameter("book");

//步骤3.获取Cookie

//获取Cookie,初始有一个Cookie:JSESSIONID,它是有Tomcat服务器产生的传到浏览器中,首次访问book.jsp页面

//传到浏览器存到集合中,再次访问时又有新的Cookie存到集合中,该Cookie会存到集合中的第一位,以此每次获取到Cookie

//都会放到集合第一位上

Cookie[] cookies = request.getCookies();

System.out.println("cookie_size:"+cookies.length);

System.out.println("cookie_Name:"+cookies[0].getName());

//步骤4.创建集合变量,以备使用

//保存所有的以ATGUIGU_BOOK_开头的Cookie

List bookCookies = new ArrayList();

//步骤5.创建临时Cookie,用于记录要删除的Cookie

//用来保存和books.jsp传入的book匹配的那个Cookie

Cookie tempCookie = null;

//步骤6.从浏览器中获取的Cookie,是否不为空,获取长度大于零

//判断Cookie总是否有cookie

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

//遍历所有的Cookie

for(Cookie cookie : cookies){

String cookieName = cookie.getName();

//判断该Cookie是否是以ATGUIGU_BOOK_开头的

if(cookieName.startsWith("ATGUIGU_BOOK_")){

//步骤7.从浏览器中传过来的Cookie中,找到Cookie的Name是以“ATGUIGU_BOOK_”开头的都保存到集合中去

//把这些满足条件的cookie放到集合中去

bookCookies.add(cookie);

//步骤8.判断刚刚传进来的表单参数是否和集合中的某一元素相同,是的话就使用tempCookie记录下来

if(cookie.getValue().equals(book)){

tempCookie = cookie;

}

}

}

}

//步骤9.判断集合中的元素是否超过5个,或者没有重复的表单参数传进来,就把要集合的第一个元素赋给变量tempCookie

//如果集合中元素超过5个,就删除

if(bookCookies.size() >= 5 && tempCookie == null){

tempCookie = bookCookies.get(0);

}

//步骤10.tempCookie的setMaxAge()方法设置值为0表示,让浏览器删除CookieName为tempCookie的Cookie,并返回浏览器

//若在其中就删除

if(tempCookie != null){

tempCookie.setMaxAge(0);

response.addCookie(tempCookie);

}

//步骤11.返回不止一个Cookie,另外创建一个Cookie对象,把获得的表单参数作为CookieValue,返回给浏览器,浏览器执行步骤1.2

//把books.jsp传入的表单参数book作为一个Cookie返回

Cookie cookie = new Cookie("ATGUIGU_BOOK_" + book,book);

response.addCookie(cookie);

%>

2.案例

<%

//无法使用Session对象,session.getid();

//page指令中session的值为false,所以不能使用session隐含对象,但是可以使用显式的session对象

out.println("session:"+session.getId()+"
");

%>

<%

//HttpSession session = request.getSession(false);

//out.println(session);

%>

<%

HttpSession session1 = request.getSession(false);

//HttpSession session2 = request.getSession();

out.println("session1:"+session1.getId()+"
");

//out.println("session2:"+session2.getId()+"
");

%>

<%

//立即失效,每次访问session都不一致

//session1.invalidate();

//服务器下载当前web应用

//session过期时间,即规定时间内没有访问session就失效,默认1800s,可以在apache根目录下web.xml文件中修改默认的时间,其单位是分钟

//out.println("过期时间:"+session1.getMaxInactiveInterval());

//设置过期时间4,其单位是秒

//session1.setMaxInactiveInterval(10);

//out.println("过期时间:"+session1.getMaxInactiveInterval());

%>

<%

%>

3.案例:把登录信息存储到session中

hello.jsp

session的基本信息:


SessionId:<%=session.getId() %>




isNew:<%=session.isNew() %>




getMaxInactiveInterval:<%=session.getMaxInactiveInterval() %>




CreateTime:<%=session.getCreationTime() %>




LastAccessTime:<%=session.getLastAccessedTime() %>




Hello:<%=request.getParameter("username") %>




<%

//把参数存到session中去

session.setAttribute("username", request.getParameter("username"));

%>

">重新登录

  

">注销

login.jsp

session的基本信息:




SessionId:<%=session.getId() %>




isNew:<%=session.isNew() %>




getMaxInactiveInterval:<%=session.getMaxInactiveInterval() %>




CreateTime:<%=session.getCreationTime() %>




LastAccessTime:<%=session.getLastAccessedTime() %>




<%

Object username = session.getAttribute("username");

username = username == null ? "" : username;

%>

" method="post">

username:

logout.jsp

session的基本信息:


SessionId:<%=session.getId() %>




isNew:<%=session.isNew() %>




getMaxInactiveInterval:<%=session.getMaxInactiveInterval() %>




CreateTime:<%=session.getCreationTime() %>




LastAccessTime:<%=session.getLastAccessedTime() %>




Bye:<%=session.getAttribute("username") %>




<%

//销毁session

session.invalidate();

%>

重新登录