文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

JavaWeb会话技术怎么用

2023-06-25 16:07

关注

小编给大家分享一下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);        }        //    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会话技术怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