日期:2014-05-16  浏览次数:20426 次

jsp的内置对象和常见问题
"pageContext"对象直译时可以称作"页面上下文"对象,代表的是当前页面运行的一些属性。

"out"对象代表了向客户端发送的数据对象,与"response"对象不同,通过"out"对象发送的内容将是浏览器显示的内容,是文本一级的。

"config"对象提供了一些配置信息。已获得Servlet初始化的参数。

"page"对象代表了真正运行的由JSP文件产生的类对象。

"exception"对象则代表了JSP文件运行时所产生的异常对象,此对象不能再一般JSP文件中直接使用,而只能在使用"<%@ page isErrorPage="true"%>"的文件中使用。

myResult.jsp 第一个

<!--  遍历 -->
   username:<%=request.getAttribute("username") %>
    
   <% List<String> list = (List<String>)request.getAttribute("list");
 
  for(int i = 0;i<list.size();i++)
  {
  out.println(i);
   %>
  <br>
  <%}%>

HttpServletResponse对象的sendRedirect(String location)方法称作重定向。如果location地址前加上“/”,则表示相对于Servlet容器的根来请求,即http://localhost:8080,如果location地址前 没有加“/”,则表示相对于当前请求的URI来寻求地址。
RequestDispatcher的forward(request,response)称作求转发。

request请求转发:整个过程在同一个请求当中。
当客户端对服务器端有一个请求时,服务器端通过Servlet容器生成servlet对象(resquest,response)来调用doGet和doPost方法来执行请求响应的整个过程。

重定向:当客户端向服务器发送一个请求,到servlet对象执行到sendRedirect()时,会给服务器发送一个响应,让客户端去执行sendRedirect()方法的参数,这样客户端会向服务器在发送一次新请求访问这个参数页面,把结果返回给客户端。这个过程中发生了两次请求。

RequestDispatcher是通过调用HttpServletRequest对象的getRequestDispatcher()方法得到的,于是属于请求对象的方法。

sendRedirect()是HttpServletResponse对象的方法,即相应对象的方法,既然调用了响应对象的方法,那就表明整个请求过程已经结束了,服务器开始向客户端返回执行结果。