Servlet

什么是Servlet

运行在服务器中的小应用程序
Servlet是一个接口,定义了一个java类被客户端访问到规则

快速入门

1.写一个java类实现Servlet接口

package cn.ttsx.servlet;

import java.io.IOException;

import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class ServletDemo1 implements Servlet {

    /**
     * 初始化
     * 只能调用一次,当Servlet第一次被访问的时候创建
     * 
     * 
     */
    public void init(ServletConfig config) throws ServletException {
        System.out.println("我只能调用一次");
    }

    /**
     * 提供服务,可以被多次调用,每一次servlet被访问的时候都会调用这个方法
     * 
     */
    public void service(ServletRequest req, ServletResponse res)
            throws ServletException, IOException {
        System.out.println("我可以被多次调用哦");

    }

    /**
     * 销毁
     * 当服务器正常关闭时,调用一次
     * 
     */
    public void destroy() {

        System.out.println("我关闭啦");
    }


    public ServletConfig getServletConfig() {
        return null;
    }

    public String getServletInfo() {
        return null;
    }

}

2.在web.xml配置Servlet的访问方式

    <!-- 创建一个servlet实例 -->
    <servlet>
        <servlet-name>selectDemo1</servlet-name>
        <servlet-class>cn.ttsx.servlet.ServletDemo1</servlet-class>
    </servlet>
    <!-- 提供一个可访问的url地址 -->
    <servlet-mapping>
        <servlet-name>selectDemo1</servlet-name>
        <url-pattern>/hello</url-pattern>
    </servlet-mapping>

3.部署到服务器
4.测试 http://localhost:8080/Servlet/hello

原理(底层通过反射实现)

1.服务器获取到客户端的访问路径
2.去web.xml中查找访问Servlet资源的路径对应的全类名
3.反射加载字节码文件进内存
4.创建器对象

生命周期(初始化–>服务–>销毁)

/**
     * 初始化
     * 只能调用一次,当Servlet第一次被访问的时候创建
     */
    public void init(ServletConfig config) throws ServletException {
        System.out.println("我只能调用一次");
    }

    /**
     * 提供服务,可以被多次调用,每一次servlet被访问的时候都会调用这个方法
     * 
     */
    public void service(ServletRequest req, ServletResponse res)
            throws ServletException, IOException {
        System.out.println("我可以被多次调用哦");

    }

    /**
     * 销毁
     * 当服务器正常关闭时,调用一次
     * 
     */
    public void destroy() {

        System.out.println("我关闭啦");
    }

创建Servlet的三种方式

1.实现servlet接口
2.继承GenericServlet类(适配器模式)

优点:
1.提供了Servlet接口的适配器
2.已经对getServletConfig()做了处理,并且在init(ServletConfig config)方法中调用了无参数的init()方法以后复写无参数的init()方法。
3.实现了ServletConfig接口,复写了其中的方法。以后再Servlet中使用config的方法,可以直接使用。简化书写

public class ServletDemo2 extends GenericServlet{

    @Override
    public void service(ServletRequest req, ServletResponse res)
            throws ServletException, IOException {

    }

}
3.继承HttpServlet类(模板方法设计模式)

在service方法中
1.获取请求方式
2.判断方式是什么
3.执行不同的操作,调用了不同的方法
我们继承HttpServlet时,要复写的是这些”不同的方法” doGet,doPost…

package cn.ttsx.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class ServletDemo3 extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        super.doGet(req, resp);
    }


    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        super.doPost(req, resp);
    }

}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值