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.mzph.cn/news/655083.shtml

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

相关文章

C#学习笔记-反射

前言 反射是.NET中的重要机制&#xff0c;通过反射可以得到*.exe或*.dll等程序集内部的接口、类、方法、字段、属性、特性等信息&#xff0c;还可以动态创建出类型实例并执行其中的方法。 反射的功能很强大&#xff0c;任何复杂抽象的分层架构或者复杂的设计模式均是建立在这些…

任务修复实例(1)

实例1 任务名&#xff1a;增强防御&#xff08;quest_template.id 8490&#xff09; 涉及的两个数据表分别为 smart_script 和 creature_summon_groups smart_script Reactstate 取值参考源码 UnitDefines.h 的 ReactStates 定义&#xff0c;其中&#xff1a;0为被动&#…

低导通电阻、汽车级STD20NF06LAG,STO47N60M6、STO33N60M6、STO36N60M6 600V MDmesh™ M6 功率MOSFET

1、STD20NF06LAG 汽车级N沟道60V、32 mOhm典型值、24 A STripFET II功率MOSFET STripFET VI™功率MOSFET是采用ST专有STripFET™技术和新型栅极结构的增强模式MOSFET。该款受益于STripFET™技术的功率MOSFET采用沟槽技术&#xff0c;可实现高效率和低RDS(on) &#xff0c;满足…

SparkSql---用户自定义函数UDFUDAF

文章目录 1.UDF2.UDAF2.1 UDF函数实现原理2.2需求:计算用户平均年龄2.2.1 使用RDD实现2.2.2 使用UDAF弱类型实现2.2.3 使用UDAF强类型实现 1.UDF 用户可以通过 spark.udf 功能添加自定义函数&#xff0c;实现自定义功能。 如&#xff1a;实现需求在用户name前加上"Name:…

P8655 [蓝桥杯 2017 国 B] 发现环

好水啊&#xff0c;那我来水一篇题解。 题目就是要你在树上找环。那么我们想&#xff0c;怎么知道出现了环&#xff1f; 首先明确一点&#xff0c;在一棵树上&#xff0c;任意两点有且只有一条路径使它们相连。所以当我们发现原本就相连的点又要再连一次就知道出现了环。 是…

83、评估权值预加载带来的性能提升

上两节介绍的权值预加载技术&#xff0c;在很多业务中是真实存在的。 只不过限于本小册内容以及大部分同学硬件设备的局限&#xff0c;这里无法通过真正的推理框架(比如 tvm, pytorch) GPU 来实现底层细节&#xff0c;这些推理框架中一般会将类似的优化技术封装起来。 作为 …

APPium简介及安装

1 APPium简介 1. 什么是APPium&#xff1f; APPium是一个开源测试自动化框架&#xff0c;适用于原生、混合或移动Web应用程序的自动化测试工具。 APPium使用WebDriver协议驱动iOS、Android等应用程序。 2. APPium的特点 支持多平台&#xff08;Android、iOS等&#xff09; …

Spring Cache简明教程

Spring Cache简明教程 引言什么是Spring Cache&#xff1f;核心特性应用场景如何工作 如何使用1. 添加依赖2. 启用缓存3. 配置缓存4. 使用缓存注解 使用缓存的注意事项缓存的数据序列化缓存键的生成缓存内容的一致性缓存的并发问题缓存穿透缓存雪崩缓存的存储容量方法的可见性和…

uniapp组件库Card 卡片 的使用方法

目录 #平台差异说明 #基本使用 #配置卡片间距 #配置卡片左上角的缩略图 #配置卡片边框 #设置内边距 #API #Props #Slot #Event 卡片组件一般用于多个列表条目&#xff0c;且风格统一的场景。 #平台差异说明 AppH5微信小程序支付宝小程序百度小程序头条小程序QQ小程…

基于STM32的以太网通信协议选择与实现

在基于STM32的以太网通信中&#xff0c;主要涉及到选择合适的通信协议和实现对应的功能代码。常见的通信协议包括TCP/IP、UDP、HTTP等&#xff0c;选择合适的协议取决于具体应用需求。以下将介绍在STM32上进行以太网通信时&#xff0c;常用的通信协议选择以及对应功能代码的实现…

CSDN·COC城市开发者组织2023年度聚会上海站纪实

