Servlet——入门详解

1、什么是Servlet ?

  •         Servlet是JavaEE规范之一,规范就是接口;
  •         Servlet是JavaWeb三大组件之一。三大组件分别是:Servlet程序、Filter过滤器、Listener监听器。
  •         Servlet是运行在服务器上的一个java小程序,它可以接收客户端发来的请求,并相应数据给客户端。

2、手动实现Servlet程序

  •         编写一个类去实现Servlet接口;
  •         实现service方法,处理请求,并相应数据;
  •         到web.xml中配置Servlet程序的访问地址。

示例代码:

public class HelloServlet implements Servlet {
/**
    service方法是专门用来处理请求和响应的
   
    */
    @override
    public void service(ServiceRequest serviceRequest,ServiceResponse serviceResponse) throws ServiceException,IOException {
        System.out.println("Hello Servlet 被访问了!");
    }
}

web.xml中的配置:

<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web- app_4_0.xsd" version="4.0">
    <!-- servlet 标签给Tomcat配置Servlet程序-->
    <servlet>
    <!--servlet-name 标 签 Servlet 程 序 起 一 个 别 名 ( 一 般 是 类 名 ) --> 
<servlet-name>HelloServlet</servlet-name> 
<!--servlet-class 是 Servlet 程 序 的 全 类 名 --> 
<servlet-class>com.atguigu.servlet.HelloServlet</servlet-class>
    </servlet>
<!--servlet-mapping 标 签 给 servlet 程 序 配 置 访 问 地 址 --> 
<servlet-mapping> 
<!--servlet-name 标 签 的 作 用 是 告 诉 服 务 器 , 我 当 前 配 置 的 地 址 给 哪 个 Servlet程 序 使 用 --> <servlet-name>HelloServlet</servlet-name> 
<!--url-pattern 标 签 配 置 访 问 地 址 <br/> / 斜 杠 在 服 务 器 解 析 的 时 候 , 表 示 地 址 为 : http://ip:port/ 工 程 路 径<br/>/hello表 示 地 址 为 : http://ip:port/ 工 程 路 径 /hello <br/>--> 
<url-pattern>/hello</url-pattern> 
</servlet-mapping> 
</web-app>

3、Servlet的生命周期

  •         执行Servlet构造方法;
  •         执行init初始化方法;

        (第一步、二步,是在第一次访问的时候创建Servlet程序会调用)

  •         执行service方法;

        (第三步,每次访问都会调用)

  •         执行destroy销毁方法,最后一步会在web工程停止的时候调用。

4、GET和POST请求的分发处理

public class HelloServlet implements Servlet {
/**
    service方法是专门用来处理请求和响应的
    */
    
    @Override
    public void service(ServletRequest servletRequest,ServletResponse servletResponse) throws ServletException,IOException {
        System.out.println("Servlet 被访问了!");
        //类型转换
        HttpServletRequest httpServletRequest = (HttpServletRequest)servletRequest;
        //获取请求的方式
        String method = httpServletRequest.getMethod();
        if("GET".equals(method)) {
            doGet();
        }else if("POST".equals(methos)){
            doPost();    
        }
    }

//    自己定义一下方法
    public void doGet() {
        System.out.println("执行了get请求");
    }
    public void doPost() {
        System.out.println("执行了post请求");
    }
}

5、通过继承HttpServlet实现Servlet程序

        一般在实际的项目开发过程中,都是使用继承HttpServlet类的方式去实现Servlet程序。

        编写一个类去继承HttpServlet类

        根据业务需要重写doGet或doPost方法

        到web.xml中配置Servlet程序的访问地址

        Servlet类的代码:

public class HelloServlet2 extends HttpServlet {
    //doGet() 在get请求的时候会被调用

    @Override
    protected void doGet(HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse) throws ServletException,IOException {
        System.out.println("doGet方法执行了!!!");    
    }
 //doPost() 在get请求的时候会被调用

    @Override
    protected void doPost(HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse) throws ServletException,IOException {
        System.out.println("doPost方法执行了!!!");    
    }
}

web.xml中的配置:

<servlet> 
    <servlet-name>HelloServlet2</servlet-name>
    <servlet-class>com.atguigu.servlet.HelloServlet2</servlet-class> 
</servlet> 
<servlet-mapping> 
<servlet-name>HelloServlet2</servlet-name> 
<url-pattern>/hello2</url-pattern> 
</servlet-mapping>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值