JSP内置对象(上)
内置对象简介
JSP内置对象是Web容器创建的一组对象,不使用new关键字就可以使用的内置对象。
 
JSP九大内置对象
 
Web程序的请求与响应模式
用户发送请求(request)
服务器给用户响应(response)

out对象
out对象是JspWriter类的实例,是向客户端输出内容常用的对象。

Eg:
<body> <h1>out内置对象</h1> <% out.println("<h2>静夜思</h2>"); out.println("床前明月光<br>"); out.println("疑是地上霜<br>"); out.println("举头望明月<br>"); out.println("低头思故乡<br>"); %> 缓冲区大小:<%=out.getBufferSize() %>byte<br> 缓冲区剩余大小:<%=out.getRemaining() %>byte<br> 是否自动清空缓冲区:<%=out.isAutoFlush() %><br>
get与post

request对象
客户端的请求信息被封装在request对象中,通过它才能了解客户的需求,然后做出响应。
它是HttpServletRequest类的实例。request对象具有请求域,即完成客户端的请求之前,该对象一直有效。
常用方法

Eg:
reg.jsp
.....
<body> <h1>用户注册</h1> <hr> <form name="regForm"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="read">读书 <input type="checkbox"name="favorite"value="music">音乐 <input type="checkbox"name="favorite"value="movie">电影 <input type="checkbox"name="favorite"value="internet">上网 </td> </tr> <tr> <td colspan="2"><input type="submit"value="提交"/> </td> </tr> </table> </form> </body>
.....
request.jsp
...... <body> <h1>request内置对象</h1> <% request.setCharacterEncoding("utf-8");//解决中文乱码问题 %> 用户名:<%=request.getParameter("username") %><br> 爱好:<% String[] favorites = request.getParameterValues("favorite"); for(int i=0; i<favorites.length; i++) { out.println(favorites[i]+"  "); } %> </body> ......
response对象
response对象包含了响应客户请求的有关信息,但在JSP中很少直接用到它。它是HttpServletResponse类的实例。
response对象具有页面作用域,即访问一个页面时,该页面内的response对象只能对这次访问有效,其它页面的response对象对当前页面无效。
常用方法:

response.jsp:
<%@ page language="java" import="java.util.*,java.io.*" pageEncoding="utf-8"%> <% response.setContentType("text/html;charset=utf-8");//设置响应的MIMI类型 out.println("<h1>response内置对象</h1>"); out.println("<hr>"); //out.flush();//强制清空缓存区,并且把缓冲区内容写到浏览器上,可测试有无这句话的效果。 PrintWriter outer = response.getWriter();//获得输出流对象 outer.println("response对象生成的输出流outer对象"); response.sendRedirect("reg.jsp");//请求重定向,测试本句话需要为out.flush();加注释否则会抛出异常。 %>
请求转发与请求重定向
请求重定向:客户端行为,response.sendRedirect(),从本质上讲等同于两次请求,前一次的请求对象不会保存,地址栏的URL地址会改变。response对象的方法。
请求转发:服务器行为,request.getRequestDispatcher().forward(req,resp);是一次请求,转发后请求对象会保存,地址栏的URL地址不会改变。request对象的方法。
解释理解:
假设去办理护照
重定向:你先去了A局,A局的人说:这事不归我们管,去B局,然后,你就从A局退了出来,自己乘车去了B局。
转发:你去了A局,A局看了以后,知道这个事情其实应该B局来管,但是他没有把你退回来,而是让你坐一会,自己到后面办公室联系了B的人,让他们办好后送过来。
    ----------如果你觉得这篇文章对你有帮助就点个赞呗!-----------
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号