JavaWeb之基础一: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访问的方法、请求参数
三、总结
- 最近一直在复习Web的基础知识,例如:Servlet、JSP等,温故而知新
- 原理真的很重要,每一段代码你都需要知道是什么意思,逻辑是什么
- 熟练掌握Servlet,和JSP,多做几个项目,为接下来的Spring等框架打基础,熟练掌握response,request对象的应用
- 多积累,奥利给!!
本文地址:https://blog.csdn.net/Sunshineoe/article/details/109237940
下一篇: XML入门的常见问题(三)