天天看点

javaWEB学习日记day05

复习:

HttpServletRequest

请求行:

* getMethod()

* getRquestURL()

* getRquestURI()

* getContextPath() --获取虚拟目录

* getServletPath()

* getQueryString --> get请求方式的参数

username=lucy&password=123

请求头:

* getHeader(name)

请求体: 输入流 post方式的参数

* getReader()

username=lucy&password=123

通用的获取请求参数的方法:

getParameter(name)

String[] getParameterValues(name)

Map<String,Stirng[]> getParameterMap()

中文乱码:

get的字符集: UTF-8

post的字符集: iso8859-1

request.setCharaterEncoding("utf-8")

____________________________________________

案例: 页面注册

步骤:

1.创建项目,导入html页面,配置文件,jar包

2.创建数据库,和所需要的表

3.创建和数据库对应的实体类

4.编写工具类DruidUtils

5.创建UserDao,提供注册方法

6.创建Servlet,使用BeanUtils工具类,简化数据的封装

BeanUtils - 封装对象的工具类

* 作用: 用于封装JavaBean的

* 使用:

1.导包

conmms-beanutils

conmms-collections

2.方法:

* populate(Object obj,Map map)

将map集合的键值对信息,封装到对应的JavaBean对象中

* setProperty()

* getProperty()

案例: 页面登录

____________________________________________

ServletContext对象:

生命周期:

服务期开启,服务器结束

service -> doGet/doPost

Servlet的生命周期:

创建:默认第一次接收请求

销毁:服务器关闭

javaWEB学习日记day05

request作为域对象使用:

特点:

* 地址栏路径不会发生改变

* 转发只能访问当前服务器下的资源

* 转发是一次请求,可以使用request域对象来共享数据

范围: 一次请求

* 创建: 接受请求

* 销毁: 请求结束

方法:

* setAttribute(String name,Object obj)

* getAttribute(String name)

* removeAttribute(String name)

作用:在请求转发是进行数据的传递

使用场景: 通常是Servlet转发到jsp时使用

一个Servlet事情做到一半时,需要转发到另一个资源继续完成这件事情 -> 使用转发

____________________________________________

Response:响应

javaWEB学习日记day05
javaWEB学习日记day05

1.Response的组成部分:

1)响应行:状态码 + http协议

* 状态码:

* 1xx: 信息状态码

* 返回服务器接收到的客户端信息,但是没有接收完成任务 --> 了解

* 2xx: 成功状态码

* 200: 正常显示

* 3xx: 重定向状态码

* 304: 访问缓存

* 302: 重定向

* 4xx: 客户端错误状态码

* 404:(请求路径没有对应的资源)

资源未找到,路径错误

* 405:请求方式没有对应的doxxx方法

服务方法出错(service/doGet/doPost)

* 5xx: 服务器端错误状态码

* 500: 服务器内容出现的异常,代码错误

2)响应头:Map存储的信息

* setHeader() -> 设置响应头信息

3)响应体:要显示的界面

* 常用API:

* 获取输出流:

* 字符输出流: getWriter()

* 字节输出流: getOutpuStream()

* 解决响应体乱码问题:

* setContentType("text/html;charset=UTF-8")

2.重定向: 资源跳转的方式

* 特定:

* 地址栏会发生变化

* 重定向可以访问其他服务器的资源

* 重定向是两次请求. 不能使用request域对象来共享数据

* 使用场景:

* 第一个资源已经做完了一件事情,需要做下一件事情

例如:注册完成之后马上进行登录操作

* 常用方法:

* 重定向的方法

sendRedirect("虚拟目录+跳转的资源路径")

javaWEB学习日记day05

面试题: 重定向和转发的区别?