servlet基础知识

本文详细介绍了Java Servlet的概念,它是用于处理HTTP请求的服务器端程序。Servlet具有跨平台性,通常以单例模式运行。文章讲解了三种创建Servlet的方式:直接实现Servlet接口、继承GenericServlet和HttpServlet,并展示了具体代码示例。此外,还阐述了Servlet的生命周期,包括init()、service()和destroy()方法的调用时机。
摘要由CSDN通过智能技术生成

servlet的定义

servlet又叫java服务器小程序,是使用java编写,运行在web服务器上的程序应用,它是浏览器或着其他http客户端请求和http服务器上的数据库和或应用程序之间的中间层。

servlet的特点

  1. servlet在web服务器空间内完成请求处理,没有必要创建新的进程单独处理。
  2. servlet独立于平台,因为它们是使用java编写的。
  3. serlet是按照servlet规范学习的,是之后java开发规范的基础。
  4. 针对多个servlet请求,通常情况下,服务器只会创建一个servlet实例对象,即servlet实例对象一旦创建,就会驻留在内存,为后续其他请求服务,只有当web容器推出/reload该web应用,servlet对象才会被销毁(单例模式,故要注意线程并发问题)。

servlet开发的三种方式

  1. 实现servlet接口。
  2. 通过继承GenricServlet。
  3. 通过HttpServlet。

servlet实现了两个类,GenricServlet和过HttpServlet

servlet的生命周期

  1. servlet 初始化后即调用init()方法(该方法会将servlet加载到内存,该方法不是每次都调用的,只有在web服务未加载servlet才会调用,即不是一个请求一次调用)。
  2. 然后servlet调用service()方法处理客户端请求。
  3. 在servlet实例(web应用reload或关闭tomcat)销毁之前会调用destroy()方法。
  4. 最后servlet会被jvm的垃圾回收器进行垃圾回收。

实现案例的详解

  1. 实现servlet接口
package com.spy;

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


public class ServletOne implements Servlet {
    /**
     * 初始化
     *
     * @param config
     * @throws ServletException
     */
    public void init(ServletConfig config) throws ServletException {

    }

    /**
     * 获取servlet配置
     *
     * @return
     */
    public ServletConfig getServletConfig() {
        return null;
    }

    /**
     * 服务函数,逻辑代码
     *
     * @param req
     * @param res
     * @throws ServletException
     * @throws java.io.IOException
     */
    public void service(ServletRequest req, ServletResponse res) throws ServletException, java.io.IOException {
        System.out.println("hello world");
        res.getWriter().println("hello world");
    }


    public java.lang.String getServletInfo() {
        return null;
    }

    /**
     * 销毁servlet
     *
     * @return
     */
    public void destroy() {

    }
}
  1. 通过继承GenricServlet。
package com.spy;

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

public class ServletTwo extends GenericServlet{
    public void service(ServletRequest req, ServletResponse res) throws ServletException, java.io.IOException {
        System.out.println("hello world two");
        res.getWriter().println("hello world two");
    }
}
  1. 通过HttServlet。
package com.spy;

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

/**
 * 在httpServlet中,对post和get提交进行了分别处理
 */
public class ServletThird extends HttpServlet {

    public void doGet(HttpServletRequest request,
                      HttpServletResponse response)
            throws ServletException, IOException {
        System.out.println("hello world third");
        response.getWriter().println("hello world third==>get");
    }

    public void doPost(HttpServletRequest request,
                       HttpServletResponse response)
            throws ServletException, IOException {
        System.out.println("hello world third");
        response.getWriter().println("hello world third==>post");
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

spydxk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值