jsp的九大内置对象

Posted lemon

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jsp的九大内置对象相关的知识,希望对你有一定的参考价值。

九大内置对象

 

jsp

servlet

 

对象名

类型

使用范围

request

HttpServletRequest

请求 浏览器--->服务器

response

HttpServletResponse

返回 服务器--->浏览器

config

ServletConfig

用来获取web.xml中的信息

application

ServletContext

整个项目中的全局信息

exception

Thrawable

捕获异常 try/catch  throws

page

this

当前对象,当前页面对象

out

JspWriter---->PrintWriter

当前页面输出流

pageContext

PageContext

当前页面的上下文,整个页面

Session

HttpSession

会话  浏览器和服务器通讯

   1.out  对象

       JspWriter 带缓冲的PrinterWriter  就是输出流, 使用范围是当前页面,超出了当前页无效。out 对象用于在Web浏览器内输出信息,并且管理应用服务器上的输出缓冲区。在使用 out 对象输出数据时,可以对数据缓冲区进行操作,及时清除缓冲区中的残余数据,为其他的输出让出缓冲空间。待数据输出完毕后,要及时关闭输出流。其最常用的方法为print,可在页面中显示字符串信息,out的作用域为当前页面输出流。

 

PrinterWriter    直接向浏览器输出内容
JspWriter       向Jsp 缓冲区写内容
out.print()      不换行页面中显示字符串信息
out.println();      换行页面中显示字符串信息
  

 

 2.pageContext 对象

      当前页面的上下文,   使用范围是当前页面,超出了当前页无效。 pageContext 对象的作用是取得任何范围的参数,通过它可以获取 JSP页面的out、request、reponse、session、application 等对象。pageContext对象的创建和初始化都是由容器来完成的,在JSP页面中可以直接使用 pageContext对象。pageContext的常用方法有getRequest()获取request对象,getResponse()获取response对象,getSession()获得session对象,getOut()获取out对象,setAttribute(String key,Object value)保存属性,getAttribute(String key)获取属性,include("url")请求指定的资源,并且将目标资源的响应结果包含在调用页面的响应中:

 

<%
   Object obj = new Object();
   pageContext.getRequest();
   pageContext.getResponse();
   pageContext.getSession();
   pageContext.getOut();
   pageContext.setAttribute("key",obj);
   pageContext.getAttribute("key");
   pageContext.include("资源地址");
   %>

 

 3. page==this 对象 一般用在编译指令中 <%@ page   %>

 

  page 对象代表JSP本身,只有在JSP页面内才是合法的。 page隐含对象本质上包含当前 Servlet接口引用的变量,类似于Java编程中的 this 指针。

 

 4.  request 请求  浏览器到服务器

   request 对象是 javax.servlet.httpServletRequest类型的对象。 该对象代表了客户端的请求信息,主要用于接受通过HTTP协议传送到服务器的数据。(包括头信息、系统信息、请求方式以及请求参数等)。request对象的作用域为一次请求(也就是request作用域)。request的常用方法有getParameter(String name)根据表单组件名称获取页面提交数据,getParameterValues(String name)获取一组以相同名称命名的表单组件提交的数据,setCharacterEncoding(String charset)在调用getParameter()方法前进行设定,用于解决中文乱码,getRequestDispatcher(String path)返回一个javax.servlet.RequestDispatcher对象,该对象的forward()方法用于转发请求:

 

 <%
   Object obj = new Object();
       request.getParameter("uname");
       request.getParameterValues("rid");
       request.setCharacterEncoding("UTF-8");
       request.getRequestDispatcher("目标页面").forward(request,response);
   %>

 

 

 

当前请求存属性值

request.setAttribute("name","godyang");

当前请求取值

request.getAttribute("name")

请求传递参数

<a href="b.jsp?name=shunshun">  b.jsp</a>

或者

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

   <input  type=text name="name" value="shunshun" />

   </form>

 

取得请求参数的值

request.getParameter(参数名);  request.getParameterValues(参数名)

 

 

 

 

