温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

JavaWeb会话技术怎么用

发布时间:2021-11-17 09:07:23 来源:亿速云 阅读:168 作者:小新 栏目:开发技术

小编给大家分享一下JavaWeb会话技术怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

1.什么是会话:

JavaWeb会话技术怎么用

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 = 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);         } /*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");         //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;         }}}

效果图:

JavaWeb会话技术怎么用

点击刷新页面:

JavaWeb会话技术怎么用

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);

JavaWeb会话技术怎么用

还有:
可以在 resp.getWriter().println:放html标签
需要
resp.setContentType(“text/html;charset=UTF-8”);//来解析

  resp.setContentType("text/html;charset=UTF-8");    resp.getWriter().println("<h2>你上一次访问时间是:</h2>");

以上是“JavaWeb会话技术怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI