我是靠谱客的博主 默默大神,最近开发中收集的这篇文章主要介绍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("<h1>您好,欢迎来到本网站!</h1>");


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

        }}}

效果图:

点击刷新页面:

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("<h1>你上一次访问时间是:</h1>"); 

到此这篇关于JavaWeb会话技术详解与案例的文章就介绍到这了,更多相关JavaWeb 会话技术内容请搜索靠谱客以前的文章或继续浏览下面的相关文章希望大家以后多多支持靠谱客!

最后

以上就是默默大神为你收集整理的JavaWeb会话技术详解与案例的全部内容,希望文章能够帮你解决JavaWeb会话技术详解与案例所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(90)

评论列表共有 0 条评论

立即
投稿
返回
顶部