前言:
此刻你们对“java设置cookie”大约比较着重,朋友们都需要学习一些“java设置cookie”的相关资讯。那么小编也在网上网罗了一些关于“java设置cookie””的相关知识,希望你们能喜欢,各位老铁们快快来学习一下吧!目录一、会话二、保存会话的两种技术1、代码:2、删除Cookie3、中文数据传递一、会话
会话:用户打开一个浏览器,点击了很多超链接,访问多个web资源,关闭浏览器,这个过程可以称之为会话。
有状态会话:一个同学来过教师,下次再来教室,我们会知道这个同学曾经来过,称之为有状态会话。
一个网站,怎么证明你访问过?
1、服务端给客户端一个信件,客户端下次访问服务端带上信件就可以了;cookie
2、服务器登记你来过,下次你来的时候我来匹配你;seesion
二、保存会话的两种技术
cookie
客户端技术(响应,请求)
session服务器技术,利用这个技术,可以保存用户的会话信息,我们可以把信息或者数据放在Session中!1、代码:
//保存用户上一次访问的时间public class Cookiedemo1 extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //服务器告诉你的时间,把这个时间封装成为一个信件,你下次带来,我就知道你来了 //解决中文乱码问题 req.setCharacterEncoding("utf-16"); resp.setCharacterEncoding("utf-16"); PrintWriter out = resp.getWriter(); //Cookie,服务器端从客户端获取 Cookie[] cookies = req.getCookies();//这里返回数组,说明Cookie可能存在多个 //判断Cookie是否存在 if(cookies!=null){ //如果存在 out.write("你上一次访问的时间是:"); for(int i=0;i<cookies.length;i++) { Cookie cookie = cookies[i]; //获取cookie中的名字 if (cookie.getName().equals("lastLoginTime")) { //cookie.getValue();是个字符串 long lastLoginTime = Long.parseLong(cookie.getValue()); Date date = new Date(lastLoginTime); out.write(date.toLocaleString()); } } }else{ out.write("这是你第一次访问本站"); } //服务器给客户端响应一个cookie Cookie cookie = new Cookie("lastLoginTime",System.currentTimeMillis()+""); resp.addCookie(cookie); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); }}
配置web.xml
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="; xmlns:xsi="; xsi:schemaLocation=" ; version="4.0" metadata-complete="true"> <servlet> <servlet-name>Cookiedemo1</servlet-name> <servlet-class>com.lv.servlet.Cookiedemo1</servlet-class> </servlet> <servlet-mapping> <servlet-name>Cookiedemo1</servlet-name> <url-pattern>/c1</url-pattern> </servlet-mapping></web-app>
代码分析:
2、删除Cookie不设置有效期,关闭浏览器,自动失效设置有效期为0
代码:
public class Cookiedemo2 extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //创建一个cookie。名字必须和要删除的名字一致 Cookie cookie = new Cookie("lastLoginTime", System.currentTimeMillis() + ""); //将cookie有效期设置为0 cookie.setMaxAge(0); resp.addCookie(cookie); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); }}
配置web.xml
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="; xmlns:xsi="; xsi:schemaLocation=" ; version="4.0" metadata-complete="true"> <servlet> <servlet-name>Cookiedemo1</servlet-name> <servlet-class>com.lv.servlet.Cookiedemo1</servlet-class> </servlet> <servlet-mapping> <servlet-name>Cookiedemo1</servlet-name> <url-pattern>/c1</url-pattern> </servlet-mapping> <servlet> <servlet-name>Cookiedemo2</servlet-name> <servlet-class>com.lv.servlet.Cookiedemo2</servlet-class> </servlet> <servlet-mapping> <servlet-name>Cookiedemo2</servlet-name> <url-pattern>/c2</url-pattern> </servlet-mapping></web-app>3、中文数据传递
public class Cookiedemo3 extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// req.setCharacterEncoding("utf-16");// resp.setCharacterEncoding("utf-16"); //Cookie,服务器端从客户端获取 Cookie[] cookies = req.getCookies();//这里返回数组,说明Cookie可能存在多个 PrintWriter out = resp.getWriter(); //判断Cookie是否存在 if(cookies!=null){ //如果存在 out.write("你上一次访问的时间是:"); for(int i=0;i<cookies.length;i++) { Cookie cookie = cookies[i]; //获取cookie中的名字 if (cookie.getName().equals("name")) { //解码 out.write(URLDecoder.decode(cookie.getValue(), "UTF-8")); } } }else{ out.write("这是你第一次访问本站"); } //编码 Cookie cookie = new Cookie("name", URLDecoder.decode("小虎","UTF-8")); resp.addCookie(cookie); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); }}结尾
感谢看到最后的朋友,都看到最后了,点个赞再走啊,如有不对之处还请多多指正。
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #java设置cookie