Servlet基础

快速入门

创建maven web项目,导入Servlet依赖坐标:

   
        
            javax.servlet
            javax.servlet-api
            4.0.1
            provided

        
    

同时在pom.xml文件里配置tomcat插件:
 

 
        
            
                org.apache.tomcat.maven
                tomcat7-maven-plugin
                2.2
                
                    
                    9090
                    
                    /
                
            
        
    

创建一个类,实现Servlet接口,重写方法(service),添加访问路径:

package org.example;

import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import java.io.IOException;
@WebServlet(value = "/demo1")//访问路径
public class demo1 implements Servlet {
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {

    }

    @Override
    public ServletConfig getServletConfig() {
        return null;
    }

    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("Servlet成功访问..");
    }

    @Override
    public String getServletInfo() {
        return null;
    }

    @Override
    public void destroy() {

    }
}

如果成功访问Servlet,控制台输出service方法下的信息。

运行并访问路径:

Servlet基础_第1张图片

 此时控制台输出:

Servlet基础_第2张图片

 

   Servlet由Web服务器创建,由Web服务器调用。

生命周期

加载和实例化:默认情况,Servlet第一次被访问,有容器创建Servlet对象;

初始化:实例化之后,容器调用init初始化对象,完成一些配置工作,该方法只使用一次;

请求处理:每次请求Servlet,容器都会调用service方法对请求进行处理;

服务终止:当需要释放内存或容器关闭时,容器会调用service方法完成资源释放。

新建一个类,完成下列方法:

package org.example;

import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import java.io.IOException;

@WebServlet(value = "/demo2")//访问路径
public class demo2 implements Servlet {
    /**
     * 初始化方法 默认情况下第一次被访问调用 只调用一次
     * @param servletConfig
     * @throws ServletException
     */
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {
        System.out.println("初始化..");


    }

    @Override
    public ServletConfig getServletConfig() {
        return null;
    }

    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("Servlet成功访问..");
    }

    @Override
    public String getServletInfo() {
        return null;
    }

    @Override
    public void destroy() {
        System.out.println("销毁中..");

    }
}

运行服务器..

第一次访问,控制台输出,同时调用service方法:

Servlet基础_第3张图片

第二次访问,控制台输出:

Servlet基础_第4张图片 

这里init方法只调用一次,可以使用

* loadOnStartup:控制次此方法调用的时机

 重新启动服务器,控制台输出:

 关闭服务器,控制台输出:

Servlet基础_第5张图片

XML配置Servlet

Servlet从3.0以后开始支持注解配置,3.0版本只支持XML配置文件的配置方式

编写Servlet类:

package org.example;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class demo0 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("get..");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("post..");
    }
}

在web.xml配置Servlet:





    
    
        demo0
        org.example.demo0
    


    
    
        demo0
        /demo0
    

启动tomcat服务器,开启访问:

Servlet基础_第6张图片

控制台输出:

Servlet基础_第7张图片 

 部分代码:

部分代码icon-default.png?t=N2N8https://gitee.com/Rkun18/javaweb-demo/tree/master/web-demo

你可能感兴趣的:(Web,servlet)