JSP(5)—Session的创建以及简单使用
2017-10-31 22:12
393 查看
页面:
1.案例
2.案例
3.案例:把登录信息存储到session中
hello.jsp
login.jsp
logout.jsp
1.案例
<body> <!-- 把书的信息以Cookie方式传回给浏览器,删除一个Cookie 1.确定要被删除的Cookie是以ATGUIGU_BOOK_开头的cookie,数量大于或等于5,且若从Books.jsp页面中 传入的book不在ATGUIGU_BOOK_的cookie中则删除较早的那个cookie(ATGUIGU_BOOK_数组的第一个Cookie) 若在其中,则删除该Cookie 2.把从books.jsp传入的book作为一个Cookie返回 --> <h4>Book Detail Page</h4> Book:<%=request.getParameter("book") %> <br><br> <a href="books.jsp">Return</a> <% //步骤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<Cookie> bookCookies = new ArrayList<Cookie>(); //步骤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); %> </body>
2.案例
<body> <!-- page指令中session属性设置为false,表示页面禁用session隐含变量,但是可以使用其他的显式的HttpSession对象 --> <% //无法使用Session对象,session.getid(); //page指令中session的值为false,所以不能使用session隐含对象,但是可以使用显式的session对象 out.println("session:"+session.getId()+"<br>"); %> <!-- 页面禁用session,又没有和其他JSP页面相关联,直接访问该页面,则session为空--> <!-- 页面禁用session,但是有和其他JSP页面相关联,先访问该相关联页面,在访问该页面,则session为相关联页面的session --> <% //HttpSession session = request.getSession(false); //out.println(session); %> <!-- 页面不禁用session,request.getSession(true)等同于request.getSession() --> <% HttpSession session1 = request.getSession(false); //HttpSession session2 = request.getSession(); out.println("session1:"+session1.getId()+"<br>"); //out.println("session2:"+session2.getId()+"<br>"); %> <!-- 销毁session对象方法,session cookie存在与浏览器内存中,其随着浏览器的关闭而消失 --> <% //立即失效,每次访问session都不一致 //session1.invalidate(); //服务器下载当前web应用 //session过期时间,即规定时间内没有访问session就失效,默认1800s,可以在apache根目录下web.xml文件中修改默认的时间,其单位是分钟 //out.println("过期时间:"+session1.getMaxInactiveInterval()); //设置过期时间4,其单位是秒 //session1.setMaxInactiveInterval(10); //out.println("过期时间:"+session1.getMaxInactiveInterval()); %> <!-- 持久化session --> <% %> </body>
3.案例:把登录信息存储到session中
hello.jsp
<body> session的基本信息: <br> SessionId:<%=session.getId() %> <br><br><br> isNew:<%=session.isNew() %> <br><br><br> getMaxInactiveInterval:<%=session.getMaxInactiveInterval() %> <br><br><br> CreateTime:<%=session.getCreationTime() %> <br><br><br> LastAccessTime:<%=session.getLastAccessedTime() %> <br><br><br> Hello:<%=request.getParameter("username") %> <br><br><br> <% //把参数存到session中去 session.setAttribute("username", request.getParameter("username")); %> <a href="<%=response.encodeUrl("login.jsp") %>">重新登录</a> <a href="<%=response.encodeUrl("logout.jsp") %>">注销</a> </body>
login.jsp
<body> session的基本信息: <br><br><br> SessionId:<%=session.getId() %> <br><br><br> isNew:<%=session.isNew() %> <br><br><br> getMaxInactiveInterval:<%=session.getMaxInactiveInterval() %> <br><br><br> CreateTime:<%=session.getCreationTime() %> <br><br><br> LastAccessTime:<%=session.getLastAccessedTime() %> <br><br><br> <% Object username = session.getAttribute("username"); username = username == null ? "" : username; %> <!-- 浏览器禁用Cookie时仍然能够把session id传递回服务器,所使用的技术:URL重写 --> <form action="<%=response.encodeUrl("hello.jsp") %>" method="post"> username:<input type="text" name="username" value="<%=username %>"/> <input type="submit" value="Submit"> </form> </body>
logout.jsp
<body> session的基本信息: <br> SessionId:<%=session.getId() %> <br><br><br> isNew:<%=session.isNew() %> <br><br><br> getMaxInactiveInterval:<%=session.getMaxInactiveInterval() %> <br><br><br> CreateTime:<%=session.getCreationTime() %> <br><br><br> LastAccessTime:<%=session.getLastAccessedTime() %> <br><br><br> Bye:<%=session.getAttribute("username") %> <br><br><br> <% //销毁session session.invalidate(); %> <a href="login.jsp">重新登录</a> </body>
相关文章推荐
- JAVAWEB开发之Session的追踪创建和销毁、JSP详解(指令,标签,内置对象,动作即转发和包含)、JavaBean及内省技术以及EL表达式获取内容的使用
- JSP简单练习-使用JDOM创建xml文件
- 索引 视图 存储过程和函数 简单理解 以及使用创建方法
- NSTimer的两种创建方式以及跟RunLoop的简单结合使用
- 索引 视图 存储过程和函数 简单理解 以及使用创建方法
- JSP基本功 pageContext对象page,request,session,application四个域对象的使用及区别JSP运行原理和九大隐式对象及下载文件、访问次数的代码总结出el表达式简单
- 使用 MySQL 数据库创建简单的 JSP 应用程序(2)
- 索引 视图 存储过程和函数 简单理解 以及使用创建方法
- 索引 视图 存储过程和函数 简单理解 以及使用创建方法
- 索引 视图 存储过程和函数 简单理解 以及使用创建方法
- 索引 视图 存储过程和函数 简单理解 以及使用创建方法
- 索引 视图 存储过程和函数 简单理解 以及使用创建方法
- JSP简单登录模块使用Session
- 索引 视图 存储过程和函数 简单理解 以及使用创建方法
- 索引 视图 存储过程和函数 简单理解 以及使用创建方法
- 关于jsp中session,application的简单介绍以及用法
- jsp基础之--使用Session完成简单的登陆操作
- Yii 使用CActiveForm创建表单,以及htmlOptions简单说明
- 索引 视图 存储过程和函数 简单理解 以及使用创建方法
- JSP简单练习-使用JDOM创建xml文件