注册

Servlet学习笔记(一)
首页 > IT计算机 > Java    作者:RainFly   2017年12月22日 11:26 星期五   热度:9586°   字号:   评论:0    
时间:2017-12-22 11:26   热度:9586°  评论:0 条 

当用户调用一个 Servlet 时,就会创建一个 Servlet 实例,每一个用户请求都会产生一个新的线程,适当的时候移交给 doGet 或 doPost 方法。init() 方法简单地创建或加载一些数据,这些数据将被用于 Servlet 的整个生命周期。

由于常驻内存继而创建新的进程会出现资源的同步互斥现象;

Servlet: 同CGI程序 用来处理当前HTTP server交互数据


测试源码:1234123.jpg


web.xml 文件中 指明项目访问路径 servlet-pattren  打开Tomcat 通过多开多个浏览器进行访问查看全局变量i的数值 

123.jpg

全局变量在多线程访问时不断改变

1232434234.jpg


需要将多个线程访问的资源加上锁,现在这种做法是给Servlet对象加了一把锁,保证任何时候都只有一个线程在访问该Servlet对象里面的资源,这样就不存在线程安全问题了

		synchronized (this) {  //Java中每个对象都有一把锁,这里的this指的就是servlet对象
			response.setContentType("text/html");
			i++;
			String s=i+"";
			try {
				Thread.sleep(100);
			} catch (InterruptedException e) {
				// TODO: handle exception	
				e.printStackTrace();	
			}
			response.getWriter().write(s);
			
		}





  您阅读这篇文章共花了:  
捐赠支持:如果觉得这篇文章对您有帮助,请 "扫一扫"鼓励作者!
二维码加载中...
本文作者:RainFly      文章标题: Servlet学习笔记(一)
本文地址:http://www.rainfly.cn/?post=295
版权声明:若无注明,本文皆为“雨夜轩”原创,转载请保留文章出处。

赶紧抢沙发哟!

QQ游客评论

返回顶部    首页    捐赠支持    手气不错    友情链接    关于我们    站长工具    站长介绍    手机版本    后台登陆   
版权所有:雨夜轩    站长:RainFly    特别鸣谢   文章归档   皖ICP备15003600号-1   百度统计
Copyright©2015 雨夜轩 Powered by emlog强力驱动 七牛CDN全球加速 360站长联盟安全认证 中国博客联盟荣誉成员 可信赖网站 站点地图   
页面加载耗时:0.027秒 数据库查询次数:11次
背景设置