请求与响应JavaWeb的对象原理的深入浅析

  

request与JavaWeb response的对象原理的深入浅析?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

HttpServletResponse:

HttpServletResponse对象服务器的响应。这个对象中封装了向客户端发送数据、发送响应头,发送响应状态码的方法。

字符编码格式:

方法一:

//设置response使用的码表,控制response向浏览器写出数据的码表

response.setCharacterEncoding("UTF-8");

//指定浏览器打开客户端发送数据的码表

response.setHeader("content-type", "text/html;charset=UTF-8");

方法二:

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

用refresh控制浏览器定时刷新

response.setHeader("refresh","3;url='/项目名/网页名'");//3代表3s以后刷新

用expires头控制浏览器缓存

response.setDateHeader("expires",System.currentTimeMillis()+1000*3600);

请求重定向

response.sendRedirect("地址");

response细节

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

HttpServletRequest

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

  • getRequestURL()//返回客户端发出请求时的完整URL
  • getRequestURI()//返回请求行中的资源名部分
  • getQueryString()//方法返回请求行中的参数部分
  • getPathInfo()//返回请求URL中的额外路径信息。额外路径信息是请求URL中的位于Servlet的路径之后和查询参数之前的内容,它以“/笨?/li>
  • getRemoteAddr()//返回发出请求的客户机的IP地址
  • getRemoteHost()//返回发出请求的客户机的完整主机名
  • getRemotePort()//返回客户机所使用的网络端口号
  • getLocalAddr()//返回WEB服务器的IP地址
  • getLocalName()//返回WEB服务器的主机名
      李,

获得客户机请求头

getHeader(字符串名称)

getHeaders ()

getHeaderNames ()

获得客户机请求参数(客户端提交的数据)

getParameter(字符串名称)

getParameterValues(字符串名称)

getParameterNames ()

getParameterMap ()

请求乱码

//后提交乱码

request.setCharacterEncoding (“UTF-8");

//得到提交乱码字符串

用户名=request.getParameter (“username");

用户名=新的字符串(username.getBytes (“iso8859-1"),“UTF-8");

请求页面转发

<代码> request.getRequestDispatcher(“地址“)forward格式(请求、响应);

请求对象同时也是一个域对象,开发人员通过请求对象在实现转发时,把数据通过请求对象带给其它网络资源处理。

setAttribute(字符串名称、对象obj)

getAttribute(字符串名称)

removeAttribute(字符串名称)

getAttributeNames ()

注意

    <李>提出方法用于将请求转发到RequestDispatcher对象封装的资源。 <李>如果在调用前进方法之前,在Servlet程序中写入的部分内容已经被真正地传送到了客户端,提出方法将抛出IllegalStateException异常。 <李>如果在调用前进方法之前向Servlet引擎的缓冲区中写入了内容,只要写入到缓冲区中的内容还没有被真正输出到客户端,提出方法就可以被正常执行,原来写入到输出缓冲区中的内容将被清空,但是,已写入到HttpServletResponse对象中的响应头字段信息保持有效。
      李,

包括方法

<代码> request.getRequestDispatcher(“地址“)其中包括(请求、响应);

请求与响应JavaWeb的对象原理的深入浅析