细说Servlet Servlet细节
来源:互联网 发布:网络买卖 编辑:程序博客网 时间:2024/05/18 00:51
Servlet细节
1.客户端是通过URL地址访问web服务中的资源,所以Servlet程序若想被外界访问,必须把Servlet映射到一个URL地址上,这个工作在web.xml文件中使用<servlet>元素和<servlet-mapping>元素完成。
2.<servlet>元素用于注册servlet,包含两个主要的子元素:<servlet-name>和<servlet-class>,分别用于设置Servlet的注册名称和Servlet完整的类名(附上包名)
3.一个<servlet-mapping>元素用于映射一个已注册的Servlet的一个对外的路径,它包含两个子元素:<servlet-name>和<url-pattern>,分别制定Servlet的注册名称和Servlet的对外访问路径。
4.一个已注册的Servlet可以映射到多个不同的URL。多个<servlet-mapping>元素的<servlet-name>子元素的设置值可以是同一个Servlet的注册名,只需<url-pattern>不同。
5.当映射一个Servlet的时候,可以多层,比如<url-pattern>/servlet/index.html</url-pattern>,后缀名是html不一定就是html,可能是假象,只认名。
6.在Servlet映射到的URL中也可以使用*通配符,只能有两种固定格式,一种是“*.扩展名”,另一种是正斜杠 / 开头并以 /* 结尾。
在匹配的过程中,参考的标准如下:
1.谁的匹配度高,谁就被选中
2.*.do的优先级最低
7.Servlet的单例问题:当Servlet被第一次访问后,就被记载到内存,以后该实例就对各个请求服务,即在使用中是单例的。
因为Servlet是单例的,所以会出现一个线程安全问题,例如一个售票系统:只有两张票可是卖出了三张,不加同步机制会出现问题。
原则: 1.如果一个变量需要多个用户共享,则应当在访问该变量的时候加同步机制:synchronized(对象) { //需要同步的代码 }
2.如果一个变量不需要共享,则将该变量直接在doGet()或者doPost()中定义即可,这样不会存在线程安全问题。
补充:面试题:Servlet在使用中会不会出现线程安全问题?
答:Servlet在访问中会出现线程安全问题,这时候我们可以通过加上syncronized(对象) { //同步代码 }来防止线程并发。
8.Servlet是一个供其它程序(Servlet引擎[web服务器tomcat])调用的java类,它不能独立运行,它的运行完全有Servlet引擎来控制和调度。
9.睡觉觉喽,明天待续
- 细说Servlet Servlet细节
- 细说servlet细节
- 细说servlet--开发servlet
- servlet细节
- servlet细节
- Servlet细节
- Servlet细节
- servlet细节
- 细说Servlet 服务器tomcat
- 细说Servlet Cookie
- 细说Servlet-- Cookie
- 细说servlet--会话技术
- [Servlet]Servlet的一些细节
- servlet笔记05:servlet细节
- 细说Servlet 会话技术介绍
- servlet细节收集
- Servlet细节分析
- Servlet开发注意细节
- WTL for MFC Programmers, Chinese Version Prologue
- 使用 QEMU 测试 U-BOOT
- WTL for MFC Programmers, Part I - ATL GUI Classes
- 笔试锤子产品经理
- 解决TCP网络传输“粘包”问题
- 细说Servlet Servlet细节
- c/c++通过socket发送结构体
- 经过一年时间的沉淀 再次回首 TCP Socket服务器编程
- 拼包函数及网络封包的异常处理(含代码)
- 从Eclipse转移到IntelliJ IDEA一点心得
- socket转发程序
- 去除List列表中重复值(3种解决方法)
- 精通WindowsSocket网络开发
- 地面网络传输层之TCP、UDP详解