day11-Servlet01( 二 )


文章插图

  • 在src包下面创建HelloServlet.java,并实现Servlet接口
    day11-Servlet01

    文章插图
    package com.li.servlet;import javax.servlet.*;import java.io.IOException;/** * 1.开发一个servlet,需要实现Servlet接口 * 2.实现Servlet接口的方法:一共有5个 */public class HelloServlet implements Servlet {/*** 1.初始化 Servlet* 2.当创建HelloServlet实例时,会调用init方法* 3.该方法只会被调用一次** @param servletConfig* @throws ServletException*/@Overridepublic void init(ServletConfig servletConfig) throws ServletException {System.out.println("init() 被调用");}/*** 返回ServletConfig对象 也就是返回Servlet的配置** @return*/@Overridepublic ServletConfig getServletConfig() {return null;}/*** 1.service方法处理浏览器的请求(包括get/post)* 2.当浏览器每次请求Servlet时,就会调用一次server方法* 3.当Tomcat调用该方法时,会把http请求的数据封装成 实现了ServletRequest接口 的request对象* 4.通过servletRequest对象,就可以得到用户提交的数据* 5.servletResponse对象可以用于返回数据给Tomcat-->浏览器** @param servletRequest* @param servletResponse* @throws ServletException* @throws IOException*/@Overridepublic void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {System.out.println("hi HelloServlet~");}/*** 返回servlet的信息,使用较少** @return*/@Overridepublic String getServletInfo() {return null;}/*** 1.该方法是在servlet被销毁时,被tomcat调用* 2.只会调用一次*/@Overridepublic void destroy() {}}
  • 实现了接口之后,在web.xml配置HelloServlet,即给HelloServlet提供对外的访问地址
    目的是为了告诉Tomcat服务器,HelloServlet在哪里

    day11-Servlet01

    文章插图
    <?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--><!--配置HelloServlet--><!--解读:1.servlet-name:给Servlet取名(任意),该名字唯一2.servlet-class:Servlet的类的全路径,Tomcat在反射生成该Servlet类实例时需要使用3.servlet-mapping里的servlet-name要和上面的servlet-name保持一致4.url-pattern:这个就是该Servlet访问的url的配置(路径)5.这时我们应该这样访问Servlet:http://localhost:8080/web应用名/helloServlet5.url-pattern的取名也是随意的(注意加上斜杠)--><servlet><servlet-name>HelloServlet</servlet-name><servlet-class>com.li.servlet.HelloServlet</servlet-class></servlet><servlet-mapping><servlet-name>HelloServlet</servlet-name><url-pattern>/helloServlet</url-pattern></servlet-mapping></web-app>
    设置 快捷键ctrl+/ 可以在当前位置注释,而不是在行

    day11-Servlet01

    文章插图
  • 访问HelloServlet(记得要reploy或者restart)
    可以自己配置快捷键启动

    day11-Servlet01

    文章插图
    浏览器访问:
    day11-Servlet01

    文章插图
    后台输出:可以看到init方法只调用了一次,而每次访问都会调用server方法
    day11-Servlet01

    文章插图
  • 4.浏览器调用Servlet流程分析

    经验总结扩展阅读