【最全详解】Servlet知识点,Servlet执行流程、request域(全详解)

Servlet详解

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

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

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

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

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

                                                                

                                                                  

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

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

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

                                                                        

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

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

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

                                                 

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

  Servlet相关知识点:

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

                                                                                   

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

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

 

                                                                                

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

             ①servlet-name:为servlet起别名。

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

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

                                                     

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

                                                                               

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

                                                                

          <4> request域

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

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

                                              

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

                                           

                                             

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

                                       

       

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

                                                                                 

                                                                                        

                                                                             

                                                                       

                                                                       

                                                                             

三、总结

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值