servlet基本概念
2016-03-02 15:19
197 查看
一、servlet是一个供其它java程序调用的java类,比方tomcatserver,它不能独自执行,它的执行由servlet引擎来控制和调度。
二、servlet是单例,多线程
针对多个client訪问servlet的情况,servlet仅仅实例化一次,也就是其init()方法仅仅执行一次。
而每次请求,servlet引擎都会创建新的servletrequest和servletresponse对应对象,然后作为參数传递给service()方法。service再依据请求调用doget()或者dopost()
servlet是多线程的。
三、多线程的安全问题
对于全局变量,假设进行高并发的时候,同一个变量。一个线程请求还未运行完,下一个线程请求就来了。
这就造成了,变量的操作出现错误。
比方 对于全局变量 i
当第一个线程取出来,进行i++操作。i++还未运行,下一个线程就到来,也进行i++操作,这样事实上i++运行了两次。但终于的结果仅仅是加了1。
要解决问题,还是使用了同步的方式。使用synchronized
二、servlet是单例,多线程
针对多个client訪问servlet的情况,servlet仅仅实例化一次,也就是其init()方法仅仅执行一次。
而每次请求,servlet引擎都会创建新的servletrequest和servletresponse对应对象,然后作为參数传递给service()方法。service再依据请求调用doget()或者dopost()
servlet是多线程的。
三、多线程的安全问题
对于全局变量,假设进行高并发的时候,同一个变量。一个线程请求还未运行完,下一个线程请求就来了。
这就造成了,变量的操作出现错误。
比方 对于全局变量 i
当第一个线程取出来,进行i++操作。i++还未运行,下一个线程就到来,也进行i++操作,这样事实上i++运行了两次。但终于的结果仅仅是加了1。
要解决问题,还是使用了同步的方式。使用synchronized
相关文章推荐
- 笔试整理2
- 自学MVC看这里——全网最全ASP.NET MVC 教程汇总
- web应用负载均衡策略
- Eclipse 配置tomcat 不带项目名称
- Target runtime Apache Tomcat v6.0 is not defined.错误解决方法
- 图像处理 C语言 hough变换 检测直线
- 关于HTML5的编码为题
- 多浏览器支持ActiveX控件
- JAVA 变量的3种形式
- c++第一次实验(复习)
- [转]MEF学习
- java 空指针异常其他原因
- ScaleGestureDetectorde 使用方法
- linux下apache源码安装
- C++第一次作业
- C++第1次实验
- weblogic12.1.3-反序列漏洞补丁过程
- 解决INSTALL_FAILED_VERSION_DOWNGRADE
- STS 创建maven项目
- BIT2014级软件学院程序设计-07 Crossing River