HttpServlet详解--【DRP】


Servlet简介

  Servlet的框架由两个java包组成:javax.servlet和javax.servlet.http在javax.servlet包中定义了所有的Servlet类都必须实现或扩展的的通用接口和类,在javax.servlet.http包中定义了采用HTTP通信协议的HttpServlet类。

  Servlet的框架核心是javax.servlet.Servlet接口,所有的Servlet必须实现这一接口。在Servlet接口中定义了5个方法,其中3个方法代表了Servlet的声明周期。

  Init方法--负责初始化servlet对象。

  Service方法--负责响应客户的请求。

  Destroy方法--当Servlet对象退出声明周期时,负责释放占有的资源。


为什么要使用Servlet?

  Servlet用来解析http协议,并把解析的结果请求数据库验证后,返回信息给前台jsp或者html页面。

  Servlet就像桥梁,跟控制器作用类似。

 

下面就是一个Servlet的用户验证的小例子:

1.      服务器拿到客户端传过来的数据,解析http协议,获取html发送过来的用户名和密码

2.      请求数据库验证,用户名和密码

3.      返回结果给前台html页面

 

HttpServlet详解--【DRP】_第1张图片


Servlet调用过程

HttpServlet详解--【DRP】_第2张图片

  

  咱结合实例来讲解一下Servlet调用流程:

  1.      web客户端发送http协议,request(用户名,密码)请求到tomcat。

  2.       tomcat有服务在这等着,首先访问的是web.xml

  <servlet-mapping>结点,提供了两个标签信息<servlet-name>和<url-pattern>。

  servlet-name:自己定义的servlet名称

  url-pattern: servlet的URL路径,相对于web应用程序上下文根路径。

(根路径就是

test_servlet

           WEB-INF

                    classes(存放编译文件)

                    lib(存放第三方的jar包,数据驱动等等)

                    web.xml   (存放servlet配置信息)


HttpServlet详解--【DRP】_第3张图片

  通过url-pattern提供的路径可以找到Servlet,每个<url-pattern>对应一个<servlet-name>,根据<servlet-name>可以找到该路径对应的类<servlet-class>.

 

3.       找到servlet-class, tomcat就可以拿到servlet对它进行实例化,实例化成普通的java对象。

servlet和普通的类的区别是声明周期由tomcat容器管理。


4.       首先调用Servlet里面的service方法,判断请求模式:doGet还是doPost

HttpServlet详解--【DRP】_第4张图片


如果选择doGet方法

 HttpServlet详解--【DRP】_第5张图片

  HttpServletRequest包装了客户端的相关信息,包括了表单信息。

  如果调用完成之后,验证完成,调用数据库就返回。告诉客户端这次验证是对还是错。

输出html给浏览器。HttpServletResponse,这个对象可以做响应的,通过这个对象可以把数据写给浏览器。getWriter拿到字符流,println打印到浏览器上。


总结

  现在才知道,之前的学.net MVC中的Controller里面拼接前台html字符串是怎么来的,Java里面的Servlet已经给出我们答案了!



你可能感兴趣的:(servlet,drp)