小编给大家分享一下JavaWeb会话技术怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
1.什么是会话:
2.会话技术有哪些:
什么是Cookie?
Cookie,有时也用其复数形式 Cookies。类型为“小型文本文件”,是某些网站为了辨别用户身份,进行Session跟踪而储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息。
3.cookie学习案例:
cookie:是数组,中每个元素有:名称和值,
可以通过名称找到名称对应的元素。
重要:
Cookie[] cookies = req.getCookies(); //创建cookie对象,获得浏览器所有的cookie数组 Cookie cookie = CookieUtils.findCookie(cookies,"lasttime");//通过:cookies:一个名称“lasttime”,找到数组里面对应的cookies,返回这个cookie:值
String value = cookie.getValue();
resp.getWriter().println(value);
//value:获取cookie(这个)的值,
打印在浏览器上面
Cookie c = new Cookie("lasttime", wer); //创建一个cookie, 名称为:lasttime,值为:wer变量对应的值 resp.addCookie(c); //在浏览器添加:增加这个名称的cookie值, 可以
创建:HelloServlet4 extends HttpServlet
这个类
package com.example.demo16;import javax.servlet.ServletException;import javax.servlet.http.Cookie;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;import java.net.URLEncoder;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;public class HelloServlet4 extends HttpServlet { @Override public void init() throws ServletException { super.init(); this.getServletContext().setAttribute("name","张三"); } @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //super.doGet(req, resp); Cookie[] cookies = req.getCookies(); Cookie cookie = CookieUtils.findCookie(cookies,"lasttime"); System.out.println(cookie); if (cookie==null) { resp.setCharacterEncoding("utf-8"); resp.setContentType("text/html;charset=UTF-8"); resp.getWriter().println("<h2>您好,欢迎来到本网站!</h2>"); } else {resp.setCharacterEncoding("utf-8"); resp.setContentType("text/htm/UTF-8"); resp.getWriter().println("你上一次访问时间是:"); //出现了中文错误 cookie = CookieUtils.findCookie(cookies, "lasttime"); String value = cookie.getValue(); resp.getWriter().println(value); Date d = new Date(); //变化的 SimpleDateFormat sc=new SimpleDateFormat("yyyy-MM-dd-HH:mm:ss"); String wer=sc.format(d); //字符串 System.out.println(wer); //其实就是要设置:时间,时间值为java, 变化的时间 // Cookie c = new Cookie("lasttime","11111"); 这个可以显示 // Cookie c = new Cookie("lasttime","1-1-1-1-1"); // Cookie c = new Cookie("lasttime","2021-11-14");//2021-11-14 20:14不能反映,中文也不能 // Cookie c = new Cookie("lasttime","2021:11:14");// 空格不行 Cookie c = new Cookie("lasttime", wer); resp.addCookie(c); } // String name= (String) this.getServletContext().getAttribute("name"); // System.out.println(name);//text();text(); } protected void text() throws IOException { //Properties properties=new Properties();//创建文件对象 //InputStream is=this.getServletContext().getResourceAsStream("WEB-INF/dp.properties");//这里的路径, // properties.load(is);//String driverClassName=properties.getProperty("driverClassName"); // String url=properties.getProperty("url"); //String password=properties.getProperty("password"); // String usernane=properties.getProperty("username"); // System.out.println(driverClassName);//System.out.println(url);//System.out.println(password);//System.out.println(usernane); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); try { Date d = sdf.parse(toString()); System.out.println(d); } catch (ParseException e) { e.printStackTrace(); } } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { super.doPost(req, resp); }}
创建CookieUtils类:
package com.example.demo16;import javax.servlet.http.Cookie;public class CookieUtils { public static Cookie findCookie(Cookie[] cookies, String name){ if(cookies==null){ return null; }else { for(Cookie cookie:cookies){if(name.equals(cookie.getName())) { //找到相等的name名称 return cookie;} } return null; }}}
效果图:
点击刷新页面:
4. 使用cookie注意出现的问题:
Cookie c = new Cookie(“lasttime”,“2021 11 14”);
// 空格不行,
返回:乱码
如果:cookievalue值为:中文,就要设置:
resp.setCharacterEncoding(“utf-8”);
响应设置为:utf-8,解决中文乱码
下面:
String werr="我是谁"; Cookie c = new Cookie("lasttime", werr); resp.addCookie(c);
还有:
可以在 resp.getWriter().println
:放html标签
需要resp.setContentType(“text/html;charset=UTF-8”);
//来解析
resp.setContentType("text/html;charset=UTF-8"); resp.getWriter().println("<h2>你上一次访问时间是:</h2>");
以上是“JavaWeb会话技术怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!