JAVA Web 学习 单一servlet的处理

JAVA Web

##1. java web 的概念
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
静态资源文件指的是文件内容相对固定,所有用户来访问时看到的内容都是一样的文件。比如。HTML文件,图片文件,视频文件。
静态资源文件被访问时,服务端的资源文件调度器负责将文件内容读取出来,然后解析为二进制数据通过网络交给浏览器,而浏览器接收后通过其内置的编译器来解释执行。

在这里插入图片描述
动态web的优点是对应的静态web资源的缺点反过来

动态资源文件指的是文件内容可以根据用户请求不同而产生不同的变化。比如 Java中class
文件。目前在Java编程世界中我们认为只有class文件才是动态资源文件。
动态资源文件(class)在被访问时,服务端的资源文件调度器是不会将class文件推送到浏览器的。因为浏览器没有JVM无法解析执行class文件内容。
服务端的资源文件调度器会负责创建class类的实例对象,然后通过实例对象调用对应的方法处理业务。然后将方法的处理结果作为二进制数据通过网络推送回发起请求浏览器上。

2. 互联网通信

指的是两台计算机通过网络进行资源文件共享活动
角色划分:
1.用于发起请求,索要资源文件内容的计算机,称为客户端计算机
2.用于接收请求,提供共享资源文件内容的计算机,称为服务端计算机

3. 互联网通信模型

3.1 C/S通信方式

C; client software,即客户端软件。这是一种专门安装在客户端计算机上软件。可以帮助客户端计算机向指定的服务端计算机发送请求,同时帮助客户端计算机将服务端计算机返回数据
进行解析(文字,数字,图片,视频) ,最终交给客户端计算机使用

S; server software,即服务端资源文件调度器。这是一种安装在服务端计算机上软件。可以帮助服务端计算机接收指定客户端软件发送的请求,并自动根据请求定位服务端计算机上资源文件。对资源文件定位后将文件内容解析为二进制数据,然后通过网路推送回发起请求的客户端软件上。

应用场景
C/S通信方式目前在国内主要应用于【个人用户市场】,比如QQ,微信,淘宝,大型网络游戏。在企业日常活动中应用较少。目前在国内企业日常活动中基于C/S通信的主要是钉钉。
优缺点
优点:

  1. 有效的对服务端计算机进行保护,避免受到攻击

  2. 有效的分摊服务端计算机工作压力

  3. 适合向客户端计算机传输海量数据

缺点:

  1. 增加客户获得服务的成本
  2. 维护过于繁琐,需要在客户端与服务端同时更新
  3. 不易于推广

3.2 B/S通信方式

B; Browser,即为浏览器。浏览器可以帮助客户端计算机向任意服务器发送请求,同时可以帮助客户端计算机接收服务端计算机返回文件内容。

S; server software 即为服务端资源文件调度器,可以接收任意浏览器发送的请求,根据请求定位服务端计算机中资源文件,并把定位的资源文件内容以二进制形式推送回发起请求的浏览器上。
应用场景
B/S通信结构广泛应用于【个人用户市场】与【企业日常活动】,应用面非常广泛的

优缺点
优点:
1.易于使用,不会增加用户获得服务的成本
2.易于推广,可以有效降低产品推广费用
缺点:
1.无法通过浏览器接收服务端返回海量数据
2.无法有效保护服务端计算机
3.无法分摊服务端计算机工作压力

3.3 学习内容

所要学习的java web 阶段是学的B/S通信方式,通过浏览器向后台服务器发送请求,在基于B/S通信模式下进行服务器传递时,所有在网络中传递信息都是保存在http网络协议包中,分为http请求协议包和http响应协议包。然后根据请求的地址或者说是请求的链接来找到对应的servlet,(servlet是实现在web项目中在web.xml文件中注册过的),然后根据请求的方式(一般是get或post)选择servlet中doservice下的doget或者dopost 方法,然后处理结果再交付给浏览器,将对应的结果给显示出来。
其中,浏览器和服务器进行交互的过程中,是浏览器会在请求发生的瞬间(不是特别确定)会创建一个请求对象request和一个响应对象response,来携带对应的数据来完成浏览器于服务器之间的交互。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4. 浏览器行为控制分类

4.1 浏览器请求行为

控制浏览器发送请求地址
控制浏览器发送请求的行为方式
控制浏览器发送请求时携带请求参数内容

4.2 浏览器响应行为

控制浏览器解析响应数据方式
控制浏览器展示数据方式
控制用户与浏览器中的HTML标签之间人机交互方式

5. 请求方式的异同

在这里只考虑两种请求方式,一种是GET,一种是POST

其中,GET方式中,只能是携带少量的请求参数数量(不超过4K),并且请求参数信息会在url地址栏中展示,同时要求浏览器必须将请求参数保存在HTTP请求协议中的请求头中。

POST方式中,不限制请求参数的数量,在url地址栏中不会显示请求参数信息,同时要求浏览器必须将请求参数信息保存到HTTP请求协议中的请求体中。

