`

转:关于Servlet的并发响应

 
阅读更多

http://blog.csdn.net/irelandken/article/details/6935659

关于Servlet的并发响应

 

http://blog.csdn.net/irelandken/article/details/6927713我们分析了Servlet的生命周期

Servlet的生命周期是这个Servlet被访问时构造,项目被Remove部署时才终止…

 

那么我们现在再来看看,当多个用户以doget/dopost方式同时访问同一个Servlet时,那个响应情况是怎么的呢??是一个一个来执行?还是多线程并行来执行呢??

 

1: 新建web Project

2:新建文件: Servlet_MutiThreads.java

 

 

 

[java] view plaincopy
  1. package myServlet;  
  2. import java.io.IOException;  
  3.    
  4. import javax.servlet.ServletException;  
  5. import javax.servlet.http.HttpServlet;  
  6. import javax.servlet.http.HttpServletRequest;  
  7. import javax.servlet.http.HttpServletResponse;  
  8.    
  9.    
  10. public class Servlet_MutiThreads extends HttpServlet {  
  11.    
  12.     private static final long serialVersionUID = 1L;  
  13.    
  14.     @Override  
  15.     protected void doGet(HttpServletRequest req, HttpServletResponse resp)  
  16.            throws ServletException, IOException {  
  17.         
  18.        System.out.println(Thread.currentThread().getName() + " is running");  
  19.         
  20.        try {  
  21.            Thread.sleep(10*1000);  
  22.        } catch (InterruptedException e) {  
  23.            e.printStackTrace();  
  24.        }  
  25.         
  26.        System.out.println(Thread.currentThread().getName() + " is ------------finished");  
  27.     }  
  28.    
  29.     @Override  
  30.     protected void doPost(HttpServletRequest req, HttpServletResponse resp)  
  31.            throws ServletException, IOException {  
  32.         
  33.        doGet(req,resp);  
  34.     }  
  35.    
  36. }  
  37.    



 

3.XML加入:

 

[html] view plaincopy
  1.  <servlet>  
  2.   <servlet-name>Servlet_MutiThreads</servlet-name>  
  3.   <servlet-class>myServlet.Servlet_MutiThreads</servlet-class>  
  4. </servlet>  
  5.   
  6. <servlet-mapping>  
  7.   <servlet-name>Servlet_MutiThreads</servlet-name>  
  8.   <url-pattern>/myServlet/Servlet_MutiThreads</url-pattern>  
  9. </servlet-mapping>  



 

 

那么这个servlet的访问的url是: http://localhost:8080/Servlet_MutiThreads//myServlet/Servlet_MutiThreads

 

这个Servlet里,每次访问都sleep 10s,就是说每个访问的持续时间为10s….(这里为不什么不用wait呢? 是因为sleep时,尽管线程休眠了,但还是不会释放锁的,而这正是我们想要的,而wait是会释放的)

 

 

我们有在地址栏里多次访问这个URL(连续按多次enter):

 

 

我们可以看到,这个访问是并发的,并Servlet的响应也是并发的,查看资料:

 

Servlet体系结构是建立在Java多线程机制之上的,它的生命周期是由Web容器负责的。

 

当客户端第一次请求某个Servlet时,Servlet 容器将会根据web.xml配置文件实例化这个Servlet类。当有新的客户端请求该Servlet时,一般不会再实例化该Servlet类,也就是有多个线程在使用这个实例。

 

Servlet容器会自动使用线程池等技术来支持系统的运行

 

我们就验证了Servlet能并发响应多个用户的访问

 

分享到:
评论

相关推荐

    Java并发编程(学习笔记).xmind

    Java并发编程 背景介绍 并发历史 必要性 进程 资源分配的最小单位 线程 CPU调度的最小单位 线程的优势 (1)如果设计正确,多线程程序可以通过提高处理器资源的利用率来提升系统吞吐率 ...

    java项目源码之UrlRewriter Java v2.0 RC1_urlrewriterjava.rar

    Java Servlet Filter:基于 Java Servlet Filter 技术实现 URL 重写功能,与 Java Web 应用无缝集成,方便快捷。 配置文件支持:支持通过 XML 或 Properties 文件配置 URL 重写规则,简化配置流程,提高可维护性。 ...

    Tomcat 8 软件及源码

    3. 并发性改进:Tomcat 8 对并发性进行了改进,包括更好的线程管理、请求处理和响应处理等方面的优化。 4. EL 3.0支持:Tomcat 8 支持最新的EL(表达式语言)3.0规范,提供了更多的表达式功能和语言特性。 5. JSP ...

    开涛高可用高并发-亿级流量核心技术

    1.1 高并发原则 3 1.1.1 无状态 3 1.1.2 拆分 3 1.1.3 服务化 4 1.1.4 消息队列 4 1.1.5 数据异构 6 1.1.6 缓存银弹 7 1.1.7 并发化 9 1.2 高可用原则 10 1.2.1 降级 10 1.2.2 限流 11 1.2.3 切流量 12 1.2.4 可回滚...

    Java Tomcat面试题

    2. 请求处理阶段:在这个阶段,Tomcat 会对每个请求进行处理,包括解析请求、执行 servlet、返回响应等。 七、Tomcat 顶层架构 Tomcat 的 顶层架构主要包括以下几个部分: 1. Connector:负责处理请求和响应的...

    Java高并发高性能分布式框架从无到有微服务架构设计.doc

    高并发- HTTP缓存浏览器缓存是指当我们使用浏览器访问一些网站页面或者http服务时,根据服 务端返回的缓存设置响应头将响应内容缓存到浏览器,下次可以直接使用缓存内容或者 仅需要去服务端验证内容是否过期即可。...

    Java项目源码之聊天系统的实现(java+applet).zip

    Servlet:使用Java Servlet技术实现服务器端的业务逻辑和数据处理,接收和响应客户端的请求。 WebSocket:采用WebSocket技术实现客户端与服务器之间的实时双向通信,支持消息的实时推送。 数据库:选择适当的数据库...

    annotaction

    1. 异步处理支持:有了该特性,Servlet 线程不再需要一直阻塞,直到业务处理完毕才能再输出响应,最后才 结束该 Servlet 线程。在接收到请求之后,Servlet 线程可以将耗时的操作委派给另一个线程来完成,自己 在不...

    Java项目源码之家庭理财系统的实现(java+applet).zip

    Servlet:使用Java Servlet技术实现服务器端的业务逻辑和数据处理,接收和响应客户端的请求。 数据库:选择适当的关系型数据库(如MySQL、PostgreSQL等)存储用户信息、财务记录和预算数据。 前端技术:结合HTML、...

    基于Jsp+Servlet+MySQL的会员管理系统.zip

    MySQL通过高效的缓存机制、查询优化器以及对硬件资源的有效利用,保证了在高负载情况下的稳定性和快速响应。它支持水平扩展(如通过分片、复制等技术)和垂直扩展(如增加硬件资源),以应对大规模数据存储和高并发...

    基于servlet+jsp+mysql的图书馆管理系统.zip

    MySQL通过高效的缓存机制、查询优化器以及对硬件资源的有效利用,保证了在高负载情况下的稳定性和快速响应。它支持水平扩展(如通过分片、复制等技术)和垂直扩展(如增加硬件资源),以应对大规模数据存储和高并发...

    一个基于 Java、JSP、Servlet、MySQL的水果商城。.zip

    MySQL通过高效的缓存机制、查询优化器以及对硬件资源的有效利用,保证了在高负载情况下的稳定性和快速响应。它支持水平扩展(如通过分片、复制等技术)和垂直扩展(如增加硬件资源),以应对大规模数据存储和高并发...

    基于servlet+jsp+mysql+MVC模式的学生选课管理系统.zip

    MySQL通过高效的缓存机制、查询优化器以及对硬件资源的有效利用,保证了在高负载情况下的稳定性和快速响应。它支持水平扩展(如通过分片、复制等技术)和垂直扩展(如增加硬件资源),以应对大规模数据存储和高并发...

    基于 jsp + servlet + mysql 三层架构实现的网上书店系统.zip

    MySQL通过高效的缓存机制、查询优化器以及对硬件资源的有效利用,保证了在高负载情况下的稳定性和快速响应。它支持水平扩展(如通过分片、复制等技术)和垂直扩展(如增加硬件资源),以应对大规模数据存储和高并发...

    基于servlet+jsp+mysql做的一个简易的网上书店项目源码.zip

    MySQL通过高效的缓存机制、查询优化器以及对硬件资源的有效利用,保证了在高负载情况下的稳定性和快速响应。它支持水平扩展(如通过分片、复制等技术)和垂直扩展(如增加硬件资源),以应对大规模数据存储和高并发...

    基于Java实现的Web服务器与测试工具开发.zip

    1)支持客户端的网页请求,进行并发处理,缩短请求的响应时间。 2)可响应GET、POST(html、servlet、jsp)页面的请求。 3)对每次网页请求都进行过滤(filter)。 4)支持request、response的跳转请求。 5)可维持一个...

    一个基于BootStrap+JSP+Servlet+Mysql的模拟咖啡厅点餐系统。.zip

    MySQL通过高效的缓存机制、查询优化器以及对硬件资源的有效利用,保证了在高负载情况下的稳定性和快速响应。它支持水平扩展(如通过分片、复制等技术)和垂直扩展(如增加硬件资源),以应对大规模数据存储和高并发...

    基于JSP+Servlet+ Mysql的宿舍管理系统.zip

    MySQL通过高效的缓存机制、查询优化器以及对硬件资源的有效利用,保证了在高负载情况下的稳定性和快速响应。它支持水平扩展(如通过分片、复制等技术)和垂直扩展(如增加硬件资源),以应对大规模数据存储和高并发...

    基于ZigBee+ESP32+MQTT+EMQX+TomCat+Servlet接口+MySQL+安卓app的物联网课设.zip

    MySQL通过高效的缓存机制、查询优化器以及对硬件资源的有效利用,保证了在高负载情况下的稳定性和快速响应。它支持水平扩展(如通过分片、复制等技术)和垂直扩展(如增加硬件资源),以应对大规模数据存储和高并发...

    java面试题

    3:多台:不同对象对统一消息作出不同响应称之为多态 4:抽象:忽略与当前主题无关的那些方面,将注意力集中在与当前目标有关的方面 运行时异常和一般异常有何异同? 答:运行时异常时(JVM)java虚拟机在运行过程...

Global site tag (gtag.js) - Google Analytics