Servlet
每个web 应用里 只有一个webContext(servletContent)
HttPServletRequest:
HTTPServletRequest是继承ServletRequest、并基于HTTP协议提供对用户请求信息进行统一封装的接口。一般有Servlet容器的提供者实现。
#####HttpServletrRequest生命周期:
1、一个HttpServletRequest对象在用户向web服务器发送请求是,由servlet容器创建,并根据相关的信息(请求头,请求主体)对其进行封装,然后传递给HTTPServletRequest的使用者(通常是Servlet)。
2、一个HTTPServletRequest对象只能存活于Servlet容器中
3、在服务器响应客户后HttpServletRequest对象被销毁
HttpServlRequest客户请求:
- 在Servlet的doPost方法和doGet方法中,通过HTTPServletRequest对象获取用户信息。一般主要处理由超链接或者表单传递的数据。
RequestDispatcher:
servlet容器创建的一个web 资源的包容器,可以用来把当前的request传递到该资源,或者把新的资源包括到当前响应中。
方法:
void forword(ServletReqeuest request,ServletRespone respone) 将请求从一个servlet转发到服务器上的另一个资源(servlet、JSP文件或HTML文件)。此方法允许一个servlet对请求进行初步处理,并使另一个资源生成响应。
void include(ServletReqeuest request,ServletRespone respone) 包含响应中某个资源(servlet、JSP页面和HTML文件)的内容。事实上,此方法支持编程式服务器端包含
两者不同可见 dispatcher 项目,有servlet1和servle2,forword方法是将s1的请求转发给s2,由s2响应给客户(s1没有响应)。include方法 相当于s1包含了s2,用户感觉只有一个servlet,最后由s1响应客户。
HttpServletResponse:
ServletResponse
辅助servlet将响应发送给客户端。由servlet容器创建ServletResponse对象,并将它作为参数传递给servlet的service方法
常用方法:
- void setCharacterEncoding(String s) 设置将发送到客户端的响应的字符编码。
- void setContentType(String s) 设置将发送到客户端的响应的内容类型。给定内容类型可能博阿寒字符编码,如 text/html;charset=UTF-8
- void setContentLength(int len) 设置响应的内容正文的长度
- ServletOutputStream() 返回适用于二进制数据的响应流(字节流)
- PrintWriter getWrite()返回适用于文本数据的响应流。(字符流)
HttpServletResponse:
常用常量:
- SC_CONTINUE 状态代码(** 100 **),指示客户端可以继续
- SC_OK 状态代码(** 200 **),指示请求正常成功
- SC_SEE_OTNER 状态代码(** 303 **)指示可在另一个URl之下找到该请求的响应
- SC_NOT_FOUND 状态代码(** 404 **)指示请求资源不可用
- SC_INTERNAL_SERVER_ERROR 状态代码(** 500 **)指示HTTP服务器内存在错误使服务器无法完成请求。
常用方法:
- void senRedirect(String s) 使用指定重定向位置url将临时重定向响应发送到客户端。