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 会话技术内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • JavaWeb之会话技术案例详解

    会话技术     1. 会话:一次会话中包含多次请求和响应.            一次会话:浏览器第一次给服务器资源发送请求,会话建立,直到有一方断开为止     2. 功能:在一次会话的范围内的多次请求间,共享数据     3. 方式:           1. 客户端会话技术:Cookie           2. 服务器端会话技术:Session Cookie: 1. 概念:客户端会话技术,将数据保存到客户端 2. 快速入门:             1. 创建Cookie对象,绑定数据

  • Java Web会话技术Session的简单使用

    什么是Session Session技术是将信息保存在服务端,而客户端需要接收.记录和回送Session的ID,所以Session通常情况下是借助Cookie技术来传递ID给服务端的,服务端拿到session id之后查询内存中对应的记录. 一个客户端对应一个Session,而一个Session有多个Attribute,每一个Attribute有唯一的name. 编写代码证明提出的观点: protected void doGet(HttpServletRequest req, HttpServl

  • JavaWeb会话技术详解与案例

    1.什么是会话: 2.会话技术有哪些: 什么是Cookie? Cookie,有时也用其复数形式 Cookies.类型为"小型文本文件",是某些网站为了辨别用户身份,进行Session跟踪而储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息. 3.cookie学习案例: cookie:是数组,中每个元素有:名称和值, 可以通过名称找到名称对应的元素. 重要: Cookie[] cookies = req.getCookies(); //创建cookie对象

  • Servlet开发JavaWeb工程示例详解

    一.什么是Servlet? Servlet是在服务器上运行的小程序,也就是一个Java类,但比较特殊,不需要new,自动就可以运行.也有创建.垃圾回收和销毁过程.Servlet是JavaWeb的三大组件之一(Servlet.Filter.Listener),它属于动态资源.Servlet的作用是处理请求,服务器会把接收到的请求交给Servlet来处理,在Servlet中通常需要: 接收请求数据: 处理请求: 完成响应. 例如客户端发出登录请求,或者输出注册请求,这些请求都应该由Servlet来完

  • Java HttpClient技术详解

    目录 一.HttpClient 1.1. 前台系统访问后台接口的方式 1.2. 什么是HttpClient 1.3. HttpClient入门案例 1.3.1. 发起Get请求 1.3.2. 带参数的Get请求 1.3.3. 发起POST请求 1.3.4. 带参数POST请求 二.项目整合HttpClient-与SpringBoot整合 1.导入maven坐标 2.在项目中创建HttpClientConfig类–类似util 3.在application.properties添加如下配置: 4.

  • Java WebService技术详解

    目录 WebService WebService简介 WebService原理 JAVA WebService规范 (1)JAX-WS: (2)JAXM&SAAJ: (3)JAX-RS: WebService入门案例 服务端的实现 客户端的实现 WSDL 文档结构 阅读方式 SOAP SOAP结构 UDDI Webservice的客户端调用方式 一:生成客户端调用方式 二:service编程调用方式 三:HttpURLConnection调用方式 使用注解修改WSDL内容 WebService

  • java多线程编程技术详解和实例代码

     java多线程编程技术详解和实例代码 1.   Java和他的API都可以使用并发. 可以指定程序包含不同的执行线程,每个线程都具有自己的方法调用堆栈和程序计数器,使得线程在与其他线程并发地执行能够共享程序范围内的资源,比如共享内存,这种能力被称为多线程编程(multithreading),在核心的C和C++语言中并不具备这种能力,尽管他们影响了JAVA的设计. 2.   线程的生命周期 新线程的生命周期从"新生"状态开始.程序启动线程前,线程一直是"新生"状态:

  • Java反射技术详解及实例解析

    前言 相信很多人都知道反射可以说是Java中最强大的技术了,它可以做的事情太多太多,很多优秀的开源框架都是通过反射完成的,比如最初的很多注解框架,后来因为java反射影响性能,所以被运行时注解APT替代了,java反射有个开源框架jOOR相信很多人都用过,不过我们还是要学习反射的基础语法,这样才能自己写出优秀的框架,当然这里所讲的反射技术,是学习Android插件化技术.Hook技术等必不可少的! 一.基本反射技术   1.1 根据一个字符串得到一个类 getClass方法 String nam

  • Java Agent探针技术详解示例

    目录 什么是java agent? 使用示例 入门 进阶(一款接口mock数据小插件) 使用 什么是java agent? 在JVM中运行中,类是通过classLoader加载.class文件进行生成的.在类加载加载.class文件生成对应的类对象之前时,我们可以通过修改.class文件内容(就是字节码修改技术),达到修改类的目的.JDK提供了对字节码进行操作的一系列api,而使用这些api开发出的程序就可以称之为java agent. java agent能做什么? 不修改目标应用达到代码增强

  • OB系统变量Variables及ODC管理会话功能详解

    目录 参数和变量 Session variables vs Global variables 常用的OB系统变量 (Variables) ODC管理会话功能支持查看和修改会话属性 小结 参数和变量 Session variables vs Global variables • 会话变量:Session 级修改 (只对本会话生效).当客户端连接到数据库后,数据库会复制全局变量以自动生成会话变量.会话变量的修改只对当前会话生效. • set ob_trx_timeout = 200000000 •

  • Android banner详解用法案例

    Android----banner使用详解 昨天10.31 ,斗破苍穹的三年之约终于出来了,自己也等了很久很久,敬师长,敬家人,敬朋友,敬每一个前行路上正在奋战的自己,星光不问赶路人,时间不负有心人. 效果图: 添加依赖 implementation 'com.youth.banner:banner:2.1.0' 添加权限到你的 AndroidManifest.xml <!-- if you want to load images from the internet --> <uses-

  • VPN技术详解

    一.引言     虚拟专用网络可以实现不同网络的组件和资源之间的相互连接.虚拟专用网络能够利用Internet或其它公共互联网络的基础设施为用户创建隧道,并提供与专用网络一样的安全和功能保障. 740)this.width=740" border=undefined> (图1) 虚拟专用网络允许远程通讯方,销售人员或企业分支机构使用Internet等公共互联网络的路由基础设施以安全的方式与位于企业局域网端的企业服务器建立连接.虚拟专用网络对用户端透明,用户好象使用一条专用线路在客户计算机和

随机推荐