《Head First Servlets & JSP》-4-请求和响应
Servlet生命周期

生命周期三大重要时刻
Servlet集成结构:

| 方法 | init() | service() | doGet()/goPost() |
|---|---|---|---|
| 何时调用 | Servlet实例被创建之后、为客户请求提供服务之前 | 当第一个客户请求到来时 | service()根据HTTP方法来选择调用 |
| 作用 | 初始化 | 查看客户请求并调用相应的方法 | 这里是我们的功能代码 |
| 是否覆盖 | 若有自己的初始化要求(如获得数据库连接、想其他对象注册),则需要覆盖;否则运行GenericServlet的init() | 一般不覆盖 | 至少覆盖其一,因为HttpServlet的doGet()/doPost()什么也不做,且service()方法结束,线程就结束(或进入线程池) |
注意:
- 初始化很重要,因为在调用构造函数和init()方法之间,Servlet处于一种薛定谔Servlet状态
- 任何Servlet类都不会有多个实例(只有一种糟糕的情况除外,SingleThreadModel)
- 对应每个客户请求,会生成一对新的请求和响应对象
GET和POST的区别
- GET

POST

区别
| 方法 | GET | POST |
|---|---|---|
| 消息体 | 无 | 有 |
| 数据大小 | 限制 | 无限制 |
| 安全控制 | 无 | 有 |
| 可建立书签 | 是 | 否 |
| 幂等性 | 是 | 否 |
Servlet生命周期和API要点

HTTP和HttpServletRequest要点

响应
一个最佳实践
response.setContentType("text/html");
如上,先调用setContentType()方法,然后再调用获得输出流的方法(getWriter()或getOutputStream()),这样能保证不会遭遇内容类型和输出流之间的冲突。输出内容的两个选择
PrintWriter:
OutputStream:

请求重定向和请求分派
方法|重定向|请求分派
浏览器地址|改变|不改变
具体工作的完成|客户端(浏览器)|服务器
重定向中的URL
- 相对路径
相对当前请求的路径:

- 绝对路径
绝对路径到应用(即上下文根)

HttpServletResponse要点

《Head First Servlets & JSP》-4-请求和响应的更多相关文章
- HeadFirst Jsp 04 (请求和响应作为servlet)
servlet 的存在就是为了客服服务, servlet的任务是得到一个客户的请求, 再发回一个响应. 由上图可知, web 容器会在启动后就加载所有的servlet类, 并为之创建实例和初始化 注意 ...
- JavaWeb基础-Jsp的请求与响应
JSP请求和相应 HTTP头信息 当浏览器请求一个网页时,它会向网络服务器发送一系列不能被直接读取的信息,因为这些信息是作为HTTP信息头的一部分来传送的. HttpServletRequest类 r ...
- 简单的Servlet结合Jsp实现请求和响应以及对doGet和doPost的浅析
1.新建jsp,创建表单 <body> <form action="/MyfirstWeb/login"> username:<input type= ...
- Head First Servlets & JSP 学习笔记 第三章 —— MVC迷你教程
临渊羡鱼,不如退而结网!是时候动手搞事情了! 我们的四大步骤: ①分析用户的视图(也就是浏览器要显示的东西),以及高层体系结构: (这个就是所谓的前端吧?用JSP?JSP可以当成Html来用吧?高层体 ...
- JSP学习之请求和响应编码
今天的学习涉及到了 jsp中的两大函数 request(请求) 和 response(响应),这应该是大家学习jsp时最先碰到的两个对象,具体有什么作用呢?应该怎么用呢?请继续往下面看. 一.requ ...
- 《Head First Servlets & JSP》-1-前言
<Head First Servlets & JSP>(中文版) BB,KS & BB著, 苏钰函,林剑译,中国电力出版社 数据交互 Web浏览器和Web服务器:通过Htt ...
- http协议(二)请求和响应报文的构成
http协议用于客户端和服务器之间的通信,请求访问资源的一方称为客户端,而提供资源响应的一方称为服务器端. 下面就是客户端和服务端之间简单的通信过程 PS:请求必须从客户端建立通信,服务端没收到请求之 ...
- struts2基础——请求与响应、获取web资源
一.请求与响应 Action1.含义:(1) struts.xml 中的 action 元素,也指 from 表单的 action 属性,总之代表一个 struts2 请求.(2) 用于处理 Stru ...
- Http请求与响应格式
原文:http://www.cnblogs.com/z941030/p/4699779.html Http协议对浏览器发出的Request格式以及对Web服务器发出的Response格式有具体的规定. ...
随机推荐
- bzoj3163 Eden的新背包问题
多重背包,$q$ 次询问,每次问删一个物品之后花费 $x$ 能装多少物品 $n \leq 3000, x \leq 1000, q \leq 300000$ sol: 网上有很多假做法 正解应该是考虑 ...
- 三、Jmeter--HTTP请求默认值(HTTP Request Defaults)和访问地址参数化
一.HTTP请求默认值(HTTP Request Defaults) 1. 在本地搭建了一个wordpress开源论坛,那么我每次访问论坛的地址(服务器名称或IP)是不变的,端口也是不变的,协议也是不 ...
- Erlang pool management -- Emysql pool optimize
在上一篇关于Emysql pool (http://www.cnblogs.com/--00/p/4281938.html)的分析的最后提到 现在的emysql_conn_mgr gen_server ...
- 如何在IJ中使用Jaxb2通过xml定义生成对应的Java Entity类的文件
#0. 准备要转换的xml文件,在Project视界中,右击这个xml文件,在弹出的菜单上选择“Generate XSD schema from XML File...”, 按默认设置生成xsd文件. ...
- [转]socket使用TCP协议时,send、recv函数解析以及TCP连接关闭的问题
Tcp协议本身是可靠的,并不等于应用程序用tcp发送数据就一定是可靠的.不管是否阻塞,send发送的大小,并不代表对端recv到多少的数据. 在阻塞模式下, send函数的过程是将应用程序请求发送的数 ...
- 实验吧CTF题库-安全杂项
XDCTF misc200: 题目提示: 下载文件 用foremost分离文件 接下来用archpr 4.53进行明文攻击 先把00002700.zip中的readme.txt提取出来压缩成zip文件 ...
- Nginx简单入门教学,包学包会,让你不再依赖伪大神!
这篇教程简单介绍了 nginx 并且讲解了一些 nginx 可以解决的简单任务.这里,我们假设 nginx 已经安装在读者的机器上.如果没有,可以看一下如何安装 nginx.这篇教程主要讲解的是如果启 ...
- javascript——正则表达式(RegExp、String)(未完工)
在 javascript 中,正则表达式由两部分组成:正则表达式的匹配模式文本:匹配模式文本的修饰符: 修饰符: 修饰符 说明 i 忽略大小写 g 执行全局匹配 m 执行多行匹配 匹配模式文本包括以下 ...
- node install webpack -cli webpack4.xxxx
webpack 4.xx 版本 分离了 webpack-cli ; 安装webpack4.xx 需要再安装webpack-cli;
- Shell编程进阶 1.4 shell自定义变量
变量 系统自带变量 echo $PATH $HOME $PWD 自定义变量 # a= # echo $a1 # b= # echo $b2 写与用户交互的脚本 vim .sh #!/bin/bash ...