一、servlet入门:hello servlet

139 阅读1分钟
  1. 创建工程
  2. 添加web框架 image.png
  3. 配置tomcat image.png

点击+号 选择artifact 网站发布方式: 以war包解压的方式 war exploded image.png

使用热加载方式 update classes and resources image.png

  1. 添加servlet-api.jar(在tomcat/lib)下 image.png

  2. web-inf下创建lib文件夹,将复制好的jar包粘贴至文件夹内 image.png

  3. 将jar包添加至工程中 image.png

  4. 在src中添加com.ljysty.servlet.helloServlet.java文件

package com.ljysty.servlet;


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

/**
 *  1. 开发一个 Servlet 需要实现 Servlet 接口
 *  2. 实现 Servlet 接口的方法(5个)
 */
public class helloServlet implements Servlet {
    /**
     * 1. 初始化 Servlet
     * 2. 当 tomcat 创建 helloServlet 实例时,会调用 init 方法
     * 3. 该方法只会被调用一次
     */

    @Override
    public void init(ServletConfig servletConfig) throws ServletException {
        System.out.println("init()...被调用");
    }
    
    
    /**
     * 返回 ServletConfig 也就是返回 Servlet 的配置
     */

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


    /**
     *  1. service 方法处理浏览器的请求(包括 get/post)
     *  2. 当浏览器每次请求 Servlet 时,就会调用一次 service
     *  3. 当tomcat调用该方法时,会把http请求的数据封装成实现 ServletRequest 接口的 request 对象
     *  4. 通过 ServletRequest 对象, 可以得到用户提交的数据
     *  5. ServletResponse 对象可以用于返回数据给 tomcat => 浏览器
     */

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

    /**
     * 返回 servlet 信息,使用较少
     * @return
     */
    @Override
    public String getServletInfo() {
        return null;
    }


    /**
     *  1. 该方法是在servlet销毁时被调用
     *  2. 只会调用一次
     */
    @Override
    public void destroy() {

    }
}
  1. 在web.xml中配置 HelloServlet, 即:给 HelloServlet 提供对外访问地址
<?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">
        <!--web.xml 主要用来配置该 web 应用使用到的 Servlet-->
        
        <!--1. servlet-name: 给 servlet 取名(程序员决定),该名字唯一-->
        <!--2. servlet-class: Servlet 的类的全路径:Tomcat 在反射生成该 Servlet 需要使用-->
        <!--3. servlet-mapping 中的 servlet-name 需要与 servlet 中的 servlet-name 名称保持一致-->
        <!--4. url-pattern: 该 servlet 访问的url的配置(路径)(路径取名程序员决定  斜杠 '/' 必须要写)-->
        <!--5. 访问方式: http://localhost:8080/servlet_helloServlet/helloServlet-->
        
        <!--配置helloServlet-->
        <servlet>
                <servlet-name>helloServlet</servlet-name>
                <servlet-class>com.ljysty.servlet.helloServlet</servlet-class>
        </servlet>
        <servlet-mapping>
                <servlet-name>helloServlet</servlet-name>
                <url-pattern>/helloServlet</url-pattern>
        </servlet-mapping>
</web-app>
  1. 访问http://localhost:8080/servlet_helloServlet/helloServlet 注意: init()方法只访问一次,service每次请求都会调用 image.png image.png