一、response对象

response对象和request对象相对应,用于响应客户请求,由服务器向客户端输出信息。当服务器向客户端传送数据时,JSP容器会自动创建response对象并请信息封装到response对象中,当JSP容器处理完请求后,response对象会被销毁。responserequest结合起来完成动态网页的交互功能。

二、response 对象的常用方法

  1. SendRedirect(String url)--使用指定的重定向位置url向客户端发送重定向响应

  2. setDateHeader(String name,long date)--使用给定的名称和日期值设置一个响应报头,如果指定的名称已经设置,则新值会覆盖旧值

  3. setHeader(String name,String value)--使用给定的名称和值设置一个响应报头,如果指定的名称已经设置,则新值会覆盖旧值

  4. setHeader(String name,int value)--使用给定的名称和整数值设置一个响应报头,如果指定的名称已经设置,则新值会覆盖旧值

  5. setContentType(String type)--为响应设置内容类型,其参数值可以为text/html,text/plain,application/x_msexcel或application/msword

  6. setContentLength(int len)--为响应设置内容长度

  7. setLocale(java.util.Locale loc)--为响应设置地区信息

三、实战实例

编写两个JSP页面input.jsp和result.jsp。input.jsp页面提交一个数字给result.jsp页面,result.jsp页面使用response对象做出动态响应。

input.jsp的具体要求

input.jsp提供表单,用户在表单中输入一个数字,提交给result.jsp页面。

input.jsp代码:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

<html>

  <head>   

    <title></title>

  </head>

  <body bgcolor="yellow">

   <form action="result.jsp" method="post">

   输入数字:<input type="text" name="num">&emsp;

       <input type="submit" value="提交">

   </form>

  </body>

</html>

result.jsp的具体要求

result.jsp页面首先使用request对象获得input.jsp页面提交的数字,然后根据数字的大小作出不同的响应。如果数字小与0,response对象的调用setContentType(String s)方法将contentType属性的值设置为text/plain,同时输出数字的平方;如果数字大于等于0并且小于100,response对象的调用setContentType(String s)方法将contentType属性的值设置为application/msword,同时输出数字的立方;如果数字大于等于100,response对象调用setStatus(int n)方法将状态行的内容设置为404;如果用户在input.jsp页面输入了非数字,response对象调用sendRedirect(URL url)方法将用户的重定向到input.jsp页面。

result.jsp代码:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<html>
  <head>
    <title></title>
  </head>
  
  <body bgcolor=cyan><font size=3>
   <% 
   request.setCharacterEncoding("utf-8"); 
   String str=request.getParameter("num"); 
   try
   { double a=Double.parseDouble(str);
     if(a<0)
     {
     response.setContentType("text/plain;charset=GB2312"); //设置响应的MIMI类型
     out.println(a+"的平方:"+(a*a));
     }
     else if(0<=a&&a<100)
     {
      response.setContentType("application/msword;charset=GB2312"); //设置响应的MIMI类型
      out.println(a+"的立方:"+(a*a*a));
     } 
     else
     {   response. setStatus(404);
     }
   }
   catch(Exception e)
   {
    response.sendRedirect("input.jsp");  //请求重定向
   }%>
   </font>
  </body>
</html>

运行结果:

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