Servlet配置和三种实现方式

老版的JavaWeb项目中,配置servlet需要在web.xml中定义

    
        demo1
        ServletDemo
    
    
        demo1
        /demo
    

浏览器访问的是demo得到名为demo1的servlet,再通过名为demo1的servlet访问的是ServletDemo这个类

在最新的几个版本Java中,实现JavaWeb项目只需要添加注释,访问的时候直接访问域名后加 /demo1 就能访问到该sevlet。

//@WebServlet({"/demo1","/dd1","ddd1"})
//@WebServlet("/user/*")
//@WebServlet("*.do")
@WebServlet("/demo1")

 

例子:

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebServlet;
import java.io.IOException;
@WebServlet("/demo1")
public class ServletDemo1 implements javax.servlet.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("this is servlet");
    }

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

    @Override
    public void destroy() {

    }
}

可以看到ServletDemo1接口Servlet 重写的几个方法中-也就是servlet的生命周期

init:初始方法,在servlet初次创建时被调用

service:每次访问时被调用

destory:关闭时被调用(关闭之前)

还有第二种方式实现

import javax.servlet.GenericServlet;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebServlet;
import java.io.IOException;
@WebServlet("/demo2")
public class ServletDemo2 extends GenericServlet {
    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("demo2...");
    }
}

GenericServlet 将servlet接口中的方法默认空实现,只是将service()方法作为抽象,将来定义servlet类可继承GenericServlet,实现service()即可

第三种 继承 HttpServlet

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

@WebServlet("/demo3")
public class ServletDemo3 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("doget");
    }

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



    
    Title


    

复写doGet和doPost即可 ,简化操作

你可能感兴趣的:(JAVA)