Response常见方法使用和问题

•向客户端输出中文数据

用PrintWriter(字符流)发送数据

示例:response.getWriter().write(“中国”);有没有乱码?

原因:以默认编码发送数据ISO-8859-1(没有中国二字编码),此时会发生乱码

解决办法:

setCharacterEncoding(“UTF-8”);//更改编码为UTF-8

response.setHead(“Context-type”,”text/html;charset=UTF-8”);//告诉客户端编码方式

注意:不要忘记告诉客户端的编码方式。

由于经常改动编码,response提供了一种更简单的方式

response.setContentType(“text/html;charset=UTF-8”);其作用相当于以上两条代码。


•通过response实现请求重定向。
–请求重定向指:一个web资源收到客户端请求后,通知客户端去访问另外一个web资源,这称之为请求重定向。
•地址栏会变,并发送2次请求,增加服务器负担
•实现方式
–response.sendRedirect()
–实现原理:
•302/307状态码和location头即可实现重定向

-----------------------------------------------------------------------------------------------------------------

//response细节

•getOutputStream和getWriter方法分别用于得到输出二进制数据、输出文本数据的ServletOuputStream、Printwriter对象。
•getOutputStream和getWriter这两个方法互相排斥,调用了其中的任何一个方法后,就不能再调用另一方法。  会抛异常。
•Servlet程序向ServletOutputStream或PrintWriter对象中写入的数据将被Servlet引擎从response里面获取,Servlet引擎将这些数据当作响应消息的正文,然后再与响应状态行和各响应头组合后输出到客户端。
•Serlvet的service方法结束后,Servlet引擎将检查getWriter或getOutputStream方法返回的输出流对象是否已经调用过close方法,如果没有,Servlet引擎将调用close方法关闭该输出流对象。 


•HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,开发人员通过这个对象的方法,可以获得客户这些信息。

----------------------------------------------------------------------------------------------------------
//response常用方法
•获得客户机信息
–getRequestURL方法返回客户端发出请求时的完整URL。
–getRequestURI方法返回请求行中的资源名部分。
–getQueryString 方法返回请求行中的参数部分。
–getRemoteAddr方法返回发出请求的客户机的IP地址
–getRemoteHost方法返回发出请求的客户机的完整主机名
–getRemotePort方法返回客户机所使用的网络端口号
–getLocalAddr方法返回WEB服务器的IP地址。
–getLocalName方法返回WEB服务器的主机名
–getMethod得到客户机请求方式

•获得客户机请求头
–getHead(name)方法
–getHeaders(Stringname)方法
–getHeaderNames方法
•获得客户机请求参数(客户端提交的数据)
–getParameter(name)方法
–getParameterValues(Stringname)方法
–getParameterNames方法
–getParameterMap方法  //做框架用,非常实用

----------------------------------------------------------------------------------------------------------------------


你可能感兴趣的:(web开发)