Servlet可以同时处理多个请求,但servlet是单例的,不管发生多少次请求,只会创建一次servlet实例。

那么多个请求之间共用同一个Servlet实例,就需要考虑线程安全问题。

用户相关的信息,绝对不能用用成员变量,建议使用局部变量

 // 成员变量String loginname = "";protected void service(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {//响应出去的代码是什么类型response.setContentType("text/html");//内容响应到浏览器使用utf-8编码response.setCharacterEncoding("UTF-8");PrintWriter out = response.getWriter();loginname = request.getParameter("loginname");// 睡眠10秒try {Thread.sleep(10000);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}  out.println("欢迎["+loginname+"]登录");out.flush();out.close();}

造成这样的原因就是因为:

我们使用了成员变量

String loginname = “”;

所以说新来的用户又把之前的用户ID给覆盖掉了,代码如下:

PrintWriter out = response.getWriter();

oginname = request.getParameter(“loginname”);

Servlet — 线程安全问题相关推荐

  1. Servlet功能实现和执行过程、servlet的生命周期、Servlet线程安全问题、Servlet的三种映射方式、ServletConfig、ServletContext

    1. 什么是Servlet? Servlet是SUN公司提供的一套规范,名称就叫Servlet规范,它也是JavaEE规范之一. 第一:Servlet是一个运行在web服务端的java小程序 第二:它 ...

  2. IT兄弟连 JavaWeb教程 Servlet线程安全问题

    2019独角兽企业重金招聘Python工程师标准>>> 在Internet中,一个Web应用可能被来自西面八方的客户并发访问(即同时访问),而且有可能这些客户并发访问的是Web应用中 ...

  3. javaweb学习总结二十三(servlet开发之线程安全问题)

    一:servlet线程安全问题发生的条件 如果多个客户端访问同一个servlet时,发生线程安全问题,那么它们访问的是相同的资源.如果访问 的不是相同资源,则不存在线程安全问题. 实例1:不会产生线程 ...

  4. servlet单实例多线程 ---线程安全问题是由实例变量造成的,只要在Servlet里面的任何方法里面都不使用实例变量,那么该Servlet就是线程安全的。(所有建议不要在servlet中定义成员变

    Servlet 单例多线程 Servlet如何处理多个请求访问? Servlet容器默认是采用单实例多线程的方式处理多个请求的: 1.当web服务器启动的时候(或客户端发送请求到服务器时),Servl ...

  5. 关于java Servlet,Struts,springMVC 的线程安全问题

    2019独角兽企业重金招聘Python工程师标准>>> 现在主流的java的前端框架有:struts1,struts2,springmvc 还有最根本的servlet; 前些天一个朋 ...

  6. Servlet的生命周期和线程安全问题

    目录 Servlet简介 Servlet 架构图 Servlet 任务 Servlet的生命周期 init() 方法 service() 方法 doGet() 方法 doPost() 方法 destr ...

  7. Servlet的线程安全问题

    文章目录 Servlet的线程安全问题 引入 Servlet的多线程机制 如何修复 1.实现 SingleThreadModel 接口 2.避免使用成员变量 3.同步对共享数据的操作 思考与小结 参考 ...

  8. Servlet 的线程安全问题

    Servlet 的线程安全问题 在 Servlet 中使用的是多线程方式来执行 service()方法处理请求,所以我们在使用 Servlet 时需要考虑到线程安全问题,在多线程中对于对象中的成员变量 ...

  9. struts2学习笔记--线程安全问题小结

    在说struts2的线程安全之前,先说一下,什么是线程安全?这是一个网友讲的, 如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码.如果每次运行结果和单线程运行的结果是一样 ...

  10. 深入研究Servlet线程安全性问题

    摘 要:介绍了Servlet多线程机制,通过一个实例并结合Java 的内存模型说明引起Servlet线程不安全的原因,给出了保证Servlet线程安全的三种解决方案,并说明三种方案在实际开发中的取舍. ...

最新文章

  1. vs2017引入mysql_windows+vs2017+C语言 引入mysql.h对MYSQL数据库的操作
  2. 为.Net程序集添加资源
  3. Li‘s 影像组学视频学习笔记(28)-ROI/病灶体积的计算、Li‘s have a solution and plan.
  4. 如何将 Linux 系统转移至 LVM 卷
  5. 收藏 | 使用 Mask-RCNN 在实例分割应用中克服过拟合
  6. 阿里重启维护Dubbo了
  7. php截取字符串,无乱码
  8. mysql学习day03——02
  9. php单独使用blade模板引擎,laravel 基础教程 —— Blade 模板引擎
  10. PHP编写添加学生信息,添加学生信息并显示(示例代码)
  11. SYN flooding
  12. 12:Linux日常运维技巧-1
  13. 如何使用HTML5+CSS3绘制一个QQ 企鹅Logo
  14. swing重写右上角叉号
  15. shell 获取当月最后一天的方法
  16. 火狐浏览器Firefox上DownThemAll插件
  17. 寂静和静寂_静寂的意思
  18. H.265屏幕编码技术
  19. 聊聊编程语言学习之路
  20. 世界杯的历史也是一部科技史

热门文章

  1. POJ1177(扫描线求周长并)
  2. Selenium Chrome浏览器的启动以及proxy设置
  3. 类模板使用示例(二)类模板整体特化
  4. Sharepoint 2010 备份与恢复 (二)
  5. JavaScript基础---语言基础(4)
  6. 对于java中接口的作用与理解
  7. 【论文解读】如何在只有词典的情况下提升NER落地效果
  8. 全是90后!这所211大学,拟聘任10名清华北大博士!
  9. 目前看的GNN论文的一些总结
  10. 【论文】哈工大SCIR Lab | EMNLP 2019 基于BERT的跨语言上下文相关词向量在零样本依存分析中的应用...