• JavaWeb的Servlet、ServletContext


    一、Servlet是什么?他是一个处理网页请求或者提交数据的处理容器,每个Servlet是独特的,用来处理不同的网页请求方式,同

    时Servlet容器内部又是单例多线程的,对多个网页的同一请求采取多线程方式快速处理,在使用时要注意线程安全问题。

    二、自定义Servlet需要的步骤:

          1、自定义Servlet继承于HttpServlet,重写doGet()和doPost()

          2、在WebRoot的WEB-INF的web.xml下配置Servlet

          以下为配置格式:

    <servlet>
        <servlet-name>别名(任取,但需与以下servlet-mapping的别名一致)</servlet-name>
        <servlet-class>com.firstServlet</servlet-class>    <!--(项目工程src下的类路径)-->
      </servlet>
    
      <servlet-mapping>
        <servlet-name>别名</servlet-name>
        <url-pattern>/firstServlet</url-pattern>	        <!--设置浏览器访问的路径-->
        <!--真正浏览器的访问路径还得在前面加上项目名即http:localhost:8080/项目名/此处路径-->
      </servlet-mapping>	

        1、 若想设置Servlet在服务器启动时就创建只需在<servlet>里添加:<load-on-startup>0</load-on-startup>即可,此处0为启动

               优先级,Servlet启动顺序按优先级从小到大依次启动(优先级必须为非负整数)。

        2、 配置Servlet初始化参数方法:

        <servlet>
    
        .......
    
         <init-param>
    
         <param-name>paramName</param-name>
    
         <param-value>paramValue</param-value>
    
         </init-param>
    
         </servlet>

    三、Servlet生命周期

        init() :进行初始化工作

        service():提供服务响应请求,自动判断调用doGet或者doPost方法

        destory():Servlet被销毁的时候调用

        调用顺序:构造器->init()->service()->destory()

    四、Servlet的常用方法:

        doGet(HttpServletRequest request, HttpServletResponse response):处理get请求,默认启动方

        doPost(HttpServletRequest request, HttpServletResponse response):处理post请求

        getServletConetext():获取ServletContext对象

    五、ServletContext对象(上下文对象)

        服务器会为每个web项目创建一个ServletContext对象,该对象在服务器启动时创建,在服务器关闭时销毁。

        作用:进行Servlet之间的数据传递

        ServletContext对象拥有的方法:

                    setAttribute(String name,Object Key):使用键值对方式存入数据对象

                    getAttribute(String name):通过键名取出数据对象

                    removeAttribute(String name):通过键名删除已存入的数据对象

                    getAttributeNames():取出所有键名

                    getInitParameter(String name):通过键名取出全局初始化参数值(ServletConfig里同样方法获得当前Servlet

                                                                         初始化参数)

             全局初始化参数配置:

        <web-app>
            <context-param>
                <param-name>cluster</param-name>
                <param-value>false</param-value>
            </context-param>
            .......
        </web-app>

                   getRealPath(String path):通过文件名获取文件的绝对路径

                   getResourceAsStream(String path):通过文件名获取文件的输入流对象(InputStream)

                   getResource(String path):通过文件名获取文件的网址URL对象

                   getResourcePaths(String path):通过文件名获取当前文件名目录下的所有资源的路径的Set集合

    六、获取src路径(类路径WEB-INFclasses)下的资源:所有src下的文件都会在映射在WEB-INFclasses里

           第一种:getClass().getClassLoader().getResourceAsStream是从src路径(即classes路径)开始的,同时路径不用"/"开头

             第二种:getClass().getResourceAsStream是分俩种情况:
                                          "/"开头是从src路径(即classes路径)开始的,
                                           不用"/"开头是从当前包路径下开始的

              若想返回上级路径使用../

  • 相关阅读:
    MATLAB新手教程
    关于Core Location-ios定位
    《TCP/IP具体解释卷2:实现》笔记--IP的分片和重装
    利用JasperReport+iReport进行Web报表开发
    Surface、SurfaceView、SurfaceHolder及SurfaceHolder.Callback之间的关系
    Openfire开发配置,Openfire源码配置,OpenFire二次开发配置
    在Activity中为什么要用managedQuery()
    24点经典算法
    linux概念之时间与时区
    java实现第五届蓝桥杯大衍数列
  • 原文地址:https://www.cnblogs.com/MrQlyn/p/10236324.html
Copyright © 2020-2023  润新知