需求:当客户端浏览器第一次访问 Servlet 时返回“您好,欢迎您第一次访问!”,第 二次访问时返回“欢迎您回来!”。

package com.bjsxt.servlet;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.io.PrintWriter;/*** 需求:当客户端浏览器第一次访问 Servlet 时返回“您好,欢迎您第一次访问!”,第* 二次访问时返回“欢迎您回来!”。* */
public class WelcomeServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {this.doPost(req, resp);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//        获取cookieCookie[] cookies = req.getCookies();boolean flag = false;if(cookies!=null){for(Cookie cookie : cookies){if("first".equals(cookie.getName())){flag = true;}}}
//        配置响应编码;resp.setContentType("text/html;charset=utf-8");PrintWriter out = resp.getWriter();out.println("<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0 Transitional//EN'>");out.println("<HTML>");out.println("<HEAD><TITLE> ITBZ </TITLE></HEAD>");out.println("<BODY>");if(flag){out.println("欢迎您回来!");}else{out.println("您好,欢迎您第一次访问!");
//            创建cookie对象Cookie cookie = new Cookie("first","first.value");
//            将状态cookie转为持久化cookiecookie.setMaxAge(60);//        通过HttpServletResponse对象,将cookie写回到客户端浏览器resp.addCookie(cookie);}out.println("</BODY>");out.println("</HTML>");out.flush();out.close();}
}

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>welcomeServlet</servlet-name><servlet-class>com.bjsxt.servlet.WelcomeServlet</servlet-class></servlet><servlet-mapping><servlet-name>welcomeServlet</servlet-name><url-pattern>/welcome.do</url-pattern></servlet-mapping>
</web-app>

感谢您的观看;

通过Cookie实现客户端与服务端会话的维持;相关推荐

  1. SSO单点登录教程案例 客户端和服务端

    这里写自定义目录标题 前言 条件 环境要求 准备工作 下载基础项目 项目结构说明 执行流程图 代码实现 单点登录步骤梳理: 代码下载 前言 文章摘抄:https://www.jianshu.com/p ...

  2. 使用MQTTNet包实现客户端与服务端通讯

    本章节给大家讲讲如何实现Mqtt通讯,工程主要有两个,一个是客户端,一个是服务端,功能类都已全部封装好,大家可以直接调用使用. 要实现mqtt的功能,我们需要在NuGet包管理器里面安装一个MQTTn ...

  3. Part6:客户端和服务端信息交互模型

    一.客户端和服务端信息交互模型 1.[问题]:什么是客户端和服务端? 客户端:可以向服务器发请求,并接收返回的内容进行处理 服务器端:能够接收客户端请求,并且把相关资源信息返回给客户端的 2.[面试题 ...

  4. 封装利用libwebsockets写出的客户端、服务端程序为客户端服务端类

    封装利用libwebsockets写出的客户端.服务端程序为客户端服务端类 文章目录 封装利用libwebsockets写出的客户端.服务端程序为客户端服务端类 1.封装 2.封装后写wss客户端.服 ...

  5. 客户端从服务端下载文件的流程分析

    客户端从服务端下载文件的流程分析: 浏览器发送一个请求,请求访问服务器中的某个网页(如:down.php),该网页的代码如下. 服务器接受到该请求以后,马上运行该down.php文件 运行该文件的时候 ...

  6. springboot实现SSE服务端主动向客户端推送数据,java服务端向客户端推送数据,kotlin模拟客户端向服务端推送数据

    SSE服务端推送 服务器向浏览器推送信息,除了 WebSocket,还有一种方法:Server-Sent Events(以下简称 SSE).本文介绍它的用法. 在很多业务场景中,会涉及到服务端向客户端 ...

  7. RPC 笔记(03)— gRPC 概念、安装、编译、客户端和服务端示例

    1. gRPC 概念 gRPC 是 Google 开源的一款高性能的 RPC 框架.GitHub 上介绍如下: gRPC is a modern, open source, high-performa ...

  8. 客户端渲染 服务端渲染_这就是赢得客户端渲染的原因

    客户端渲染 服务端渲染 A decade ago, nearly everyone was rendering their web applications on the server using t ...

  9. python中使用socket编程实现带有界面的客户端向服务端发送文件和下载文件

    一主界面: **二:发送文件界面:**首先需要开启发送文件服务端(这里需要注意的是每一次发送文件之前都需要开启一次服务端,因为我在这里将每一次发送文件之后就关闭了客户端和服务端之间的连接) 输出相关客 ...

最新文章

  1. web服务器安全配置(附安全工具下载)
  2. 微软亚洲研究院开源图数据库GraphView
  3. python如何爬取网站所有目录_[python] 爬取网站所有的URL
  4. WinForm绘制直线、曲线、矩形、椭圆、圆弧
  5. 差分数组 and 树上差分
  6. Vulnhub靶场渗透练习(二) Billu_b0x
  7. 酷狗笔试题:补齐左括号(栈)
  8. SAP License:ERP财务软件简介
  9. 零基础 5 分钟上手,程序员喜提 AIoT 新利器!
  10. 【Linux】swap分区简介及空间增加方式
  11. mac显示网速_Mac系统怎么查看测试网速
  12. 计算机三位科学家,华南理工大学这三位年轻科学家太优秀了!
  13. 简单好用的mac版Mysql可视化工具 - Sequel Pro
  14. 拼多多登录不上是什么原因 怎么解决拼多多登录失败
  15. Objective C 的 private
  16. 天然产物数据库综述:2020年从哪里找天然产物数据
  17. vue 阻止输入框冒泡
  18. 手机投屏到电脑的实用工具
  19. 科学数学工程工具MATLAB软件2023a中文版下载安装,MATLAB特色
  20. RSA中的中国剩余定理(CRT)和多素数(multi-prime)

热门文章

  1. HDU 3342 Legal or Not(拓扑排序判断成环)
  2. VB查询数据库之写入数据库——机房收费系统总结(三)
  3. UVa 111 - History Grading
  4. Boost Asio总结(5)class tcp
  5. 美国大学生数学建模竞赛15大热点问题
  6. 【Flask】Jinja2之模板中使用url_for
  7. JavaScript之函数声明
  8. 多线程通信—生产者和消费者模式
  9. python—多线程之死锁
  10. centos光盘修复引导_CentOS系统启动/boot/initramfs修复(实验)