欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JavaWeb之基础一:Servlet知识点,Servlet执行流程、request域(全详解)

程序员文章站 2022-03-22 08:00:53
Servlet详解 一、浏览器——服务器执行过程(以浏览百度网页为例) 在正式接触Servlet之前,我们先聊一聊现在常用的互联网—服务器的架构模式。 ①Client-Server模式,简称C/S结构,即客户端和服务器结构,优点数据方便共享,安全性高。 ②Brower-Server模式,简称B/S结构,即浏览器和服务器结构,有点开发简单,数据容易共享,相对于C/S模式,执行速度和用户体验较差。 现在互联网大多是B/S架构。现在让我们一起看图,更易于理解:......

Servlet详解

    一、浏览器——服务器执行过程(以浏览百度网页为例)

     在正式接触Servlet之前,我们先聊一聊现在常用的互联网—服务器的架构模式。

    ①Client-Server模式,简称C/S结构,即客户端和服务器结构,优点数据方便共享,安全性高。

    ②Brower-Server模式,简称B/S结构,即浏览器和服务器结构,有点开发简单,数据容易共享,相对于C/S模式,执行速度和用户体验较差。

    现在互联网大多是B/S架构。现在让我们一起看图,更易于理解:

                                                                JavaWeb之基础一:Servlet知识点,Servlet执行流程、request域(全详解)

                                                                  JavaWeb之基础一:Servlet知识点,Servlet执行流程、request域(全详解)

      ① 用户输入百度的url到浏览器地址栏,浏览器将地址栏的url转换,发送到web服务器。

      ② 服务器经过处理后将处理的数据结果返回给浏览器,浏览器经过对前端代码的解析后形成网页界面,返回给用户看到的可视化界面。

    注意:浏览器的请求和服务器的响应必须是成对出现的。

                                                                        JavaWeb之基础一:Servlet知识点,Servlet执行流程、request域(全详解)

  二、Servlet概念、作用、request域、

    Serlvet(Servlet)是服务器小程序,主要用于加载,浏览,修改,更新数据,生成动态网页的内容。个人理解,Servlet就是用于处理前端传过来的数据的,增删查改等等。

    ① 根据浏览器——服务器的执行过程,那Servlet在其中起到什么作用呢,如下图所示,浏览器发送不同的请求到服务器,服务器根据不同的请求发送给指定的Servlet进行处理,将处理后的结果返回给服务器,服务器再把不同的结果响应给网页。

                                                 JavaWeb之基础一:Servlet知识点,Servlet执行流程、request域(全详解)

      ②现在我们测试一下,创建一个Servlet。

  Servlet相关知识点:

       <1>一般我们创建Servlet,创建一个普通的类,继承基类HttpServlet。目的是重写父类中的service()方法,方法里面的参数对象是处理浏览器的  请求对象数据 和  响应对象数据。

                                                                                   JavaWeb之基础一:Servlet知识点,Servlet执行流程、request域(全详解)

      <2>常用的输出流,PrintWriter out = response.getWriter();服务器将处理好的数据直接响应给浏览器。response.getWriter()首先获取输出流(个人理解就是输送水资源,首先得有管道),使用PrintWriter 的对象接收,然后管道里面具体是输出的什么内容,直接输出out.println("...");  输出的类型只支持字符类型,字符串等。response从服务器向浏览器返回数据,需要借助工具,先拿到返回的流对象,可以理解为管道,拿到字符流的对象,再对流操作。这里的out对象是从Web容器中获取得到的,而不是自己创建的。

注意以下输出的区别:①out.println()是直接向页面输出结果;②system.out.println()是向控制台输出结果

 

                                                                                JavaWeb之基础一:Servlet知识点,Servlet执行流程、request域(全详解)

      <3>在web.xml 文件中声明Servlet,在JDK1.5之后有一种新的声明方式:注解 @WebServlet("/ ...")。xml文件中分为两部分配置,第一部分是Servlet的声明,第二部分是Servlet的映射。

             ①servlet-name:为servlet起别名。

             ②servlet-class:servlet-mapping映射加载的地址

             ③url-pattern:浏览器请求服务器处理的时候跳转到哪一个servlet进行处理数据

                                                     JavaWeb之基础一:Servlet知识点,Servlet执行流程、request域(全详解)

             <servlet> <servlet-mapping>之间的联系:数据传入到服务器后,服务器对xml文件进行解析。首先找到的是servlet的别名,然后找到url-patttern中的servlet映射的地址 /hi,再servlet声明中找到对应的Servlet的类,接下来执行所创建的Servlet的内容,执行service()方法,服务器经过解析后将数据返回给浏览器。

                                                                               JavaWeb之基础一:Servlet知识点,Servlet执行流程、request域(全详解)

      以下是图解Servlet的执行流程:

                                                                JavaWeb之基础一:Servlet知识点,Servlet执行流程、request域(全详解)

          <4> request域

              ①封装了请求头的数据,包含了请求转发和请求包含的功能

              ②request是一个域对象,可以把request看成一个Map集合键值对的方式来获取,添加数据。具体的实现代码是:request.setAttribute("K","V"),注意这里的键必须是字符型。获取request域的实现代码是:request.getAttribute("K")

                                              JavaWeb之基础一:Servlet知识点,Servlet执行流程、request域(全详解)

              ③request请求的常用方法,以及举例

                                           JavaWeb之基础一:Servlet知识点,Servlet执行流程、request域(全详解)

                                             JavaWeb之基础一:Servlet知识点,Servlet执行流程、request域(全详解)

     <5>从浏览器获取参数的方法,接收参数的类型必须是String类型String para = request.getParameter("..."),比如html界面中有一个<input name = "info"/>,servlet获取用户输入的内容后处理数据

                                       JavaWeb之基础一:Servlet知识点,Servlet执行流程、request域(全详解)

       

     <6>servlet访问的方法、请求参数

                                                                                 JavaWeb之基础一:Servlet知识点,Servlet执行流程、request域(全详解)

                                                                         JavaWeb之基础一:Servlet知识点,Servlet执行流程、request域(全详解)               

                                                                             JavaWeb之基础一:Servlet知识点,Servlet执行流程、request域(全详解)

                                                                       JavaWeb之基础一:Servlet知识点,Servlet执行流程、request域(全详解)

                                                                       JavaWeb之基础一:Servlet知识点,Servlet执行流程、request域(全详解)

                                                                             JavaWeb之基础一:Servlet知识点,Servlet执行流程、request域(全详解)

三、总结

  1. 最近一直在复习Web的基础知识,例如:Servlet、JSP等,温故而知新
  2. 原理真的很重要,每一段代码你都需要知道是什么意思,逻辑是什么
  3. 熟练掌握Servlet,和JSP,多做几个项目,为接下来的Spring等框架打基础,熟练掌握response,request对象的应用
  4. 多积累,奥利给!!

本文地址:https://blog.csdn.net/Sunshineoe/article/details/109237940