程序员的知识教程库

网站首页 > 教程分享 正文

servlet简介(servletdemo)

henian88 2024-08-15 21:54:48 教程分享 14 ℃ 0 评论

一、servlet是什么?
Servlet是JavaEE的三大规范(接口)之一从另一个角度来说,它也是JavaWeb的三大组件之一。JavaWeb三大组件分别是servlet程序、Filter过滤器、Listener监听器。
它本质上是一个运行在服务器上的一个小程序,它的主要功能是接收用户发来的请求,并之后对其进行响应,把处理后的结果返回给用户。

在JavaEE平台上,处理TCP连接,解析HTTP协议这些底层工作统统扔给现成的Web服务器去做,我们只需要把自己的应用程序跑在Web服务器上。为了实现这一目的,JavaEE提供了Servlet API,我们使用Servlet API编写自己的Servlet来处理HTTP请求,Web服务器实现 Servlet API接口,实现底层功能。下图就是对servlet的一个简单的解释。


下面使用代码详细介绍servlet的实现过程,使用servlet的最简单的一个方式就是重写Servlet类中的service()方法,Servlet的service()方法的两个参数ServletRequest和ServletResponse正是对请求和响应的封装,Servlet接受请求后,可以进行响应的处理:例如:

@Overridepublic void service(ServletRequest servletRequest, ServletResponse servletResponse)
throws ServletException, IOException {
System.out.println("Hello Servlet 被访问了");
}

这个时候我们的请求就会被service()方法处理,servletRequest中的数据就是我们将要处理的数据,而servletResponse是处理后的结果,只是此时我们没有对实际数据进行处理。
初步了解了servlet的基本概念之后,下面介绍一下servlet的上下文对象(ServletContext)
二、ServletContext的几个作用:

1)、读取全局配置参数

2)、管理当前工程目录下的资源文件

服务器会为每一个工程创建一个对象,这个对象就是ServletContext对象。这个对象全局唯一,而且工程内部的所有servlet都共享这个对象。所以叫全局应用程序共享对象。

下面我们先对资源的管理进行一个介绍:

servletContext 之所以可以获取服务的资源,因为它是一个域对象,而域对象可以在服务器的内存上创建存储空间,用于在不同动态资源(servlet)之间传递与共享数据。下面是所有域对象中的几个公共方法

1、往域对象里面添加数据,添加时以key-value形式添加

setAttribute(name,value);name是String类型,value是Object类型;

2、根据指定的key读取域对象里面的数据

getAttribute(name);

3、根据指定的key从域对象里面删除数据

removeAttribute(name);

下面是一个使用上下文存储和获取数据的案例

 publicvoid doGet(HttpServletRequest request, HttpServletResponse response)
 throws ServletException, IOException {
        //存储数据
         // getServletContext()方法用于获取上下文对象,获取该对象之后才能使用对象中的set..()方法 
         getServletContext().setAttribute("username", "admin");
        //获取数据, 此时方法的结果是(admin)
  			 getServletContext().getAttribute("username")
      
     }

再来了解一下servletContext怎么获取配置:

1.我们现在去配置文件中添加我自己想要的配置(此处我们使用全局配置,即所有的servlet都可以使用)

<context-param>
         <param-name>配置名称</param-name>
         <param-value>配置对应的值</param-value>
  </context-param>

2.之后我们就可以使用方法根据配置的名称来获取我们所添加的配置

      getServletContext().getInitParameter(配置名称);//根据指定的参数名获取配置的值

三、servlet的生命周期

Servlet依托于Servlet容器运行,它包含三个方法,他们分别在特定的时机被Servlet容器所调用:

  • init(),当Servlet第一次被容器加载进入内存后调用,用于载入一些特定的资源和配置。
  • service(),一旦有对应请求地址的HTTP请求访问,该方法就会被调用,它会根据HTTP请求中的method信息将请求分发至相应的方法(例如:doGet(), doPost())进行处理,service()方法一般不需要开发者重写。
  • destroy(),Servlet被销毁时调用,一般用来释放、清理资源。

以上就是我对servlet的理解,如果有错,很高兴接受您的指正,如果您有自己见解,欢迎在评论区留言讨论

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表