JavaWeb会话技术详解与案例
1.什么是会话:
文章图片
2.会话技术有哪些:
【JavaWeb会话技术详解与案例】
文章图片
什么是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 = https://www.it610.com/article/cookie.getValue();
resp.getWriter().println(value);
//value:获取cookie(这个)的值,打印在浏览器上面
Cookiec = 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 {@Overridepublic void init() throws ServletException {super.init(); this.getServletContext().setAttribute("name","张三"); }@Overrideprotected 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("您好,欢迎来到本网站!"); } else {resp.setCharacterEncoding("utf-8"); resp.setContentType("text/htm/UTF-8"); resp.getWriter().println("你上一次访问时间是:"); //出现了中文错误cookie = CookieUtils.findCookie(cookies, "lasttime"); String value = https://www.it610.com/article/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"); // 空格不行Cookiec = new Cookie("lasttime", wer); resp.addCookie(c); }/*resp.getWriter().println("helloworld"); resp.setStatus(302); //resp.setHeader("Location","/demo16_war/helloo"); resp.setHeader("Refresh","5,url=/demo16_war/helloo"); *///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"); //Stringpassword=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(); }}@Overrideprotected 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="我是谁"; Cookiec = 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("你上一次访问时间是:");
到此这篇关于JavaWeb会话技术详解与案例的文章就介绍到这了,更多相关JavaWeb 会话技术内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
推荐阅读
- GIS跨界融合赋能多领域技术升级,江淮大地新应用成果喜人
- 深入浅出谈一下有关分布式消息技术(Kafka)
- javaweb|基于Servlet+jsp+mysql开发javaWeb学生成绩管理系统
- 2月2日日课总结(基因技术)
- NAT(网络地址转换技术)
- 云原生微服务技术趋势解读
- 国家重点支持的高新技术领域(一)
- 数据技术|一文了解Gauss数据库(开发历程、OLTP&OLAP特点、行式&列式存储,及与Oracle和AWS对比)
- Python爬虫技术要学到什么程度才可以找到工作()
- iOS开发技术之美—iOS入门技术的基础学习