java--Cookie应用
来源:互联网 发布:威海手机数据恢复公司 编辑:程序博客网 时间:2024/05/29 02:17
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>Cookie/Session演示</title> </head> <body> <h2>Cookie/Session演示</h2> <h3>使用Cookie技术实现用户上次登录时间</h3> <form action="<%=request.getContextPath() %>/servlet/loginServlet" method="post"> 姓名:<input type="text" name="name"/><br/> 密码:<input type="password" name="pwd"/><br/> <input type="submit" value="提交"/> </form> <font color="red" size="7"></font> <h3>用Cookie记录最近访问过的信息</h3> <a href="jsps/show.jsp">图片浏览</a> </body></html>
用cookie记录上次访问的时间
package cn.hncu.servlet;import java.io.IOException;import java.io.PrintWriter;import java.text.SimpleDateFormat;import java.util.Date;import javax.servlet.ServletException;import javax.servlet.http.Cookie;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class LoginServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); PrintWriter out = response.getWriter(); out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">"); out.println("<HTML>"); out.println(" <HEAD><TITLE>回显登录时间</TITLE></HEAD>"); out.println(" <BODY>"); String name=request.getParameter("name"); String pwd=request.getParameter("pwd"); System.out.println("调用后台实现正常登陆功能:name:"+name+",pwd:"+pwd); //实现显示用户上次登陆时间的功能 String showTime=func(request,response); out.println(name+",您好,"+showTime); out.println(" </BODY>"); out.println("</HTML>"); out.flush(); out.close(); } //模块:实现显示用户上次登录的功能 private String func(HttpServletRequest request, HttpServletResponse response) { //所获客户端的所有cookie Cookie cs[]=request.getCookies(); SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String showTime="您这是第一次登录..."; if (cs!=null) { for (Cookie c : cs) { if(c.getName().equals("loginTime")){ String tm=c.getValue(); long t=Long.parseLong(tm); Date d=new Date(t); String time=sdf.format(d); showTime="您上次的登录时间为:"+time; System.out.println("上次登录时间:"+time); break; } } } //不管之前是否已经存在该cookie,都要重新添加一次,因为:若没有则要添加新的,若已有则要更新旧的(把新的登录时间记录进去) //添加一个新的 或 修改旧的 用于记录当前登录时间的cookie---loginTime Cookie coo=new Cookie("loginTime", ""+new Date().getTime()); coo.setMaxAge(60*60*24*30);//秒为单位 一月的有效期 //'/'==request.getContextPath()设置当前整个应用有效 coo.setPath("/");//一般设在项目根目录,这样项目内的所有servlet都可以访问,但其他项目不可以 response.addCookie(coo);//添加即是写到客户端 return showTime; }}
用Cookie记录最近访问过的信息
需求:要求记录用户访问过的图片信息。
分析:
当用户点击一张图片时,通过Servlet向他显示图片。用户必须将要查看的图片ID或名称传到Serlvet。
在Serlvet中查询有没有用户查看过图片的Cookie信息,如果没有就创建一个新的,如果有就将本次查看的图片放到Cookie中。
在需要的页面上显示用户最近的访问记录。
实现:
Cookie c = new Cookie(“images”,img);
jsps/show.jsp页面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>图片浏览</title> </head> <body> <h4>最近浏览</h4> <!-- 把ShowServlet记录到cookie中的浏览记录读取出来,并显示相应的图片 --> <% Cookie cs[]=request.getCookies(); String images=null; if(cs!=null){ for(Cookie c:cs){ if(c.getName().equals("images")){ images=c.getValue(); break; } } } if(images!=null){ String imgs[]=images.split(","); for(String img:imgs){ %> <img width="100" height="100" src="<%=request.getContextPath()%>/imgs/<%=img%>"/> <% } } %> <h1>图片浏览</h1> <a href="<%=request.getContextPath()%>/servlet/show?img=1.jpg"> <img width="100" height="100" src="<%=request.getContextPath()%>/imgs/1.jpg"/></a> <a href="<%=request.getContextPath()%>/servlet/show?img=2.jpg"> <img width="100" height="100" src="<%=request.getContextPath()%>/imgs/2.jpg"/></a> <a href="<%=request.getContextPath()%>/servlet/show?img=3.jpg"> <img width="100" height="100" src="<%=request.getContextPath()%>/imgs/3.jpg"/></a> <a href="<%=request.getContextPath()%>/servlet/show?img=4.jpg"> <img width="100" height="100" src="<%=request.getContextPath()%>/imgs/4.jpg"/></a> <a href="<%=request.getContextPath()%>/servlet/show?img=5.jpg"> <img width="100" height="100" src="<%=request.getContextPath()%>/imgs/5.jpg"/></a> <a href="<%=request.getContextPath()%>/servlet/show?img=6.jpg"> <img width="100" height="100" src="<%=request.getContextPath()%>/imgs/6.jpg"/></a> <a href="<%=request.getContextPath()%>/servlet/show?img=7.jpg"> <img width="100" height="100" src="<%=request.getContextPath()%>/imgs/7.jpg"/></a> <a href="<%=request.getContextPath()%>/servlet/show?img=8.jpg"> <img width="100" height="100" src="<%=request.getContextPath()%>/imgs/8.jpg"/></a> <a href="<%=request.getContextPath()%>/servlet/show?img=9.jpg"> <img width="100" height="100" src="<%=request.getContextPath()%>/imgs/9.jpg"/></a> <a href="<%=request.getContextPath()%>/servlet/show?img=10.jpg"> <img width="100" height="100" src="<%=request.getContextPath()%>/imgs/10.jpg"/></a> <a href="<%=request.getContextPath()%>/servlet/show?img=11.jpg"> <img width="100" height="100" src="<%=request.getContextPath()%>/imgs/11.jpg"/></a> </body></html>
package cn.hncu.servlet;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.Cookie;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class ShowServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); PrintWriter out = response.getWriter(); out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">"); out.println("<HTML>"); out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>"); out.println(" <BODY>"); out.println("<a href='"+request.getContextPath()+"/jsps/show.jsp'>返回</a><br/>"); String img=request.getParameter("img"); String html="<img src='"+request.getContextPath()+"/imgs/"+img+"'/>"; out.println(html); //显示最近浏览的图片 //把浏览信息记录在cookie("images",imgs)中 //imgs="1.jpg,2.jpg"; Cookie cs[]=request.getCookies(); boolean boo=false; if(cs!=null){ for(Cookie c:cs){ if(c.getName().equals("images")){//以前浏览的 String imgs=c.getValue(); //如果记录中已经存在该当前图片信息(之前浏览的)清除 if (imgs.indexOf(img)>=0) { imgs = imgs.replace(img, ""); if (imgs.indexOf(",") == 0) {//开始处有一个多余“,”号的情况 imgs = imgs.substring(1); }else if (imgs.lastIndexOf(",") == imgs.length() - 1) {//最后处存在一个多余“,”号的情况 imgs = imgs.substring(0, imgs.length() - 1); } else {//中间处有一个多余“,”号的情况 imgs.replace(",,", ","); } } imgs=img+","+imgs;//更新浏览记录--把这次浏览的图片加到最前面 //控制只保存最近浏览的3个 if(imgs.split(",").length>3){ imgs=imgs.substring(0,imgs.lastIndexOf(",")); } //如果记录中已存在该当前图片信息 c.setValue(imgs);//把更新浏的记录保存到c中 c.setMaxAge(60*60*24*31); c.setPath("/"); response.addCookie(c); boo=true; break; } } } if(!boo){ Cookie c=new Cookie("images", img); c.setMaxAge(60*60*24*31); c.setPath("/"); response.addCookie(c); } out.println(" </BODY>"); out.println("</HTML>"); out.flush(); out.close(); }}
配置文件
<?xml version="1.0" encoding="UTF-8"?><web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <display-name></display-name> <servlet> <servlet-name>LoginServlet</servlet-name> <servlet-class>cn.hncu.servlet.LoginServlet</servlet-class> </servlet> <servlet> <servlet-name>ShowServlet</servlet-name> <servlet-class>cn.hncu.servlet.ShowServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>LoginServlet</servlet-name> <url-pattern>/servlet/loginServlet</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>ShowServlet</servlet-name> <url-pattern>/servlet/show</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list></web-app>
0 0
- java--Cookie应用
- Java应用技巧:Cookie 的操作详解
- java--头部地市切换--cookie的应用
- Cookie详解与应用(java,js)
- [Java]Session,Cookie知识与应用
- java之 Cookie与Session小应用
- cookie应用
- cookie应用
- cookie技术在Java ME平台的应用与实现
- Java应用技巧:对于 Cookie 的操作详解
- Java应用技巧:对于 Cookie 的操作详解
- cookie技术在Java ME平台的应用与实现
- Java应用技巧:对于 Cookie 的操作详解
- cookie技术在Java ME平台的应用与实现
- java cookie
- java cookie
- Java cookie
- java Cookie
- 今夜月色真美
- 异常过滤器
- 51NOD 1402 最大值
- 文章标题
- Test 作业与安利
- java--Cookie应用
- Hdu4554 叛逆的小明
- 【SQL】按字段分组查询符合条件记录的方法
- opencv3学习笔记(一)——opencv入门
- KMP模版 【KMP】
- 【51单片机学习过程记录】9 中断之定时计数器0的使用2
- Hdu 5150 Sum Sum Sum
- 解决场景加载慢的一种方法
- 由翻转字符窜再次理解递归