servlet简介和相关知识点
来源:互联网 发布:欧文本赛季数据 编辑:程序博客网 时间:2024/06/07 03:33
关于Servlet!
*web容器 -- 能够运行web应用的环境就叫做web容器 --- tomcat
2.用记事本写一个servlet程序
写一个类实现sun公司定义的Servlet接口
4.Servlet的继承结构
Servlet接口 -- 定义了Servlet应该具有的基本方法
|
|--GenericServlet --通用基本Servlet实现,对于不常用的方法在这个实现类中进行了基本的实现,对于Service设计为了抽象方法, 需要子类去实现
|
|--HttpServlet --在通用Servlet的基础上基于HTTP协议进行了进一步的强化:实现了GenericServlet中的Service方法,判断当前的请求方式,调用对应到doXXX方法,这样一来我们开发Servlet的过程中只需继承HttpServlet ,覆盖具体要处理的doXXX方法就可以根据不同的请求方式实现不同的处理.一般不要覆盖父类中的Service方法只要覆盖doGet/doPost就可以了
5.Servlet的细节
(1)一个<servlet>可以对应多个<serlvet-mapping>,从而一个Servlet可以有多个路径来访问
(2)url-partten中的路径可以使用*匹配符号进行配置,但是要注意,只能是/开头/*结尾或*.后缀这两种方式
~由于*的引入,有可能一个路径被多个urlpartten匹配,这是优先级判断条件如下:
哪个最像找哪个
*.后缀永远匹配级最低
(3)<serlvet>可以配置<load-on-startup>可以用来指定启动顺序
(4)缺省Servlet:如果有一个Servlet的url-partten被配置为了一根正斜杠,这个Servlet就变成了缺省Serlvet.其他Servlet 都不处理的请求,由缺省Servlet来处理.
其实对于静态资源的访问就是由缺省Servlet来执行
设置404页面500页面等提示页面也是由缺省Servlet来执行
通常我们不会自己去配置缺省Servlet,否则会导致静态资源、404、500等页面访问不到。
(5)线程安全问题
由于默认情况下Servlet在内存中只有一个对象,当多个浏览器并发访问Servlet时就有可能产生线程安全问题
解决方案:
①加锁--效率降低
②SingleThreadModel接口 -- 不能真的防止线程安全问题
③最终解决方案:在Servlet中尽量少用类变量,如果一定要用类变量则用锁来防止线程安全问题,但是要注意锁住内容应该是造成线程安全问题的核心代码,尽量的少锁主内容,减少等待时间提高servlet的响应速度。
1.servlet简介
sun提供的一种动态web资源开发技术.本质上就是一段java小程序,可以将Servlet加入到Servlet容器中运行。
*Servlet容器 -- 能够运行Servlet的环境就叫做Servlet容器. --- tomcat*web容器 -- 能够运行web应用的环境就叫做web容器 --- tomcat
2.用记事本写一个servlet程序
写一个类实现sun公司定义的Servlet接口
将写好的类配置到tomcat中的web应用的web.xml中。(配置对外访问路径)
参看笔者另一篇文章。
http://blog.csdn.net/dwyers/article/details/38408045
3.Servlet的调用过程/生命周期
参看笔者另一篇文章。
4.Servlet的继承结构
Servlet接口 -- 定义了Servlet应该具有的基本方法
|
|--GenericServlet --通用基本Servlet实现,对于不常用的方法在这个实现类中进行了基本的实现,对于Service设计为了抽象方法, 需要子类去实现
|
|--HttpServlet --在通用Servlet的基础上基于HTTP协议进行了进一步的强化:实现了GenericServlet中的Service方法,判断当前的请求方式,调用对应到doXXX方法,这样一来我们开发Servlet的过程中只需继承HttpServlet ,覆盖具体要处理的doXXX方法就可以根据不同的请求方式实现不同的处理.一般不要覆盖父类中的Service方法只要覆盖doGet/doPost就可以了
5.Servlet的细节
(1)一个<servlet>可以对应多个<serlvet-mapping>,从而一个Servlet可以有多个路径来访问
(2)url-partten中的路径可以使用*匹配符号进行配置,但是要注意,只能是/开头/*结尾或*.后缀这两种方式
~由于*的引入,有可能一个路径被多个urlpartten匹配,这是优先级判断条件如下:
哪个最像找哪个
*.后缀永远匹配级最低
(3)<serlvet>可以配置<load-on-startup>可以用来指定启动顺序
(4)缺省Servlet:如果有一个Servlet的url-partten被配置为了一根正斜杠,这个Servlet就变成了缺省Serlvet.其他Servlet 都不处理的请求,由缺省Servlet来处理.
其实对于静态资源的访问就是由缺省Servlet来执行
设置404页面500页面等提示页面也是由缺省Servlet来执行
通常我们不会自己去配置缺省Servlet,否则会导致静态资源、404、500等页面访问不到。
(5)线程安全问题
由于默认情况下Servlet在内存中只有一个对象,当多个浏览器并发访问Servlet时就有可能产生线程安全问题
解决方案:
①加锁--效率降低
②SingleThreadModel接口 -- 不能真的防止线程安全问题
③最终解决方案:在Servlet中尽量少用类变量,如果一定要用类变量则用锁来防止线程安全问题,但是要注意锁住内容应该是造成线程安全问题的核心代码,尽量的少锁主内容,减少等待时间提高servlet的响应速度。
0 0
- servlet简介和相关知识点
- JSP和servlet的相关知识点
- JSP和servlet的相关知识点
- servlet相关知识点
- Servlet相关知识点
- jsp、servlet相关简介链接
- jsp和servlet知识点总结
- jsp和servlet知识点总结 .
- jsp和servlet知识点总结
- JSP和servlet知识点总结
- 2.1字符编码相关知识点简介
- 编译和预处理相关知识点
- 数据和C相关知识点
- Applet和Servlet的简介
- servlet和tomcat相关知识
- Servlet和JSP跳转相关
- Servlet和ServletContext相关笔记
- Servlet和Tomcat相关知识
- 安装SQL Server2008时”重新启动计算机”显示的结果是“失败”具体解决方案
- VS2010遇到了异常,可能是由某个扩展导致的
- VS不能启动web test recorder的解决方法
- JAVA 水题 练手
- 网站开发-php开发手机论坛(5)-创建帖子(2)
- servlet简介和相关知识点
- Ubuntu快捷键
- 窗口句柄浅析和获取窗口句柄的方法
- eXtremeDB HA 运行时数据的同步方式
- Ext4.0 常用代码整理(一)
- nyoj-278-排队
- 用Highcharts实现动态曲线图表的关键设置
- java中Double类型的运算精度丢失的问题
- ssh 和 scp