servlet到底是什么?

Posted GreatAnt

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了servlet到底是什么?相关的知识,希望对你有一定的参考价值。

Servlet(Server Applet),全称Java Servlet,是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,指任何实现了这个Servlet接口的类。

servlet是一个特殊的Java类

其实就是运行在服务器上的java类,但是没有main方法。servlet中的方法由服务器在相应情况下调用执行,比如Tomcat服务器上的servlet,当浏览器发出请求并且请求方式为GET时,被请求的servlet的doGet方法就会被Tomcat或者其他服务器调用执行。

因为这些服务器软件能监听http请求,解析http头信息,头信息里写有用户想看你的哪个页面,然后这些软件再打开你的程序对应的页面跑一下得出结果再返回给用户。
要是你写的web程序把这个监听的东西也写上,可以不用依赖tomcat等软件的,只要符合http协议的过程。

1.实现一个Servlet需要继承哪个类? HttpServlet

2.配置Servlet的主要标签

  <servlet>

    <servlet-name></servlet-name>

    <servlet-class></servlet-class>

</servlet>

<servlet-mapping>

  <servlet-name></servlet-name>

  <url-pattern></url-pattern>

</servlet-mapping>

3.servlet的生命周期

      实例化:服务器进行servlet的实例化,调用servlet的构造

      初始化:服务器调用servlet的init方法进行初始化。(只有第一次请求时调用)

      请求的处理:服务器调用servlet的service方法,然后根据请求方式调用doXXX方法

      服务终止:服务器调用servlet的destroy方法销毁servlet实例。

init方法的参数为ServletConfig对象

service,doGet,doPost方法的参数均为HttpServletRequest对象和HttpServletResponse

对象

4.servlet初始化参数,上下文参数的配置和使用

                  初始化参数的配置:

        <servlet>

<init-param>

             <param-name>key</param-name>

             <param-value>value</param-value>

</init-param>

</servlet>

初始化参数的使用:

一般在Servlet的init方法中使用config对象的getInitParameter(String key)方法

来获取初始化参数。

上下文参数的配置:

  <web-app>

<context-param>

        <param-name>key</param-name>

        <param-value>value</param-value>

</context-param>

</web-app>

上下文参数的使用:

在Servlet中先通过getServletContext()方法获得ServletContext对象,然后调用

   该对象的getInitParameter(String key)方法获得上下文参数。

6.JSP的执行过程:

   请求(request):客户端发送请求定位到服务器的某个jsp资源

   翻译:服务器找到指定的jsp对该jsp进行翻译,翻译成一个Servlet

   编译:服务器将翻译好的Servlet编译成class文件

   执行:服务器调用JVM来执行编译好的class文件

   响应(response):服务器将执行结果封装成html代码返回给客户端

第一次请求完成之后,后面的请求都可以重用第一次编译过的class。

以上是关于servlet到底是什么?的主要内容,如果未能解决你的问题,请参考以下文章

我很想知道,servlet到底是做啥的 怎么用?

jsp开发中、servlet、dao层、biz层、entity层到底各自啥作用?

核心知识Servlet

核心知识Servlet

最近学java servlet,有 deployment descriptor这一概念,它到底是啥东西啊?

Servlet 和 Servlet容器