servlet-cookie实现向客户端写cookie信息
title: servlet cookie实现向客户端写cookie信息
date: 2019-07-09 11:00:00
servlet**基础
servlet是Java web应用中最核心的组件,也是web服务器组件,它是一个中间控制层,负责处理客户端提交过来的请求数据以及调用业务逻辑对象,根据业务逻辑来控制页面转发。
cookie**
在互联网中,cookie是小段的文本信息,在网络服务器上生成,并发送给浏览器。通过使用cookie可以标识用户身份,记录用户名和密码,跟踪重复用户。浏览器将cookie以key/value的形式保存到客户机的某个指定目录中。
基本概念就是这样,下面我想实现一个小功能,利用servlet cookie实现向客户端写cookie信息,即是在登录页面实现用户输入用户名和密码并提交到servlet中,在servlet中将用户名添加到cookie对象中,然后关闭浏览器,在重新访问用户登录页时,用户名的文本框会显示上一次输入的用户名信息
解题思路:
应用在Servlet API中提供的cookie类即可实现;用户把表单信息提交给servlet后,在servlet中获取用户请求的信息并添加到cookie对象中,再通过HttpServletResponse对象把cookie信息返回给客户端,然后在JSP页面中通过request内置对象来获取客户端的cookie信息。 在JSP中使用request对象获取的是一个cookie对象的数组,需要在循环中遍历所有cookie对象,并通过cookie对象的getName()方法查找所有cookie对象的名称,然后根据找到的cookie名称获得cookie对象中的值。
实现步骤: 首先打开我们的JavaWeb编程工具eclipse或idea,我用的就是idea,创建一个动态web项目,因为这个小功能没有用到其他的jar包,所以不必使用maven搭建项目;下面开始编码工作:
代码实现: 因为需使用表单提交用户名和密码到servlet处理,所以新建一个index.jsp,代码如下:
<%--Created by IntelliJ IDEA.User: hkqDate: 19-7-9Time: 上午10:08To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%//用于保存从cookie中读取的用户名String userName = null;//获取客户端的所有cookieCookie cookieArr[]=request.getCookies ();if (cookieArr!=null&&cookieArr.length>0){for (Cookie c:cookieArr){//如果Cookie中有一个名为userName的cookieif (c.getName ().equals ( "userName" )){//将字符串解码,获得此cookie的值userName=java.net.URLDecoder.decode ( c.getValue () );}}}
%>
<html>
<head><title>$Title$</title>
</head>
<body>
<form action="CookieServlet" method="post"><table align="center"><tr><td>用户名:</td><td><input type="text" name="name" value="<%if (userName!=null){out.print ( userName );}%>"></td></tr><tr><td>密码:</td><td><input type="password" name="pwd"></td></tr><tr>
<td colspan="2"><input type="submit" value="登录"></td></tr>
</table>
</form>
</body>
</html>
之后创建servlet处理类CookieServlet.java,代码如下:
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;
/*** @author hkq*/
@WebServlet(name = "CookieServlet")
public class CookieServlet extends HttpServlet {@Overrideprotected void doPost(HttpServletRequest request , HttpServletResponse response) throws ServletException, IOException {
}
@Overrideprotected void doGet(HttpServletRequest request , HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding ( "UTF-8" );/**** 获得用户名*/String name=request.getParameter ( "name" );/**** 将用户名进行格式编码*/name=java.net.URLEncoder.encode ( name,"UTF-8" );/**** 创建一个cookie对象,并将用户名保存到cookie对象中*/Cookie nameCookie=new Cookie ( "userName",name );/**** 设置Cookie的过期时间,单位为秒*/nameCookie.setMaxAge ( 60 );/**** 通过response的addCookie()方法将此Cookie对象保存到客户端浏览器的cookie中*/response.addCookie ( nameCookie );request.getRequestDispatcher ( "success.jsp" ).forward ( request,response );}
}
需要配置一下web.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"version="4.0"><servlet><servlet-name>CookieServlet</servlet-name><servlet-class>CookieServlet</servlet-class></servlet><servlet-mapping><servlet-name>CookieServlet</servlet-name><url-pattern>/CookieServlet</url-pattern></servlet-mapping>
</web-app>
运行即可,页面比较糙,就不把页面push上来了。。。 这是提供源码的demo
servlet-cookie实现向客户端写cookie信息相关推荐
- 在Servlet中向客户端写Cookie信息
应用Servlet API中提供的Cookie类,用户把表单信息提交给Servlet后,在Servlet中获取用户请求的信息并添加到Cookie对象中,再通过HttpServletResponse对象 ...
- cookie记录了服务器相关的信息,使用cookie记录信息(精选).ppt
文档介绍: 第6章使用cookie记录信息 1 6.1.1 什么是cookie 什么是Cookies("小甜饼") Cookies就是服务器暂存放在你的电脑里的资料(.txt格式的 ...
- Cookie实现免输入登录浏览器信息
Cookie实现免输入登录浏览器 什么是Cookie cookie 是 servlet 发送到 Web 浏览器的少量信息,这些信息由浏览器保存,然后发送回服务器.cookie 的值可以唯一地标识客户端 ...
- 【Servlet】多个Servlet之间数据共享实现方案(ServletContext/Cookie/HttpSession/HttpServletRequest)
多个Servlet之间数据共享实现方案 文章目录 多个Servlet之间数据共享实现方案 前言 一.ServletContext 1.介绍 2.工作原理 3.全局作用域对象的生命周期 4.代码实现 5 ...
- 通过cookie保存并读取用户登录信息
浏览器将cookie以key/value的形式保存到客户机的某个指定目录 通过cookie的getCookies()方法可获取所有cookie对象的集合 通过cookie对象的getName()方法可 ...
- 通过cookie保存并读取用户登录信息实例
通过cookie的getCookies()方法可获取所有cookie对象的集合:通过getName()方法可以获取指定的名称的cookie:通过getValue()方法获取到cookie对象的值.另外 ...
- cookie文件存放在服务器端,cookie存储在客户端还是服务器
cookie存储在客户端还是服务器 内容精选 换一换 在很多集群架构中,集群成员的主要目的就是让集中式接口知道它能访问哪些节点,然后此中央接口通过一个两级调度为客户端提供服务,在PB到EB级系统中这个 ...
- 客户端禁止 cookie,session 还能用吗?
客户端禁止 cookie,session 还能用吗? 一般默认情况下,在会话中,服务器存储 session 的 sessionid 是通过 cookie 存到浏览器里. 如果浏览器禁用了 cookie ...
- 客户端禁用Cookie后session失效的问题
客户端禁用Cookie后session会失效,该如何解决?解决方法:使用URL重写技术URL重写:在原来的URL后面加上";jsessionid=123456789" 即:url- ...
最新文章
- js通过正则表达式解析xml 获取指定的内容
- Mish激活函数,ReLU的继任者
- DayDayUp:分析“普通人”如何逐步走上食物链顶端(看那些成名史案例,有感而发)
- Linux串口转远程串口,linux虚拟串口及远程访问
- [转贴]电视和显示器的相关语言
- asp.net core策略授权
- django外调用url_Django url
- linux删除命令_【小技巧】Linux命令的快捷键
- c++中enum 如何使用(转)
- 解决XAMPP和VMware端口占用冲突
- GBin1教程:使用jQuery插件jquery.validationEngine实现表单验证功能
- canvas动画科技园_16个富有创意的HTML5 Canvas动画特效集合
- 电力系统matlab实验报告,电力系统分析潮流实验报告
- JLINK 驱动安装和配置ADS使用,ADX调试
- 三菱PLC MC协议
- 什么是黑盒测试,白盒测试,灰盒测试?
- 计算机系统汉字编码分为,计算机中的汉字编码
- Python NLP 入门
- python做一个财务系统_用6行python代码做一个财务机器人
- 数据库实验(数据库安全管理)
热门文章
- cmd中输入net start mysql 提示:服务名无效或者MySQL正在启动 MySQL无法启动
- Java-File-文件操作
- 直播 | 循序渐进 - DM8 数据存储管理
- 3分钟搞懂MySQL事务隔离级别及SET TRANSACTION影响事务
- 企业级分布式 HTAP 数据库管理系统,腾讯 TBase 正式开源 ​
- 基于超大规模集群的本地存储系统优化
- 风起云涌:传Oracle技术的二号人物 Thomas Kurian 正在离开
- 程序媛记一次在线创建索引被kill案例及应对措施
- 如何实现数据跨链交互?
- Redis现网那些坑:用个缓存,还要为磁盘故障买单?