1.1、需求说明
登录成功后,在页面中显示您是第 x 位登录成功的用户.
1.2、流程分析
1.3、案例代码实现
该案例将模拟直接登录成功,需要的同学请自己参照昨天代码补全登录
login.jsp
UserServlet
msg.jsp
1.4、案例问题说明
因为只有一次请求响应,只有一个 request 对象。
UserServlet 为 request 设置数据, msg.jsp 从 request 获取数据
这是由于 request 作用范围太小了,数据的传递 只在某次请求和响应之间有效。
1.5、知识讲解-ServletContext 快速入门
服务器启动的时候 , 为每个 WEB 应用创建一个单独的 ServletContext 对象 , 将 web.xml 中的配置信息进行封装。
相当于某个项目的身份证
作用:
获取项目配置信息;
项目内进行信息共享;
Servlet 中的获取方式:
servlet 的初始化参数, 通过 ServletConfig 对象获得
1.6、案例代码实现
UserServlet
1.3、知识讲解-response
在 Servlet API 中,定义了一个 HttpServletResponse 接口,它继承自 ServletResponse 接口,专门用来封装 HTTP 响应消息。
Response 对象封装了响应行、头、体三部分信息,我们可以通过调用 response 对象的方法,来轻松控制服务器向浏览器写响应信息
1.3.1、response 对象操作响应行(了解)
setStatus(int status);
该方法用于设置 HTTP 响应消息的状态码,并生成响应状态行。由于响应状态行中的状态描述信息直接与状态码相关,而 HTTP 版本由服务器确定,因此,只要通过setStatus(int status) 方法设置了状态码,即可实现状态行的发送。
若未设置状态码,且服务器运行正常, Web 服务器会默认产生一个状态码为 200 的状态行。
sendError(int sc,String errorMsg);
该方法用于发送表示错误信息的状态码。
建议该方法仅发送 4xx 和 5xx 状态码。
1.3.2、response 对象操作响应头
当 Servlet 向客户端发送响应消息时,由于 HTTP 协议的响应头字段有很多种,为此,在
HttpServletResponse 接口中,定义了一系列设置 HTTP 响应头字段的方法,如表 4-1 所示。
表1-1 设置响应消息头字段的方法
1.3.3、response 对象操作响应体
响应体信息无限,所以一般用来传递大量数据。
getOutputStream()
向响应体输出二进制字节流信息。【文件下载】
getWriter()
向响应体输出字符流信息。【字符串及前端代码输出】
若输出前端代码,则会被浏览器解析执行
两个方法我们都使用其 write() 方法进行数据输出。