Servlet入门

Servlet

servlet applet:运行在服务器端的小程序
  • servlet 其实就是一个接口,定义了java类被浏览器访问到的规则。
  • Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向浏览器输出数据),需要完成以下2个步骤:
      1、编写一个Java类,实现servlet接口。
      2、把开发好的Java类部署到web服务器中。
  • Java Servlet是和平台无关的服务器端组件,它运行在Servlet容器中。Servlet容器负责Servlet和客户的通信以及调用Servlet的方法,Servlet和客户的通信采用“请求/响应”的模式。
    Servlet可完成如下功能:
    1、创建并返回基于客户请求的动态HTML页面。
    2、创建可嵌入到现有HTML 页面中的部分HTML 页面(HTML 片段)。
    3、与其它服务器资源(如数据库或基于Java的应用程序)进行通信

Servlet容器响应客户请求的过程:

在这里插入图片描述
在这里插入图片描述

实现Servlet有三种方式:

实现javax.servlet.Servlet接口;
继承javax.servlet.GenericServlet类;
继承javax.servlet.http.HttpServlet类;

完成Servlet需要分为两步:

1、编写Servlet类;
2、在web.xml文件中配置Servlet;

创建第一个servlet程序:HelloServlet.java
  public class HelloServlet implements Servlet {
  public HelloServlet(){
    System.out.println("HelloServlet construct....");
  }
  @Override
  public void destroy() {
    System.out.println("destroy....");
  }
  @Override
  public ServletConfig getServletConfig() {
    System.out.println("getServletConfig....");
    return null;
  }
  @Override
  public String getServletInfo() {
    System.out.println("getServletInfo....");
    return null;
  }
  @Override
  public void init(ServletConfig arg0) throws ServletException {
    System.out.println("init....");
  }
  @Override
  public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
    System.out.println("service....");
  }
}
在web.xml中配置和映射servlet
     <!-- 配置和映射servlet -->
     <servlet>
     <!-- servlet注册名 -->
       <servlet-name>helloServlet</servlet-name>
       <!-- servlet的全类名 -->
       <servlet-class>org.lanqiao.javaweb.servlet.test.HelloServlet</servlet-class>
  </servlet>
  <servlet-mapping>
     <!-- 需要和关联的servlet节点的servlet-name子节点的内容一致 -->
     <servlet-name>helloServlet</servlet-name>
     <!-- 映射的具体的访问路径:/代表当前WEB应用的根目录 -->
     <url-pattern>/hello</url-pattern>
  </servlet-mapping> 
<servlet>:指定HelloServlet这个Servlet的名称为hello;
<servlet-mapping>:指定/hello访问路径所以访问的Servlet名为hello。

servlet生命周期

1、 构造器:只被调用一次。当第一次请求Servlet时,创建Servlet的实例,调用构造器。说明Servlet是单实例的
2、 init:只被调用一次,在创建好实例后立即被调用,用于初始化当前Servlet
3、 Service:被多次调用,每次请求都会调用service方法,实际用于相应请求
4 、destroy:Servlet是不会轻易离去的,通常都是在服务器关闭时Servlet才会离去!在服务器被关闭时,服务器会去销毁Servlet,在销毁Servlet之前服务器会先去调用Servlet的destroy()方法

测试生命周期方法

public class HelloServlet implements Servlet {
  public void init(ServletConfig config) throws ServletException {
    System.out.println("Servlet诞生了!");
  }
  public ServletConfig getServletConfig() {return null;}
  public void destroy() {
    System.out.println("Servlet离我们而去了!");
  }
  public String getServletInfo() {return null;}
 
  public void service(ServletRequest req, ServletResponse res)
       throws ServletException, IOException {
    System.out.println("hello i'am servlet!");
  }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值