JavaEE-cookie和session

这篇具有很好参考价值的文章主要介绍了JavaEE-cookie和session。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本部分内容包括
cookie基本概念,sendcookies和getcookies代码;
session基本概念,session实现登陆界面;


JavaEE-cookie和session,Java-EE,java-ee,hive,java
JavaEE-cookie和session,Java-EE,java-ee,hive,java




JavaEE-cookie和session,Java-EE,java-ee,hive,java
JavaEE-cookie和session,Java-EE,java-ee,hive,java
JavaEE-cookie和session,Java-EE,java-ee,hive,java
JavaEE-cookie和session,Java-EE,java-ee,hive,java
上述过程中涉及的代码如下:
1

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;


@WebServlet("/sendCookie")
public class sendCookie extends HttpServlet {
    @Override
    //把一个自定义的cookie数据返回到浏览器这里
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        Cookie cookie=new Cookie("date","2023-10-21");
        resp.addCookie(cookie);
        Cookie cookie1=new Cookie("time","21:44");
        resp.addCookie(cookie1);
        resp.getWriter().write("okkk");
    }
}

2

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/getCookie")
public class getCookie extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //获取这次请求中的cookie
        Cookie[] cookies=req.getCookies();
        for (Cookie cookie:
             cookies) {
            System.out.println(cookie.getName()+" : "+cookie.getValue());
        }
        resp.getWriter().write("okkkkkkkkkk");
    }
}




session部分
JavaEE-cookie和session,Java-EE,java-ee,hive,java
JavaEE-cookie和session,Java-EE,java-ee,hive,java
JavaEE-cookie和session,Java-EE,java-ee,hive,javaJavaEE-cookie和session,Java-EE,java-ee,hive,java




JavaEE-cookie和session,Java-EE,java-ee,hive,java

JavaEE-cookie和session,Java-EE,java-ee,hive,java

JavaEE-cookie和session,Java-EE,java-ee,hive,java


上述登录过程的代码如下:
login.java

package login;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;


@WebServlet("/login")
public class LoginServlet extends HttpServlet {
    //做dopost动作
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //1.先从请求中拿到用户名和密码
        //为了保证参数能狗支持中文,这里将编码格式设置为utf8
        req.setCharacterEncoding("utf8");
        String username=req.getParameter("username");
        String password=req.getParameter("password");
        //2.验证用户名和密码是否正确
        //先验证格式  键和值都不能为空
        if(username==null || password==null || username.equals("") || username.equals("") ){
            resp.setContentType("test/html;charset=utf8");
            resp.getWriter().write("用户名或者密码不能为空");
            return;
        }
        //这里假设只有一个用户 验证用户账号和密码
        if(!username.equals("zhangsan")){
            resp.setContentType("text/html;charset=utf8");
            resp.getWriter().write("用户名或者密码有误");
            return;
        }
        if(!password.equals("123456")){
            resp.setContentType("text/html;charset=utf8");
            resp.getWriter().write("用户名或者密码有误");
            return;
        }
        // 3. 用户名和密码验证 ok, 接下来就创建一个会话.
        //    当前用户处于未登录的状态, 此时请求的 cookie 中没有 sessionId
        //    此处的 getSession 是无法从服务器的 哈希表 中找到该 session 对象的.
        //    由于此处把参数设为 true 了, 所以就允许 getSession 在查询不到的时候, 创建新的 session 对象和 sessionId
        //    并且会自动的把这个 sessionId 和 session 对象存储的 哈希表 中.
        //    同时返回这个 session 对象, 并且在接下来的响应中会自动把这个 sessionId 返回给客户端浏览器.
        HttpSession session=req.getSession(true);
        //接下来就可以把刚建立好的session对象存储自定义数据,我们在这个对象中存储用户的身份信息
        session.setAttribute("username",username);
        // 4. 登录成功之后, 自动跳转到 主页
        // 重定向
        resp.sendRedirect("index");
    }
}

index.java

package login;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: Home-pc
 * Date: 2023-10-27
 * Time: 14:08
 */
//生成动态的主页面,从服务器获得信息
@WebServlet("/index")
public class IndexServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //此处查看用户是否已经登录,即Session中是否有username
        //先获得所有的session,在去这些session中找username
        //禁止创建会话
        HttpSession session=req.getSession(false);
        if(session==null){
            resp.setContentType("text/html;charset=utf8");
            resp.getWriter().write("用户未登录");
            return;
        }
        String username=(String) session.getAttribute("username");
        // 虽然有会话对象, 但是里面没有必要的属性, 也认为是登录状态异常.
        if(username==null){
            resp.setContentType("text/html;charset=utf8");
            resp.getWriter().write("用户未登录");
            return;
        }
        //如果上述ok,则生成一个动态的画面
        resp.setContentType("text/html;charset=utf8");
        resp.getWriter().write("欢迎 " + username);
    }
}