由于POST方式允许将客户端文件作为请求参数发送到服务端,所以是有机会将病毒文件发送到服务端计算机,从而对服务器发起攻击,所以大多数的门户级网站拒绝接受POST方式请求,所以在平时开发过程中大多数都使用GET方式
在调用servlet下的doGet和doPost方法时,可以在doPost方法中调用doGet方法,相当于以两种方式来访问服务器的时候,都可以用doGet方法来进行处理

6. Tomcat服务器

在进行浏览器各种资源交互的时候,最终都要到服务器上去调度资源和寻找资源。

服务器,是一种安装在服务端计算机的资源文件调度器。每一种服务器专门接受特定的请求协议。对特定的文件进行调用管理。我们之前学习MySql服务器就是服务器的一种。专门对frm文件也就是表文件进行管理调用

Http服务器:

  1. Http服务器是服务器中一种,其行为与Http协议相关
  2. Http服务器可以接收来自于浏览器发送的Http请求协议包,并自动对Http请求协议包内容进行解析
  3. 解析后,自动定位被访问的文件。并将定位的文件内容写入到Http响应协议包中
  4. 最后,负责将Http响应协议包推送回发起请求的浏览器上

在学习过程中采用的是Tomcat服务器,由java技术开发而成。属于一种轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。(后面会学到替代响应对象处理的jsp)

服务器的配置位于C:\Users\北城\Desktop\java讲义\Servlet讲义中,只需要按照步骤来处理就可以

像Tomcat服务器这种Web服务器封装了HTTP协议操作,简化了开发,从而可以将Web项目部署到服务器中,对外提供网上浏览服务。

7. idea创建Web项目

其实使用idea来创建Web项目有很多种方法,一种是利用建立空module然后勾选web应用建立,另外一种是借助于maven骨架直接搭建(还有其他的方式,还要再进行考虑)
第一种方式:idea工具创建web网站的时候,是file—>module—>java enterprise(企业级应用)—>勾选Web Application—>next jar包需要自己建一个lib文件夹,打开工程结构,将相应的包放入进去就可以了,工程结构:
在这里插入图片描述
当最后搞完对应的项目之后,要将写的Web项目交付给Tomcat服务器,让它来进行管理
将写的网站交给tomcat进行管理,run—>edit configuration—>deployment—>+(如果有多个可以进行选择)—>Application context(交付tomcat必须是一个英文名)(这是后续的处理)
运行写好的Web项目,在运行的时候会自动弹出一个浏览器窗口,进而可以直接在搜索栏中直接输入Servlet注册的url名称进行请求就可以验证网站的功能
(整体的流程图,idea操作图在讲义中有体现)

8. Servlet规范

8.1 JAVASE规范和JAVAEE规范

1.JAVASE规范 : 指定Java基本开发的规则

2.JAVAEE规范 :指定Java与不同服务器之间进行联合开发时遵守规则。13种。之前学习的JDBC规范就是13种规范的一种

8.2 Servlet规范

Servlet规范是在javaEE下的一种规范,在规范中,只有实现了Servlet接口的类才是合法的动态资源文件,Tomcat才用权力调用。(在编写Servlet类的时候extends httpServlet,httpServlet在往上最终继承了Servlet类,屏蔽了一些抽象方法,最后只需要重写两种方法doget和dopost)
在这里插入图片描述
在这里插入图片描述
Servlet对象的生命周期:
在这里插入图片描述

9. web的运行原理

浏览器请求的原理流程图
在这里插入图片描述
运行原理:用户从浏览器的地址栏输入对应的访问请求,向web容器发送Http请求,在发送请求的时候,http服务器会创建一个请求对象和响应对象,请求对象携带的是这个请求的参数信息以及请求方式(请求方式决定了调用servlet中的哪个方法),然后是web容器中找到对应的servlet,然后调用servlet中的service方法,根据请求方式来调用相应的方法来处理请求,将处理结果交付给响应对象,然后由响应对象返回给浏览器

10. response响应对象和request请求对象

10.1 response响应对象

response响应对象是servlet处理完对应请求后,利用该对象来返回处理的结果,然后展示在浏览器上,是用来携带请求得到的资源到浏览器上。
该对象实现的是HttpServletResponse接口,这个接口的实现类是由Http服务器负责进行提供。 HttpServletResponse接口负责将doGet/doPost方法的执行结果来写入到响应体中交给浏览器

响应对象可以实现的部分功能(还有很多的功能是可以在idea类中看到,观看源码)
在这里插入图片描述
在这里说到的实现的功能对应的方法,有将结果写入到响应体的getWriter()(这个方法是向服务器索要输出流,然后用输出流的write()方法来输出)
设置数据处理方式的response.SetContentType(“text/html;charset=utf-8”)
远程控制浏览器请求行为的sendRedirect()方法

10.2 request请求对象

request对象是用户利用浏览器url地址栏向服务器发送请求时产生的,读取请求行中的 url 信息以及浏览器采用的请求方式,然后负责读取请求头或者请求体中的请求参数内容,request请求对象就相当于代替浏览器向Tomcat服务器申请响应的资源文件
request请求对象继承了HttpServeltRequest接口,对于接口的描述:
在这里插入图片描述

10.3 两个对象的生命周期

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值