JavaWeb学习|Cookie

学习材料声明

所有知识点都来自互联网,进行总结和梳理,侵权必删。
引用来源:尚硅谷最新版JavaWeb全套教程,java web零基础入门完整版

在此之前,复习一下如何创建项目

首先创建正常的Java项目,之后选择add framework 选择增加web相关。(这样完成了需要的src文件夹和web文件夹(有了Web.xml文件))。
随后需要设置Tomcat服务器,在右上角!

一个功能需要:
html页面,通过action设置。

<form action="http://localhost:8089/13_cookie_war_exploded/loginServlet" method="get">用户名:<input type="text" name="username" value="${cookie.username.value}"><br>密码:<input type="password" name="password" ><br><input type="submit"value="登录">
</form>

servlet文件完成功能,并响应(需要再Web.xml进行配置)。

<servlet><servlet-name>LoginServlet</servlet-name><servlet-class>com.servlet.LoginServlet</servlet-class>
</servlet>
<servlet-mapping><servlet-name>LoginServlet</servlet-name><url-pattern>/loginServlet</url-pattern>
</servlet-mapping>

Cookie

1.Cookie是什么?

是服务器与浏览器之间交互的一个键值对对象。
涉及了如何创建Cookie,如何获取,如何修改,设置持续时间。
一个应用:免用户名登录。

2.操作

