初识servlet技术

一、Servlet的基本概念和作用

定义:Servlet是服务器端小程序

  Servlet是运行在服务器上的一个JAVA编写的程序,本身是一个类。

  负责接收客户端浏览器发过来的请求,进行请求的处理,并给客户端浏览器一个响应。

  服务器在收到客户端浏览器的请求之后,会根据请求的URL地址,调用响应的Servlet。

  Servlet被调用之后,会执行其中的代码,将响应的内容给服务器了。

我们自己写的Servlet类通常继承自:javax.servlet.http包中的HttpServlet类。

而且我们自己写的Servlet类通常要重写父类的doGet()或者doPost()方法来处理GET方式或者POST方式的请求。

(如果Servlet类中没有写doGet()方法而被GET方式请求了,或者没有写doPost()方法而被POST方式请求了,就会出现 405状态码错误。)

 二、Servlet的生命周期

Servlet类没有程序入口函数(main()函数),Servlet的运行是受Tomcat控制的。

Servlet的运行原理。

 

a)、  Servlet在服务器上始终只有一个对象

b)、  实例化,初始化init(),销毁destory()都只会调用一次,而服务service()每次请求都会被调用。

c)、  Servlet对象是在第一次被请求的时候实例化的 ;如果很长时间没有访问这个Servlet或者服务器停止的时候就会被销毁。

 三、Servlet层次结构及API

Servlet的层次结构:

javax.servlet.Servlet接口 —— 定义了所有的Servlet必须实现的方法。

                                                其中init()、service()、destory()就是生命周期中的重要方法。

javax.servlet.GenericServlet类 —— 定义了一个一般的,不依赖具体协议的Servlet

javax.servlet.http.HttpServlet类 —— 基于HTTP协议的Servlet的父类。

                                                          我们开发一个Servlet一定要继承自

                                                          HttpServlet类,重写doGet()或doPost()

Servlet部分的核心接口:

HttpServletRequest用来封装所有客户端浏览器发送过来的请求信息

HttpServletResponse用来封装Servlet要给客户端浏览器的所有响应信息。

四、其它

1、  New ——>Servlet ——> 输入类名,Next , Finish 创建了一个Servlet类!

2、 在Servlet类的doGet()方法中可以使用 out.print() 或 println() 输出信息

3、 http://localhost:8080/项目名/web.xml中url-pattern中的内容作为路径

简单解释web.xml中关于一个Servlet的配置:

假设有一个Servlet类,完全限定名是:demo1.Servlet2

此时在web.xml中可能有以下配置:

<!--定义一个servlet-->
<servlet>
  <!--给这个servlet起一个名字-->
  <servlet-name>Servlet2</servlet-name>
  <!--指定这个servlet的包名和类名-->
  <servlet-class>demo1.Servlet2</servlet-class>
</servlet>


<!--定义一个servlet映射-->
<servlet-mapping>
  <!--引用定义好的servlet名字-->
  <servlet-name>Servlet2</servlet-name>
  <!--
  指定一个映射的路径,注:
  1、映射的路径必须以斜杠开头!
  2、这些开头的斜杠表示项目名后的斜杠
  -->
  <url-pattern>/servlet/Servlet2</url-pattern>
</servlet-mapping>
注:如果修改了Servlet的类名或者删除了Servlet类,或者移动了包。一定要在web.xml中修改或删除相应的配置。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2017-03-27 17:28  Lucky锦  阅读(249)  评论(0)    收藏  举报