5 . reponse  返回  服务器返回到浏览器

 

    response 代表的是对客户端的响应,主要是将JSP容器处理过的对象传回到客户端。response对象也具有作用域,它只在JSP页面内有效。response的常用方法有addCookie(Cookie cookie)向客户端添加cookie,serContentType(String type)设置HTTP响应的contentType类型,setCharacterEncoding(String charset)设置响应所采用的字符编码类型,sendRedirect(String location)将请求重新定位到一个新的地址上,这是地址栏上的地址会改变:

 

 <%
   response.addCookie(cokkie);
   response.setContentType("type");
   response.setCharacterEncoding("utf-8");
   response.sendRedirect("重新定位的页面");
   %>

 

获取返回流

PrintWriter out = response.getWriter();

返回内容形式

response.setContentType("text/html");

返回的编码

response.setCharacterEncoding("UTF-8");

页面重定向

response.sendRedirect("index.jsp");

浏览器端保存cookie对象

response.addCookie()

 

6 session 会话  浏览器和服务器通讯    当浏览器关闭的时候会话结束

    当浏览器第一访问服务器的时候就会产生一个会话。session 对象是由服务器自动创建的与用户请求相关的对象。服务器为每个用户都生成一个session对象,用于保存该用户的信息,跟踪用户的操作状态。session对象内部使用Map类来保存数据,因此保存数据的格式为 “Key/value”。 session对象的value可以使用对象类型。session的常用方法有setAttribute(String key,Object value)以key/value的形式将对象保存到session中,getAttribute(String key)通过key值获取session中保存的value,invalidate()强制session对象失效,getId()获取sessionid,setMaxInactiveInterval(int interval)设置session的非活动时间,getMaxInactiveInterval()获取session的有效非活动时间,removeAttribute(String key)删除session中对应key的value值:

 

 <%
   Object obj = new Object();
   session.setAttribute("key",obj);
   session.getAttribute("key");
   session.setMaxInactiveInterval(100);
   session.getMaxInactiveInterval();
   session.getId();
   session.removeAttribute("key");
   session.invalidate();
   %>

 

7 application 应用   tomcat启动的时候整个项目就是一个应用

     当把值存入应用中,只有当tomcat关闭的时候才销毁。 application 对象可将信息保存在服务器中,直到服务器关闭,否则application对象中保存的信息会在整个应用中都有效。与session对象相比,application对象生命周期更长,类似于系统的“全局变量”。application常用方法有setAttribute(String key,Object value)以key/value的形式将对象存储到application中,getAttribute(String key)通过key获取application中存储的对象,getRealPath(String path)返回相对路径的真实路径:

 

 <%
   Object obj = new Object();
   application.setAttribute("key",obj);
   application.getAttribute("key");
   application.getRealPath("路径名");
   %>

 

 

 

 8. exception 对象

   作用是显示异常信息,只有在包含 isErrorPage="true" 的页面中才可以被使用,在一般的JSP页面中使用该对象将无法编译JSP文件。excepation对象和Java的所有对象一样,都具有系统提供的继承结构。exception 对象几乎定义了所有异常情况。在Java程序中,可以使用try/catch关键字来处理异常情况; 如果在JSP页面中出现没有捕获到的异常,就会生成 exception 对象,并把 exception 对象传送到在page指令中设定的错误页面中,然后在错误页面中处理相应的 exception 对象。

 

9. config 对象的主要作用是取得服务器的配置信息。通过 pageConext对象的 getServletConfig() 方法可以获取一个config对象。当一个Servlet 初始化时,容器把某些信息通过 config对象传递给这个 Servlet。 开发者可以在web.xml 文件中为应用程序环境中的Servlet程序和JSP页面提供初始化参数。

以上是关于jsp的九大内置对象的主要内容,如果未能解决你的问题,请参考以下文章

JavaWeb--jsp九大内置对象完整总结

jsp九大内置对象及四个作用域

jsp九大内置对象及四个作用域

面试题:jsp九大内置对象

整理一下JSP的九大内置对象和四大作用域

jsp九大内置对象和四大作用域