初识Servlet

Servlet概述

生命周期方法:
1.void init(ServletConfig):出生后执行一次(仅一次);
2.void service(ServletRequest ruquest,ServletResponse response):每次处理请求时都会被调用;
3.void destroy():死前执行一次;


特性
单例,一个类只有一个对象;当然可能存在多个servlet类!
线程不按例的,所以它效率最高!

Servlet类由我们自己编写,但对象由服务器来创建,并且由服务器来调用相应的方法


一、什么是Servlet

Servlet是Java Web的三大组件之一,它属于动态资源。Servet的作用是处理请求,服务器会把接收到的请求交给Servlet来处理,
在Servlet中通常需要:
1.接收请求数据;
2.处理请求;
3.完成响应。
例如客户端发出登录请求,或者输出注册请求,这些请求都应该由Servlet来完成处理!Servlet需要我们自己来编写,
每个Servlet必须实现javax.servlet.Servlet接口。

二、实现Servlet的方法(由我们自己编写)

实现Servlet有三种方式:
1. 实现javax.servlet.Servlet接口
2. 继承javax.servlet.GenericServlet类
3. 继承javax.http.HttpServlet类

通常我们会继承HttpServlet类来完成我们的Servlet,但学习Servlet还要从java.servlet.Servlet接口开始学。

Servlet.java

public interface Servlet{
    public void init(ServletConfig config) throws ServletException;
    public ServletConfig getServletConfig();
    public void service(Servlet req,ServletResponse res)throws ServletException,IOException;
    public  String getServletInfo();
    public void destroy();
}

Servlet的方法大多数不由我们来调用,而是由tomcat来调用。并且Servlet对象也不由我们来创建,由tomcat来创建!

三、创建Helloservlet应用

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

HelloServet.java

public class HellOServlet implements Servlet{
    public void init(ServletConfig config) throws ServletException{}
    public ServletConfig getServletConfig(){return null;}
    public void destroy(){}
    public String getServletInfo(){return null;}

    public void service(ServletRequest req,ServletRespose res)
    throws ServletException,IOException{
    System.out.println("hello servlet");
    }
}

我们暂时忽略Servlet中其他四个方法,只关心service()方法,因为它是来处理请求的。我们在其中加入一条控制台输出语句!

web.xml(下面内容需要记住)

<servlet>
    <servlet-name>HelloServlet</servlet-name>
    <servlet-class>cn.itcast.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/helloword<url-pattern>
</servlet-mapping>

在web.xml中配置Servlet的目的其实只有一个,就是把访问路径与一个Servlet绑定到一起,上面配置是把访问路径:“/helloword”与“cn.itcast.servlet.HelloServlet”绑定到一起。

  • servlet: 指定HelloServlet这个Servlet的名称为hello:
  • servlet-mapping: 指定/helloword访问路径所访问的Servlet名为hello.
    和通过这个元素关联在一起了!
    接下来,我们编译HelloServlet,注意,编译HelloServlet时需要导入servlet-api.jar,因为Servlet.class等类都在servlet-api.jar中。

猜你喜欢

转载自blog.csdn.net/qq_36213352/article/details/80770061
今日推荐