Servlet

Servlet:运行在服务端的小程序
其本质是一个接口,定义了一个类被浏览器访问的规则
功能:

  • 接收请求
  • 处理请求
  • 作出响应

创建web项目
定义Java类去实现Servlet接口重写其未实现的方法
配置在web.xml中配置Servlet
发布项目
访问Servlet

 <servlet>
        <servlet-name>myServlet</servlet-name>
        <servlet-class>org.westos.web.MyServlet</servlet-class>
    </servlet>
    <!--配置Servlet的映射路径-->
    <servlet-mapping>
        <servlet-name>myServlet</servlet-name>
        <!--Servlet的映射路径,浏览器通过映射路径,可以访问到我们的Servlet-->
        <url-pattern>/hello</url-pattern>
    </servlet-mapping>

在网页上请求Servlet会调用Servlet中的service()方法,处理逻辑一般就是在该方法中
Servlet的生命周期:

/*
Servlet的生命周期方法
      Servlet从创建到销毁,所要执行不同的生命周期方法
      init()---->service()----->destroy()

      init() 在第一次请求Servlet Servlet被服务器创建出来后就会调用 这个方法,只会在第一次请求时调用一次。
      我们一般会在init()方法里面,做一些初始化的准备工作。

      service() 对外提供服务的方法,每次请求都会执行。我们以后就在这个方法里面处理请求做出响应

        正常关闭服务器时,会销毁servlet
      当servlet销毁的时候,就会执行destroy()方法,一般在这个方法里面做一些善后收尾工作
 */
public class MyServlet implements Servlet {
    public MyServlet(){
        System.out.println("Servlet构造方法执行!");
    }
    //ServletConfig对象可以获取一下初始化参数
    //在服务器调用init()方法时,服务器把ServletConfig对象传递给init方法()
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {
        System.out.println("Servlet创建了,第一次请求来了 init()方法调用了");
        //读取web.xml中的配置的值
        System.out.println(servletConfig.getInitParameter("car"));
        System.out.println(servletConfig.getInitParameter("phone"));
    }

    @Override
    public ServletConfig getServletConfig() {
        return null;
    }

    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("Service()方法调用");
    }

    @Override
    public String getServletInfo() {
        return null;
    }

    @Override
    public void destroy() {
        System.out.println("destroy()方法调用");
    }
}
<!--配置Servlet-->
<servlet>
        <servlet-name>MyServlet</servlet-name>
        <servlet-class>web.MyServlet</servlet-class>
<!--这个是配置一些键值对参数,我们可以通过ServletConfig对象来读取配置的参数值-->
        <init-param>
            <param-name>car</param-name>
            <param-value>benzi</param-value>
        </init-param>
        <init-param>
            <param-name>phone</param-name>
            <param-value>oppo</param-value>
        </init-param>
        <!--配置init方法的调用时机
     -1 是默认值,默认值的意思就是在第一次请求时,调用init方法
     现在我们想要在服务开启途中调用init()方法,我们可以把值配置成非负数
     -->
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>MyServlet</servlet-name>
        <url-pattern>/test</url-pattern>
    </servlet-mapping>

ServletConfig对象:
ServletConfig是一个接口,在Servlet初始化的时候被服务器创建并传递给init()方法
其功能:
1.获取Servlet初始化参数
String getInitParameter(String name);
Enumeration getInitParameters()
2.获取ServletContext对象 ServletContext对象是由服务器创建,可以通过ServletConfig中的方法获取
ServletContext getServletContext()
3.获取Servlet配置名称
String getServletName()

该对象是由服务器创建并且传给Servlet初始化会调用的init()方法,那么在service()方法中需要该对象就需要对该对象提升作用域
声明成员变量ServletConfig
在init()方法中对其赋值
在service中使用getServletConfig获取

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值