protected void testPath(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {Cookie cookie = new Cookie("path1", "path1");cookie.setPath(req.getContextPath() + "/abc");//通知客户端resp.addCookie(cookie);resp.getWriter().write("path1已创建");}
protected void life3600(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {Cookie cookie = new Cookie("life3600", "life3600");cookie.setMaxAge(60*60);//通知客户端resp.addCookie(cookie);
}
protected void deleteNow(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {Cookie cookie = CookieUtils.findCookie("key1", req.getCookies());if (cookie != null){cookie.setMaxAge(0);//通知客户端resp.addCookie(cookie);resp.getWriter().write("key1的Cookie已经被删除");}
}
protected void defaultLife(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {Cookie cookie = new Cookie("defaultLife", "defaultLife");cookie.setMaxAge(-1);//通知客户端resp.addCookie(cookie);
}
protected void updateCookie(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// 方案一// 重复覆盖
//        Cookie cookie = new Cookie("key1", "newvalue1");
//        resp.addCookie(cookie);
//        resp.getWriter().write("key1的Cookie值已经修改好了");
//        Cookie[] cookies = req.getCookies();//方案二 查找修改通知 cookie对值的要求很高,汉字和一些括号。如果需要的话,要求Base64编号。Cookie cookie = CookieUtils.findCookie("key1", req.getCookies());if (cookie != null){cookie.setValue("newnewvalue1");resp.addCookie(cookie);}}
protected void getCookie(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {Cookie[] cookies = req.getCookies();for (Cookie cookie : cookies){resp.getWriter().write("Cookie["+cookie.getName()+"="+cookie.getValue()+"]<br/>");}//如何获取想要的cookie 这个需要封装到UtilsCookie iWantCookie = CookieUtils.findCookie("key1", cookies);if (iWantCookie != null){resp.getWriter().write("找到cookie啦");}}
protected void createCookie(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//1 创建Cookie对象Cookie cookie = new Cookie("key1", "value1");//2 通知客户端保存Cookieresp.addCookie(cookie);resp.getWriter().write("Cookie创建成功");}

3.如何设置免用户登录。

设计思路来自尚硅谷视频:
在这里插入图片描述
相关servlet代码:

String username = req.getParameter("username");String password = req.getParameter("password");if ("wzg168".equals(username)&&"123456".equals(password)){//Cookie cookie = new Cookie("username", username);cookie.setMaxAge(60*60*24*7);resp.addCookie(cookie);System.out.println("登录成功");}else{//failSystem.out.println("登录失败");}

相关jsp交互页面代码。其实就是cookie.username.value起到了作用。

<form action="http://localhost:8089/13_cookie_war_exploded/loginServlet" method="get">用户名:<input type="text" name="username" value="${cookie.username.value}"><br>密码:<input type="password" name="password" ><br><input type="submit"value="登录">
</form>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/439870.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【MATLAB源码-第129期】基于matlab的16QAM盲均衡(CMA常数模+LMS最小均方)仿真,对比均衡前后的星座图。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 基于CMA&#xff08;常数模&#xff09; LMS&#xff08;最小均方&#xff09;算法的16QAM信号盲均衡是一种复杂的信号处理技术&#xff0c;旨在改进数字通信系统中信号的质量和可靠性。这一技术主要应用于高阶调制如16QAM&a…

idea激活教程(2020.1.4及以上版本)

首先点击试用版本&#xff0c;进入软件&#xff0c;再依次进行一下操作 一、在idea的Plugins配置中添加Z大的插件市场 上图中加载出来的插件是默认的&#xff0c;大家不用在意&#xff0c;直接点击“Manage Plugin Repositoryies…”打开配置弹窗 点击号&#xff0c;添加一行…

未来计算的革命:探索存算一体芯片的潜力与挑战

​ 前言 本文学习自&#xff1a;存算一体芯片深度产业报告——作者&#xff1a;量子位 报告链接&#xff1a;存算一体是啥新趋势&#xff1f;值得教授学者纷纷下海造芯 | 附报告下载 - 知乎 (zhihu.com)&#xff0c;侵删&#xff01; 存算一体技术概述 “存算一体”技术的…

Web开发8:前后端分离开发

在现代的 Web 开发中&#xff0c;前后端分离开发已经成为了一种常见的架构模式。它的优势在于前端和后端可以独立开发&#xff0c;互不干扰&#xff0c;同时也提供了更好的可扩展性和灵活性。本篇博客将介绍前后端分离开发的概念、优势以及如何实现。 什么是前后端分离开发&am…

通过Demo学WPF—数据绑定(一)✨

前言✨ 想学习WPF&#xff0c;但是看视频教程觉得太耗时间&#xff0c;直接看文档又觉得似懂非懂&#xff0c;因此想通过看Demo代码文档的方式进行学习。 准备✨ 微软官方其实提供了WPF的一些Demo&#xff0c;地址为&#xff1a;microsoft/WPF-Samples: Repository for WPF …

【lesson24】MySQL索引的理解

文章目录 建立测试表插入多条记录查看插入结果中断一下---为何IO交互要是 Page重谈page理解单个page理解多个page 页目录单页情况多页情况复盘一下InnoDB 在建立索引结构来管理数据的时候&#xff0c;其他数据结构为何不行&#xff1f;B vs B聚簇索引 VS 非聚簇索引 建立测试表…

网安文件包含漏洞

文件包含概念&#xff1a; 开发人员通常会把可重复使用的函数写到单个文件中&#xff0c;在使用某些函数时&#xff0c;直接调用此文件&#xff0c;而无需再次编写&#xff0c;这种调用文件的过程一般被称为包含。为了使代码更加灵活&#xff0c;通常会将被包含的文件设置为变…

PEI是聚醚酰亚胺(Polyetherimide)主要作用是什么?

聚醚酰亚胺&#xff08;Polyetherimide&#xff0c;PEI&#xff09;作为一种高性能的工程塑料&#xff0c;具有多种优异的性能&#xff0c;因此在不同领域中有广泛的应用。其主要作用包括&#xff1a; 1.结构性零部件制造&#xff1a; PEI因其高机械强度和刚性&#xff0c;常被…

沟通管理和相关方管理核心考点梳理

个人总结&#xff0c;仅供参考&#xff0c;欢迎加好友一起讨论 PMP - 沟通管理和相关方管理核心考点梳理 沟通管理和相关方&#xff08;干系人&#xff09;管理这两章放在一起进行梳理&#xff0c;这两章很多的考点很容易混淆&#xff0c;经常会纠结于一些题目&#xff0c;究竟…

Linux系列之查看cpu、内存、磁盘使用情况

查看磁盘空间 df命令用于显示磁盘分区上的可使用的磁盘空间。默认显示单位为KB。可以利用该命令来获取硬盘被占用了多少空间&#xff0c;目前还剩下多少空间等信息。使用df -h命令&#xff0c;加个-h参数是为了显示GB MB KB单位&#xff0c;这样更容易查看 Filesystem …

推荐5个我常用的软件,简单高效

​ 今天给大家推荐5个我自己也常用的软件&#xff0c;可以解决很多问题&#xff0c;给你的学习和办公带来巨大帮助。 1.快速启动——Keypirinha ​ Keypirinha是一款快速启动软件&#xff0c;可以让用户通过输入关键词来快速打开程序、文件、网页、搜索引擎等。Keypirinha支持…

[AG32VF407]国产MCU+FPGA Verilog编写控制2路gpio输出不同频率方波实验

视频讲解 [AG32VF407]国产MCUFPGA Verilog编写控制2路gpio输出不同频率方波实验 实验过程 根据原理图&#xff0c;选择两个pin脚作为输出 修改VE文件&#xff0c;clk选择PIN_OSC&#xff0c;使用内部晶振8Mhz&#xff0c;gpio使用PIN_51和52&#xff0c;pinout是数组 添加pll…