美文网首页
黑猴子的家:JavaWeb 之 Servlet 初始化认识

黑猴子的家:JavaWeb 之 Servlet 初始化认识

作者: 黑猴子的家 | 来源:发表于2019-12-12 13:18 被阅读0次

    1、Servlet 概述

    Why ?

    注册信息如何插入数据库表?


    What ?

    Servlet :服务器端小程序 Server + Applet
    具体:javax.servlet.Servlet接口及其子接口,也可以指实现了Servlet接口的实现类


    2、Servlet 使用案例一(web_servlet01)

    通过web_servlet01 初体验 Servlet web项目
    Hello World
    Servlet接口扩展
    为什么要扩展Servlet接口?封装不常用方法
    实现类体系
    GenericServlet实现Servlet接口
    HttpServlet继承GenericServlet
    创建Servlet的最终方式
    继承HttpServlet

    1)Servlet的使用三步曲

    (1)创建一个类
    实现接口:Servlet或继承HttpServlet

    (2)在web.xml中“注册”这个实现类

    <servlet>
        <servlet-name>LoginServlet</servlet-name>
        <servlet-class>com.alex.web.servlet.LoginServlet</servlet-class>
        <!-- load-on-startup 值大于等于0的整数值,表示服务器启动时创建Servlet,值越小优先级越高 -->
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>LoginServlet</servlet-name>
        <url-pattern>/LoginServlet</url-pattern>
    </servlet-mapping>
    

    (3)Tomcat
    (Servlet容器)会创建实现类对象,并调用相应的生命周期方法

    2)生命周期方法

    (1)构造器
    (2)init()方法
    (3)service()方法
    (4)destroy()方法

    3)执行过程

    第一次请求
    创建对象
    执行init()方法
    执行service()方法
    后面请求
    执行service()方法
    对象销毁前
    执行destroy()方法

    4)Servlet对象创建特殊情况
    <!-- load-on-startup 值大于等于0的整数值,表示服务器启动时创建Servlet,值越小优先级越高 -->
    <load-on-startup>1</load-on-startup>
    
    5)code

    (1)LoginServlet

    package com.alex.web.servlet;
    import java.io.IOException;
    import javax.servlet.Servlet;
    import javax.servlet.ServletConfig;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
    import javax.servlet.http.HttpServlet;
    //Servlet 对象时单例的,伪单例
    //public class LoginServlet implements Servlet{
    public class LoginServlet extends HttpServlet{
        //声明周期方法
        //生命周期:表示对象从创建、初始化、使用、销毁过程
        //创建对象
        public LoginServlet(){
            System.out.println("LoginServlet.....");
        }
        //销毁对象时使用
        @Override
        public void destroy() {
            System.out.println("destroy ......");
        }
        //初始化对象
        //初始化方法只执行一次
        @Override
        public void init(ServletConfig servletconfig) throws ServletException {
            System.out.println("init ... ...");
        }
        //处理请求使用的
        @Override
        public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {
            System.out.println("service ... ...");
            response.getWriter().println("Hello World... ...");
        }
    }
    

    (2)web.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns="http://xmlns.jcp.org/xml/ns/javaee"
        xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
        id="WebApp_ID" version="3.1">
        <display-name>web_servlet01</display-name>
        <servlet>
            <servlet-name>LoginServlet</servlet-name>
            <servlet-class>com.alex.web.servlet.LoginServlet</servlet-class>
              <!-- load-on-startup 值大于等于0的整数值,表示服务器启动时创建Servlet,值越小优先级越高 -->
            <load-on-startup>1</load-on-startup>
        </servlet>
        <servlet-mapping>
            <servlet-name>LoginServlet</servlet-name>
            <url-pattern>/LoginServlet</url-pattern>
        </servlet-mapping>
        <welcome-file-list>
            <welcome-file>index.jsp</welcome-file>
        </welcome-file-list>
    </web-app>
    

    (3)index.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
    "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Hello World</title>
    </head>
    <body>
        <a href="LoginServlet">LoginServlet</a>
    </body>
    </html>
    

    3、Servlet 执行过程分析

    相关文章

      网友评论

          本文标题:黑猴子的家:JavaWeb 之 Servlet 初始化认识

          本文链接:https://www.haomeiwen.com/subject/oanzgctx.html