黑马程序员技术交流社区

标题: Servlet [打印本页]

作者: Jack.李    时间: 2017-8-28 09:24
标题: Servlet
Servlet

Servlet技术中3大组件之一:
    Servlet
    Listener
    Filter

Servlet的功能:
    运行在服务器端,接受请求,完成响应.

Servlet开发流程
    1.创建一个类,实现Servlet接口
    2.在web.xml文件中,配置Servlet
    3.部署项目到tomcat
   
Servlet的生命周期
    1.第一次访问时,会创建Servlet实例,并调用init方法初始化.
    2.每当有请求访问时,调用service方法处理请求
    3.当服务器关闭时,会在销毁Servlet之前调用destroy方法.
   
Servlet中的其他方法
    1.getServletInfo    没用
    2.getServletContext 返回ServletContext对象
   
Servlet中的相关对象
    1.ServletConfig        Servlet配置
    2.ServletRequest    请求
    3.ServletResponse    响应
    4.ServletContext    servlet上下文

ServletConfig对象
    1.getInitParameter(String key);
    2.getInitParameterNames()
    3.getServletName
    4.getServletContext
   
Servlet的其他实现方式
    1.继承GenericServlet
    2.继承HttpServlet

Servlet的细节问题
    1.线程安全
        结论: servlet本身线程不安全,避免使用成员变量接受线程级别的参数.应使用局部变量。
    2.Servlet的创建随服务器的启动而创建
        结论:<load-on-startup>
    3.Servlet路径配置
        相对路径配置
        后缀名配置
        原则:1>匹配范围越大,优先级越低
             2>两种匹配方式不能混用

ServletContext对象
   
    数量级: 一个项一定有且只有一个ServletContext对象
   
    生命周期: 随着项目启动而创建,随项目关闭而销毁.
   
    对象的获得: 通过ServletConfig对象的getServletContext方法
   
    对象的功能:
        1>获得项目级别的参数
            <context-param>
            1.getInitParameter(String key);
            2.getInitParameterNames()
        2>域对象
            application域
            本质: 就是map
            操作: 4个方法 set|get|removeAttribute , getAttributeNames
            范围: 整个项目运行期间.
        3>获得项目内资源的方法
            ServletContext    "/"=> 代表项目根
                1>getResourceAsStream
                2>getRealPath
            Class            "/"=>classes目录  不加"/": class所在包路径下
                1>getResourceAsStream
                2>getResource






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2