运行结果如下:
JavaEE-cookie和session,Java-EE,java-ee,hive,java文章来源地址https://www.toymoban.com/news/detail-727984.html




到了这里,关于JavaEE-cookie和session的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • session和cookie详解

    访问网站后在本地存储的相关网站信息 ,是服务器在本地机器上存储的文本,并随着每一个请求发送到同一服务器上,以便某些网站为了辨别用户身份,由用户客户端计算机暂时或永久保存的信息,是客户端保存状态的一种方式。 1.web程序是使用HTTP协议传输的,而HTTP协议是

    2024年02月05日
    浏览(46)
  • Cookie和Session

    HTTP协议自身是属于无状态的协议,意思就是默认情况下HTTP协议的客户端和服务器的上一次通信和下一次通信之间是没有关系的,在实际开发中我们需要知道请求之间的关联关系,例如我们登陆过一个网站,当再次登陆该网站时,服务器就知道已经登陆过该网站了 回顾关于cookie的几

    2024年02月01日
    浏览(39)
  • cookie+session和token

    总结说在前面: session:起源于服务端,保存在服务端(服务器或者数据库),通过cookie传递给用户,用户每一次发送HTTP请求的时候,通过验证cookie中的session-id来验证用户身份。 jwt(json web token):起源于服务端,保存在浏览器(cookie或者storage),和session一样,用户每一次发

    2024年02月19日
    浏览(43)
  • Cookie/Session 的机制与安全

    Cookie 和 Session 是为了在无状态的HTTP协议之上维护会话状态,使得服务器可以知道当前是和哪个客户在打交道。本文来详细讨论Cookie和Session的实现机制,以及其中涉及的安全问题。 因为 HTTP 协议是无状态的,即每次用户请求到达服务器时,HTTP 服务器并不知道这个用户是谁、

    2023年04月20日
    浏览(36)
  • 【Cookie和Session的那些事儿】

    🌠作者:@TheMythWS. 🎇座右铭:不走心的努力都是在敷衍自己,让自己所做的选择,熠熠发光。 目录 认识Cookie和Session Cookie Cookie对象的特点 Cookie对象的创建 Cookie中数据的获取  Cookie不支持中文解决方案  Cookie持久化和状态Cookie  Cookie跨域问题 Cookie对象总结  Session HttpSessi

    2024年02月10日
    浏览(37)
  • session、cookie、webstorage的区别

    Cookie实际上是一小段的文本信息,是服务器发送到用户浏览器并保存在本地的一小块数据。客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie。客户端会把Cookie保存起来。当浏览器下次向同一服务器再发起请求时,浏览器把请求

    2024年02月10日
    浏览(45)
  • Javaweb | 状态管理:Session、Cookie

    💗wei_shuo的个人主页 💫wei_shuo的学习社区 🌐Hello World ! 问题引入 HTTP协议是无转态的,不能保存提交的信息 如果用户发来一个新的请求,服务器无法知道它是否与上次的请求联系 对于那些需要多次提交数据才能完成的web操作,比如登录,就难以完成 概念 将浏览器与web服务

    2024年02月05日
    浏览(49)
  • session、cookie、token的区别?

    今天就来理一理session、cookie、token这三者之间的关系! 我们都知道 HTTP 协议是无状态的,所谓的无状态就是客户端每次想要与服务端通信,都必须重新与服务端链接,意味着请求一次客户端和服务端就连接一次,下一次请求与上一次请求是没有关系的。 这种无状态的方式就

    2023年04月12日
    浏览(43)
  • django的cookie和session

    Cookie 的原理和实现: 原理: Cookie 是存储在用户浏览器中的小段数据,用于在客户端和服务器之间传递信息。当用户访问网站时,服务器可以在响应头中设置一个或多个 Cookie,然后浏览器会将这些 Cookie 存储,并在以后的请求中将它们发送回服务器。Cookie 可以包含各种数据

    2024年02月09日
    浏览(47)
  • Session与Cookie的区别(三)

    让我们先从比喻回到网络世界里,HTTP 是无状态的,所以每一个 Request 都是不相关的,就像是对小明来说每一位客人都是新的客人一样,他根本不知道谁是谁。 既然你没办法把他们关联,就代表状态这件事情也不存在。 把左边换成顾客,右边换成小明也依然成立。多一个得是

    2024年02月14日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包