目录 前言活动宣传活动议程活动总结结束语 前言 2023年是CSDNCOC成立之年&#xff0c;经过一年的不断发展和壮大&#xff0c;COC上海城市开发者社区的队伍不断壮大&#xff0c;本着每个月都有线下活动的原则&#xff0c;先后举办大大小小的线下沙龙活动20余场。与此同时&…

洛谷p1157组合的输出

组合的输出 题目描述 排列与组合是常用的数学方法&#xff0c;其中组合就是从 n n n 个元素中抽出 r r r 个元素&#xff08;不分顺序且 r ≤ n r \le n r≤n&#xff09;&#xff0c;我们可以简单地将 n n n 个元素理解为自然数 1 , 2 , … , n 1,2,\dots,n 1,2,…,n&a…

NRZ Modulation

NRZ Modulation 正文简介NRZ 的优势 正文 简介 全称不归零 non-return to zero(NRZ) 调制。代表了使用两个信号等级的一种逻辑信号。一个等级为 1&#xff0c;一个等级为 0。负电压对应逻辑电路中的 0&#xff0c;正电压对应逻辑电路中的 1。对于 NRZ 传输&#xff0c;波特率…

trucksim三车队列仿真 matlab一直闪退问题

Trucksim2019 matlab版本2023a 基本框架应该都清楚 下图是主界面 overlay videos and polots with other runs 模块是 关联另一个车辆模型 核心是下图标红是核心 Number of vehicle codes 选择ALL 不要选

如何解决云计算中的性能和延迟问题?

随着云计算的普及&#xff0c;越来越多的企业开始将业务迁移到云端。然而&#xff0c;随着业务的发展和数据量的增长&#xff0c;云计算中的性能和延迟问题也逐渐凸显出来。这些问题不仅会影响用户体验&#xff0c;还会对企业的业务发展造成负面影响。因此&#xff0c;如何解决…

第1章 领域驱动设计的背景和来源

第1章 领域驱动设计的背景和来源 1-1 DDD课程导学1-2 DDD的核心思想和解决的痛点问题1-3 面向对象和敏捷与DDD的区别与联系1-4 DDD的过去、现在与未来 1-1 DDD课程导学 所以大家好&#xff0c;我是尤达&#xff0c;欢迎来到我们深入领域驱动设计。 这门课程。 从我们的副标题结…

世微AP5151芯片低压差 线性降压 恒流驱动IC 台灯 指示灯 矿灯

概述 AP5151 是一种低压差、线性降压、 固定输出电流的 LED 恒流驱动器。 除 LED 外&#xff0c;AP5151 无需外接其它元 器件即可构成一个恒流输出的 LED 驱动 电路。 AP5151 内置过热保护功能&#xff0c;可有效 保护芯片&#xff0c;避免结温超过 120oC 时因过热 而造成损坏…

java后端远程调用文件上传接口(multipart/form-data类型)的方法

multipart/form-data是一种用作传输多个文件/表单项的数据格式。 一、http请求配置 /*** HttpClientConfig http请求配置*/ public class HttpClientConfig {/*** 连接时间 ms*/protected int CONNECT_TIMING_OUT 300000;/*** 请求响应时间 ms*/protected int RESPONSE_TIMI…

【图形学】双三次贝塞尔曲线绘制方法

双三次贝塞尔曲线的定义 双三次贝塞尔曲面是由16个控制点定义的曲面&#xff0c;通常表示为4x4矩阵。 曲面的公式如下&#xff1a; p ( u , v ) ∑ i 0 3 ∑ j 0 3 P i , j B i , 3 ( u ) B j , 3 ( v ) , ( u , v ) ∈ [ 0 , 1 ] [ 0 , 1 ] p(u,v)\sum_{i0}^3\sum_{j0}…

【程序员英语】【美语从头学】初级篇(入门)(笔记)Lesson10(电话会话Ⅱ)

《美语从头学初级入门篇》 注意&#xff1a;被 删除线 划掉的不一定不正确&#xff0c;只是不是标准答案。 文章目录 Lesson 10 Telephone Conversation Ⅱ 电话会话&#xff08;二&#xff09;会话A会话B笔记I would like to do&#xff08;Id like to to do&#xff09;我想…