• Servlet


    Servlet

    Servlet容器为JavaWeb应用提供运行时环境,它负责管理Servlet和JSP的生命周期,以及管理它们的共享数据。

    Servle容器可完成的功能:

    1. 创建请求和响应的对象;
    2. 为Servlet创建或分配一个线程;
    3. 调用servlet的service()方法;
    4. 把请求和响应对象的引用作为参数传递给servlet

    Servlet生命周期的方法

    Servlet是单实例,线程安全的。

    1. Servlet类加载加载:
    2. 构造器---创建实例 : 第一次请求Servlet时,创建Servlet实例,调用构造器;
    3. init  --- 初始化当前Servlet: 只被调用一次,创建好实例后立即被调用,初始化Servlet;
    4. Service---处理请求  : 多次调用,每次请求调用Service方法;
    5. destroy: 之辈调用一次,卸载的时候调用

    代码如下:

     1 package com.nomico.servlet1;
     2 
     3 import java.io.IOException;
     4 
     5 import javax.servlet.Servlet;
     6 import javax.servlet.ServletConfig;
     7 import javax.servlet.ServletException;
     8 import javax.servlet.ServletRequest;
     9 import javax.servlet.ServletResponse;
    10 
    11 public class HelloServlet implements Servlet{
    12 
    13     @Override
    14     public void destroy() {
    15     }
    16     
    17     @Override
    18     public ServletConfig getServletConfig() {
    19         return null;
    20     }
    21     
    22     @Override
    23     public String getServletInfo() {
    24         return null;
    25     }
    26     
    27     @Override
    28     public void init(ServletConfig arg0) throws ServletException {
    29         
    30     }
    31     
    32     @Override
    33     public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
    34         
    35     }
    36 
    37 }

    看看容器如何处理请求:

     

     

     我的总结:

     

    Web.xml---项目部署文件,必须存放在WEB-INF下

    Servlet程序必须在WEB应用程序的web.xml文件中进行注册和映射其访问路径,才可以被Servlet引擎加载和被外界访问。

    1 < Servlet>, <Servlet-mapping>:

    <servlet>元素用于注册一个Servlet,

    servlet-mapping>元素用于映射一个已注册的Servlet的一个对外访问路径

    <servlet>
            <servlet-name>loginServlet</servlet-name>    
            <servlet-class>com.nomico.servlet1.LoginServlet</servlet-class>
        </servlet>
        
        <servlet-mapping>
            <servlet-name>loginServlet</servlet-name>    
            <url-pattern>/loginServlet</url-pattern>
        </servlet-mapping>

    2 ServletConfig:  获取Servlet初始化参数,并且可以获取ServletContext 对象:

    <servlet>
            <servlet-name>loginServlet</servlet-name>    
            <servlet-class>com.nomico.servlet1.LoginServlet</servlet-class>
            <init-param>
                <param-name>user</param-name>
                <param-value>root</param-value>
            </init-param>
            <init-param>
                <param-name>password</param-name>
                <param-value>1230</param-value>
            </init-param>
        </servlet>

    3 ServletContext :  application 对象(Web应用程序对象)---获取当前WEB应用的初始化参数。

                              -----相当于全局变量,范围更广。

    Servlet引擎为每个WEB应用程序都创建一个对应的ServletContext对象,ServletContext对象被包含在ServletConfig对象中,调用ServletConfig.getServletContext方法可以返回ServletContext对象的引用。 由于一个WEB应用程序中的所有Servlet都共享同一个ServletContext对象,所以,ServletContext对象被称之为 application 对象(Web应用程序对象)。

    <context-param>
            <param-name>user</param-name>
            <param-value>wgs</param-value>
        </context-param>
        
        <context-param>
            <param-name>password</param-name>
            <param-value>920614</param-value>
        </context-param>

    获取;

    ServletContext servletContext = servletConfig.getServletContext();
    String user
    = servletContext.getInitParameter("user");

     

  • 相关阅读:
    少年中国说--正能量传播
    刚刚加入程序员的行列,希望通过博客的形式记录自己在这个领域的点点滴滴。同时分享自己的心得体会。
    java中的路径问题(getResourceAsStream/tomcat/maven/getContextpath)等各种路径问题
    java的jdbc
    maven的插件
    maven的仓库
    java9新特性
    java8新特性
    java的网络编程
    java的多线程juc
  • 原文地址:https://www.cnblogs.com/noaman/p/6642614.html
Copyright © 2020-2023  润新知