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可以有多个路径来访问
         (2)url-partten中的路径可以使用*匹配符号进行配置,但是要注意,只能是/开头/*结尾或*.后缀这两种方式
                ~由于*的引入,有可能一个路径被多个urlpartten匹配,这是优先级判断条件如下:
                哪个最像找哪个
                 *.后缀永远匹配级最低
        (3)可以配置可以用来指定启动顺序
        (4)缺省Servlet:如果有一个Servlet的url-partten被配置为了一根正斜杠,这个Servlet就变成了缺省Serlvet.其他Servlet 都不处理的请求,由缺省Servlet来处理.
        其实对于静态资源的访问就是由缺省Servlet来执行
        设置404页面500页面等提示页面也是由缺省Servlet来执行
        通常我们不会自己去配置缺省Servlet,否则会导致静态资源、404、500等页面访问不到。
         (5)线程安全问题
                由于默认情况下Servlet在内存中只有一个对象,当多个浏览器并发访问Servlet时就有可能产生线程安全问题
                解决方案:
                ①加锁--效率降低
                ②SingleThreadModel接口 -- 不能真的防止线程安全问题
                ③最终解决方案:在Servlet中尽量少用类变量,如果一定要用类变量则用锁来防止线程安全问题,但是要注意锁住内容应该是造成线程安全问题的核心代码,尽量的少锁主内容,减少等待时间提高servlet的响应速度。

你可能感兴趣的:(JavaWeb)