MelodyHub

没有伞的孩子必须努力奔跑!|

ServletContext对象

  • ServletContext对象范围:所有用户所有请求的数据

  • 谨慎使用。所有用户可以操控它,不太安全;而且,它的生命周期长:服务器始到终,存储的数据多了,会造成内存的压力。

概念

  • 代表整个web应用,可以和程序的容器(服务器)来通信(交互数据)

获取

  1. 通过request对象获取
  • 调用request.getServletContext();
  1. 通过HttpServlet获取
  • 调用this.getServletContext();

注意:
2个调用方法获取到的ServletContext都是一样的。因此,更多的时候会使用this.getServletContext();

功能

  1. 获取mine类型
  2. 域对象:共享数据
  3. 获取文件的真实路径(服务器路径)

《HTTP案例学习:用户登录》的学习中,使用到BeanUtils

案例中只涉及到封装username、password两个对象,但是实际上的用户登录界面,有十几个数据对象需要封装。

按原来的方式,是非常麻烦的。期望能够一次把所有参数获取到,并且通过一个方法,一次把所有数据封装成一个对象。

BeanUtils,一个工具类,简化数据封装

这里专门挑出来,做一份简单的笔记。

配合【教学视频】【BeanUtils工具类常用方法】 食用更佳。

《HTTP案例学习:用户登录》 中提及到html中form表单的action路径的写法

虚拟目录+Servlet的资源路径

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>用户登录</title>
</head>
<body>
<form action="/day14_test/loginServlet" method="post">
用户名:<input type="text" name="username"> <br>
密码:<input type="password" name="password"><br>

<input type="submit" value="登录">

</form>
</body>
</html>

先记住,日后还会涉及到的。

接着前面两篇博文 《HTTP:超文本传输协议》《HTTP请求信息数据 - Request》 的学习。

现在记录关于 HTTP响应信息数据-Response 的笔记。


响应信息数据 格式

  • Servlet类中service()方法的参数ServletResponse
  • Response在一次响应结束后,自动被销毁,其输出流也会自动被关闭。
  • 字符串数据,比如:
1
2
3
4
5
6
7
8
9
10
11
12
13
HTTP/1.1 200 OK
Content-Type: text/html;charset=UTF-8
Content-Length: 101
Date: Wed, 06 Jun 2018 07:08:42 GMT

<html>
<head>
<title>$Title$</title>
</head>
<body>
hello , response
</body>
</html>

接着上篇博文 《HTTP:超文本传输协议》 的学习。

现在,来学习两个对象:Request & Response。

request对象和response对象的原理

  1. request和response对象是由服务器创建的。接着我们来使用它们
  2. request对象是来获取请求消息,response对象是来设置响应消息
  3. 其基本原理,如下图👇

Request&Response对象基本原理

request对象继承体系结构

ServletRequest – interface,接口

↓|继承

HttpServletRequest – interface,接口

↓|实现

org.apache.catalina.connector.RequestFacade – 类,Tomcat编写的

Tomcat 是用纯Java语言编写

request功能

  1. 基础功能
    • 获取请求消息数据
  2. 其他功能:
    • 1.获取请求参数通用方式
    • 2.请求转发
    • 3.共享数据
    • 4.获取ServletContext

获取请求消息数据

  1. 获取请求行数据
  2. 获取请求头数据
  3. 获取请求体数据

概念

  • HTTP == Hyper Text Transfer Protocol
  • 超文本传输协议

传输协议:定义了客户端和服务器端通信时,发送数据的格式

特点

  1. 基于TCP/IP的高级协议

  2. 默认端口号:80

  3. 基于请求/响应模型的:一次请求对应一次响应

  4. 无状态的:每次请求之间相互独立,不能交互数据

  5. 网页中每一个文件都是一次单独的请求,几张图片,就是几次请求。如下图所示。

每一个文件都是一次单独的请求


博客内容遵循 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议

本站使用 Hexo 作为驱动引擎 , 总浏览量为 次 , 总访客数为
载入天数...载入时分秒...