一、servlet生命周期和三种实现方式,get和post请求区别

本文详细介绍了Servlet的生命周期,包括初始化、服务及销毁过程,并提供了三种开发Servlet的方法:实现Servlet接口、继承GenericServlet及继承HttpServlet。此外,还对比了GET与POST请求的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1,servlet生命周期

  • 当servlet第一次调用的时候会触发init函数,该函数之调用一次把servlet实例装载到内存。
  • 然后去调动servlet的service函数。
  • 第二次访问servlet的时候直接调用service函数。
  • 当web应用reload 或者tomcat关闭或者关机的时候都会调用servlet的destory函数,该函数销毁servlet。

2,开发servlet的三种方式

(1)实现servlet接口
(2)通过继承GenericServlet
(3)通过继承HttpServlet

下面介绍三种实现方式:

※ 第一种:实现servlet接口

1,新建MyServelet类

public class MyServelet implements Servlet {

    // 这个函数用于初始化servlet(类似类构造函数),该函数只会调用一次(当用户第一次访问servlet时被调用)
    @Override
    public void init(ServletConfig arg0) throws ServletException {
        System.out.println("init servlet");
    }

    // 得到servletConfig对象
    @Override
    public ServletConfig getServletConfig() {
        return null;
    }

    // 得到servlet的配置信息
    @Override
    public String getServletInfo() {
        return null;
    }

    // 这个函数用于处理业务逻辑,当用户每访问该servlet时都会被调用。
    // ServletRequest:用于获取客户端浏览器的信息。
    // ServletResponse:用户向客户端(浏览器)返回信息。
    @Override
    public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
        PrintWriter printWriter = res.getWriter();
        printWriter.write("hello word");
        System.out.println("service callback");
    }

    // 释放servlet实例(释放内存)
    // 触发方式1,reload servelt 2,关闭tomcat 3,关机
    @Override
    public void destroy() {
        System.out.println("destory servlet");
    }

}

2,新建web.xml 并配置映射路径

<servlet>
        <!-- 给你的servlet任意取名 -->
        <servlet-name>MyServelet</servlet-name>
        <!-- 指明servlet的路径 包名+路径 -->
        <servlet-class>com.hiveview.test.MyServelet</servlet-class>

    </servlet>
    <servlet-mapping>
        <!-- 给你的servlet任意取名 -->
        <servlet-name>MyServelet</servlet-name>
        <!-- 在浏览器上输入访问该servlet的url 任意的 -->
        <url-pattern>/hiveview</url-pattern>
    </servlet-mapping>

3,启动tomcat服务器在浏览器上输入访问地址:
http://localhost:8080/test/hiveview

※ 第二种实现方式 (继承GenericServlet)

1,新建MyGenericServlet类

/**
 * 这是第二种开发servlet的方法(继承GenericServlet)
 *
 */
public class MyGenericServlet extends GenericServlet {

    @Override
    public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
        PrintWriter printWriter = res.getWriter();
        printWriter.write("hello word");
    }

}

2,在web.xlm配置servlet映射关系

<servlet>
        <!-- 给你的servlet任意取名 -->
        <servlet-name>MyGenericServlet</servlet-name>
        <!-- 指明servlet的路径 包名+路径 -->
        <servlet-class>com.hiveview.test.MyGenericServlet</servlet-class>

    </servlet>
    <servlet-mapping>
        <!-- 给你的servlet任意取名 -->
        <servlet-name>MyGenericServlet</servlet-name>
        <!-- 在浏览器上输入访问该servlet的url 任意的 -->
        <url-pattern>/MyGenericServlet</url-pattern>
    </servlet-mapping>
    <servlet>

3,启动tomcat服务器在浏览器输入访问路径:
http://localhost:8080/test/MyGenericServlet

※ 第三种实现方式(继承HttpServlet)

1,新建类 MyHttpServlet

/**
 * 这是第三种开发servlet方法(通过继承httpServlet)
 * 
 */
public class MyHttpServlet extends HttpServlet {
    // 处理get请求
    // req:用于获得客户端(浏览器)的信息
    // res:用户向客户端(浏览器)返回信息
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doPost(req, resp);
    }

    // 处理post请求
    // req:用于获得客户端(浏览器)的信息
    // res:用户向客户端(浏览器)返回信息
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        PrintWriter writer = resp.getWriter();
        writer.write("hello word");
    }

}

2,在web.xml配置映射信息

<servlet>
        <!-- 给你的servlet任意取名 -->
        <servlet-name>MyHttpServlet</servlet-name>
        <!-- 指明servlet的路径 包名+路径 -->
        <servlet-class>com.hiveview.test.MyHttpServlet</servlet-class>

    </servlet>
    <servlet-mapping>
        <!-- 给你的servlet任意取名 -->
        <servlet-name>MyHttpServlet</servlet-name>
        <!-- 在浏览器上输入访问该servlet的url 任意的 -->
        <url-pattern>/MyHttpServlet</url-pattern>
    </servlet-mapping>

3,启动tomcat服务器在浏览器输入访问地址:
http://localhost:8080/test/MyHttpServlet

项目下载地址:http://download.youkuaiyun.com/detail/tianyejun6/9724871


3,get提交和post提交区别

  1. get安全性小于post因为get会把访问信息暴露在浏览器地址栏。
  2. get提交内容信息一般不要大于2k,post提交内容一般不要大于64k。
  3. 访问速度get大于post。
  4. get可以保留uri中的参数便于保留。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值