java web之路 : jsp request/response内置对象

来源:互联网 发布:java疯狂讲义 pdf 编辑:程序博客网 时间:2024/05/24 02:37
内置对象:不需要new,直接可以使用,常用的有五个: out,  request, response, session, application

缓冲区:内存里存放临时数据的区域

out对象是向客户端输出内容常用的对象。常用方法:

void println(); 向客户端打印字符串

void flush(); 将缓冲区内容输出到客户端

void clearBuffer(); 清除缓冲区内容,如果在flush()之后使用不会抛出异常

void clear();清除缓冲区内容,如果在flush()之后使用会抛出异常

void close(); 关闭输入流

request内置对象:

客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应,它是HttpServletRequest类的实例,常用方法如下:

String getParameter(String name)返回name指定参数的参数值

String getParameterValues(String name) 返回name指定参数的参数数组

Void setAttribute(String key, Object arg) 设置属性值 key-value

<form action="request.jsp" method="post"><table><tr><td>用户名:</td><td><input type="text" name="username" ></td></tr><tr><td>爱好:</td><td><input type="checkbox" name="favorite" value="movie">电影</td><td><input type="checkbox" name="favorite" value="read">读书</td><td><input type="checkbox" name="favorite" value="internet">上网</td><td><input type="checkbox" name="favorite" value="java web">编程</td></tr></table><button type="submit" name="submit" value="submit">提交</input></form>
<%request.setCharacterEncoding("utf-8"); 
                request.setAttribute("password", "argl");%><table>姓名:<%=request.getParameter("username")%>爱好:<%String[] favorites = request.getParameterValues("favorite");for (int i = 0; i < favorites.length; i++) {out.println(favorites[i]);}
密码:<%=request.getAttribute("password")%>
%></table>

respose内置对象 响应客户端请求有关信息,是HttpServletResponse类的实例,常用方法如下:

 void setContentType(String type); 设置响应的MIEI类型

PrintWriter getWriter(); 返回可以向客户端输出字符的一个对象,与out一同使用时,会先于out输出

void sendRedirect(String redirect); 重定向

<%@ page language="java" contentType="text/html; charset=utf-8"    import="java.util.*, java.io.*"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><%response.setContentType("text/html;charset=utf-8");out.print("<h1>response内置对象</h1>");out.print("<hr>");out.flush(); /*可以使用flush()方法先输了out内容*/PrintWriter outer = response.getWriter();outer.print("response对象生的输出内容");/*使用sendRedirect()方法需要注释out.flush()方法*/response.sendRedirect("login.jsp");%>
请求重定向与请求转发的区别
  请求重定向是客户端的行为 response.sentRedirect(); 从本质上讲相当于两次请求,前一次请求的对象不会被保存
  请求转发是服务器行为 request.getRequestDispatcher("request.jsp").forward(request, response);转发后对象会保存
 
原创粉丝点击