您的位置:首页 > 其它

Servlet基础(2)

2017-08-20 02:41 134 查看
Servlet的执行流程

以Get方式为例,在前一篇里讲到的get方式请求HelloServlet

<a href="servlet/HelloServlet">


用户在网页上点击这个超链接,这个超链接请求的地址就是Servlet。以超链接这种方式的请求我们可以叫get请求。

用户在点击这个超链接之后,会提交给服务器,服务器会在web.xml中寻找与之对应的url地址,这里边我们的地址为”/servlet/HelloServlet”。提交给服务期之后,服务器就会在我们的配置文档中的servlet-mapping中去寻找相对应的servlet是哪一个。然后就找到了相对应的Servlet的名字,然后再去servlet标签中寻找相同servlet-name对应的处理类,即servlet-class。

于是就可以找到相对应的处理类,然后根据用户提交请求的方式来决定执行这个类中重写的doGet或者doPost方法,这里由于是超链接,所以就执行重写的doGet里边的方法。

<servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>servlet.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/servlet/HelloServlet</url-pattern>
</servlet-mapping>


Servlet生命周期

Servlet的生命要经历三个阶段

1.初始化阶段,调用init()方法。

在初始化方法之前,要调用这个类的构造方法,也就是要生成这个类的一个实例

2.响应客户请求阶段,调用service()阶段。由service()方法根据提交方式选择执行doGet()或者doPost()方法。

提交请求的方式是
4000
get方式则由service方法转去执行doGet方法,post方式的请求则转去执行doPost方法

3.终止阶段,调用destroy()方法。

服务器停止的时候调用

总结:当用户使用get方法时,先执行构造方法,然后执行初始化方法,再执行doGet方法,停止服务器时会执行destroy方法

在下列时刻Servlet容器装载servlet

1.Servlet容器启动时自动装载某些Servlet,实现它只需要在web.xml文件中的servlet标签之间添加如下代码
<loadon-startup>1</loadon-startup>
数字越小表示优先级越高。

所谓自动装载某些Servlet,就是启动时就会自动执行构造方法和初始化方法。

2.在Servlet容器启动后,客户首次向Servlet发送请求。

3.Servlet类文件被更新后,重新装载Servlet。

Servlet被装载后,Servlet容器创建一个Servlet实例并且调用Servlet的init()方法进行初始化。在Servlet的整个生命周期内,init()方法只被调用一次。

Servlet与九大内置对象

JSP九大内置对象:out、request、response、session、application、exception、page、pageContext、Config

JSP中的out等价于Servlet中的response.getWriter,从严格意义来说两者的类型是不匹配的,response.getWriter获得的是一个PrintWriter对象,而JSP中的内置对象out属于JspWriter类型对象。不过它们都可以用来给浏览器输出。

request对象在Servlet当中可以使用service方法中传进来的request参数来获得,或者通过doGet或者doPost方法传进来的request参数获得。

同样的道理,response对象也可以。

session内置对象可以通过request.getSession()来获取。

application可以通过getServletContext()来获取。

exception可以通过抛出异常的方式来获取。

page对应的就是this对象。

pageContext对应的就是pageContext对象。

Config参数可以getServletConfig函数来获取。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  servlet