JavaWeb之Servlet(day01)第一个Servlet程序(不推荐实现Servlet接口,推荐继承类)

Servlet

约定大于配置

定义:

建立在服务器Tomcat基础之上,运行在服务器上的一个小程序。接受客户端发来的请求,响应数据给客户端。
Servlet是javaweb三大组件之一。servlet程序,filter过滤器,listener监听器

一. 实现Servlet接口步骤(不推荐)

  1. 编写类 实现Servlet接口
    public class HelloServlet implements Servlet {

  2. 重写service()方法,处理请求并相应数据
    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
    System.out.println(“hello servlet被客户端访问了,现在我这里的Tomcat服务器正在响应。。”);
    }

  3. web.xml配置servlet程序访问地址,配置如下:

 <!--    servlet给Tomcat配置servlet程序-->
    <servlet>
<!--        servlet程序起别名(类名)-->
        <servlet-name>HelloServlet</servlet-name>
        <servlet-class>com.lwt.HelloServlet</servlet-class>
    </servlet>

<!--    servlet-mapping标签给servlet程序配置访问地址-->
    <servlet-mapping>
<!--        servlet-name标签的作用:告诉服务器当前配置的地址给哪个servlet程序使用-->
        <servlet-name>HelloServlet</servlet-name>
<!--        配置访问地址 以斜杠打头-->
        <url-pattern>/hello</url-pattern>
    </servlet-mapping>

生命周期

1.执行servlet构造器方法(单例)
2.执行init初始化方法。前两步是在第一次访问时创建servlet程序调用一次
3.执行service方法。每次访问都会调用service()方法
4.执行destroy方法。关闭服务器时执行

public HelloServlet() { // 1
    System.out.println("1.构造器方法");
}

@Override
public void init(ServletConfig servletConfig) throws ServletException { // 2
    System.out.println("2.初始化方法");
}
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException { // 3
    System.out.println("3.hello servlet被客户端访问了,现在我这里的Tomcat服务器正在响应。。");
}
@Override
public void destroy() { // 4
    System.out.println("4.销毁方法");
}

请求分发处理

通过在service方法中获取post/get请求的方式,调用不同的请求方法。
表单提交时,method有get/post两种请求。

<!--表单提交默认method是get请求,所以才可以不写-->
<form action="http://localhost:8080/hello" method="get">
    <input type="submit">
</form>

1.在实现servlet接口的类中需要将service方法中的参数servletRequset向下转型为HttpServletRequest子接口,该子接口有getMethod()方法。
2.获取请求的方式getMethod()方法

@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException { // 3
    System.out.println("3.hello servlet被客户端访问了,现在我这里的Tomcat服务器正在响应。。");
    HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest;
    String method = httpServletRequest.getMethod();// 获取表单中的get/post请求方法
    if ("GET".equals(method)) {
        System.out.println("get请求");
    } else if ("POST".equals(method)) {
        System.out.println("post请求");
    }
}

但以上两个步骤的代码是在一个方法中做get/post请求两件事,不推荐。
我们推荐:创建doGet()和doPost()两个方法

public void doGet(){
        System.out.println("get请求");
        System.out.println("get请求");
    }
    public void doPost(){
        System.out.println("post请求");
        System.out.println("post请求");
    }

二.实现Servlet程序(推荐继承类)

HttpServlet类

开发中,推荐使用继承HttpServlet类的方式去实现Servlet程序
步骤:

  1. 编写类继承HttpServlet类
public class HelloHttpServlet3 extends HttpServlet {
  1. 根据业务重写doGet、doPost方法
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("hello httpServlet3的doPost方法");
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("hello httpServlet3的doGet方法");
    }
  1. 在web.xml中配置servlet程序的访问地址
<servlet>
        <servlet-name>HelloHttpServlet3</servlet-name>
        <servlet-class>com.lwt.HelloHttpServlet3</servlet-class>
    </servlet>
    
<!--标签给servlet程序 配置访问地址-->
    <servlet-mapping>
        <servlet-name>HelloHttpServlet3</servlet-name>
        <!--        配置访问地址 以斜杠打头-->
        <url-pattern>/hello3</url-pattern>
<!--        http://localhost:8080/hello3-->
    </servlet-mapping>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值