您的位置:首页 > Web前端 > JavaScript

JSP脚本中的9个内置对象

2015-09-07 18:58 615 查看
1.application

    application是ServletContext类的实例,application对整个Web应用都有效。application就像是一个容器,只要JSP或是servlet把数据放入application对象中,那么整个应用中的JSP和servlet都可以访问这些数据。
在JSP中的使用方法:

<%application.setAttribute(name,value); %>//将数据放入application对象中。

<%application.getAttribute(name); %>//将数据从application对象中提取出来。但需要注意的是必须在上一步操作运行之后,即相关的JSP页面载入之后,才能取出放入的数据,否则取出的数据将为null
在servlet中的使用方法:

ServletContext sc=getServletConfig().getServletContext();

sc.setAttribute(name,value);//将数据放入application对象中。

sc.getAttribute(name);//将数据从application对象中取出。

2.session

    session是HttpSession类的实例,session仅对一次会话有效。JSP或servlet把数据放入session范围内,则其他JSP或servlet在本次会话过程中都可以访问session中的数据。
在JSP中的使用方法:

<%session.setAttribute(name,value); %>//将数据放入session对象中。

<%session.getAttribute(name); %>//将数据从session对象中取出。
在servlet中的使用方法:

HttpSession session=request.getSession();

session.setAttribute(name,value);//将数据放入session对象中。

session.getAttribute(name);//将数据从session对象中取出。

3.request

    request是HttpServletRequest类的实例,request仅对本次请求有效。JSP或servlet把数据放入request范围内,则其他JSP或servlet在本次请求中都可以访问request中的数据。
在JSP中的使用方法:

<%request.setAttribute(name,value); %>//将数据放入request对象中。

<%request.getAttribute(name); %>//将数据从request对象中取出。
在servlet中的使用方法:
request.setAttribute(name,value); //将数据放入request对象中。

request.getAttribute(name); //将数据从request对象中取出。
request还有其他用法:

用户可以通过request对象发送请求到某个页面,如GET请求和POST请求,一个请求通常包括请求头和请求参数。请求头通常由浏览器自动添加,而请求参数则通常由开发人员控制添加。

String getParameter(name):获取名为name的请求参数的值

Map getParameterMap():获取所有请求参数名和参数值组成的Map对象。

Enumeration getParameterNames():获取所有请求参数名组成的Enumeration对象。

String[] getParameterValues(name):当请求参数名name对应的值有多个的时候,用这个方法,返回的是多个值组成的数组。

String getHeader(name):获取指定请求头的值

Enumeration getHeaderNames():获取所有请求头的名称

Enumeration getHeaders(name):获取name请求头的多个值

当request中有中文的时候,需要转换字符编码,方法如下:

request.setCharacterEncoding("GBK");

4.page

    page是Object的实例(在servlet中为Object page=this;),即page代表的就是当前JSP页面本身。
在JSP中使用方法:(直接使用方法,不必再使用page对象去调用)

ServletConfig  getServletConfig():返回当前jsp页面的一个ServletConfig对象,即得到的就是config对象。

ServletContext  getServletContext():返回当前jsp页面的一个ServletContext对象,即得到的就是application对象。

String  getServletInfo():获取当前jsp页面的info属性

5.config

    config对象是ServletConfig类的实例,代表的是当前jsp的配置信息。

    通过config对象可以访问web.xml文件中配置的init-param参数,通过方法getInitParameter(name)获取参数的值。

    在web.xml中配置servlet:

    <!--配置一个jsp页面的servlet-->

    <servlet>

        <servlet-name>config</servlet-name>

        <servlet-file>/configTest2.jsp</servlet-file>

        <init-param>

            <param-name>name</param-name>

            <param-value>crazyit.org</param-value>

        </init-param>

        <init-param>

            <param-name>age</param-name>

            <param-value>30</param-value>

        </init-param>

    </servlet>

    <servlet-mapping>

        <!--指定将config Servlet配置到指定路径-->

        <servlet-name>config</servlet-name>

        <url-pattern>/config</url-pattern>

    </servlet-mapping>
<!--配置一个src下的servlet-->

    <servlet>

        <servlet-name>firstServlet</servlet-name>

        <servlet-class>lee.FirstServlet</servlet-class>

        <init-param>

            <param-name>name</param-name>

            <param-value>crazyit.org</param-value>

        </init-param>

        <init-param>

            <param-name>age</param-name>

            <param-value>30</param-value>

        </init-param>

    </servlet>

    <servlet-mapping>

        <!--将名字为firstServlet的Servlet配置到指定路径-->

        <servlet-name>firstServlet</servlet-name>

        <url-pattern>/firstServlet</url-pattern>

    </servlet-mapping>

6.exception

    exception是Throwable类的实例,代表着JSP脚本中产生的错误和异常,是JSP异常机制的一部分。

    只有当jsp页面的page指令的isErrorPage为true时,该页面才会提供exception对象。exception通过getClass()和getMessage()方法来获得上一个异常页面异常的类和信息。

7.out

    out是JspWriter类的实例,通过out.print()方法可以直接将内容输出到jsp页面上。

8.pageContext对象

    pageContext是PageContext类的实例。使用pageContext对象可以访问page、request、session、application范围的变量。

    getAttribute(name):取得page范围内名为name的value。

    getAttribute(name,PageContext.REQUEST_SCOPE):取得request范围内名为name的value。

    getAttribute(name,PageContext.SESSION_SCOPE):取得session范围内名为name的value。

    getAttribute(name,PageContext.APPLICATION_SCOPE):取得application范围内名为name的value。

同样的,pageContext也提供了setAttribute()方法来将数据放到page、request、session、application范围内。

    setAttribute(name,value):将数据放到page范围内。

    setAttribute(name,value,PageContext.REQUEST_SCOPE):将数据放到request范围内。

    setAttribute(name,value,PageContext.SESSION_SCOPE):将数据放到session范围内。

    setAttribute(name,value,PageContext.APPLICATION_SCOPE):将数据放到application范围内。
不仅如此,pageContext还可以用于获取其他内置对象。

    ServletRequest getRequest():获取request对象。

    ServletResponse getResponse():获取response对象。

    ServletConfig getServletConfig():获取config对象。

    ServletContext getServletContext():获取application对象。

    HttpSession getSession():获取session对象。

因此在jsp或servlet中获取了pageContext对象,就可以通过它提供的上述方法来获取其各种内置对象。

9.response

    response是HttpServletResponse接口的实例,response代表服务器对客户端的响应。out对象可以生成字符客户端响应,但是如果要生成非字符的客户端响应就要用到response对象。

    ImageIO.write(image,"png",response.getOutputStream());

重定向功能:

response可以重定向一个请求,重定向相当于重新发起一次请求,因此会丢失所有的请求参数和request范围的属性。

    response.sendRedirect("redirect.jsp");

增加Cookie

    将Cookie值写入客户端硬盘,当客户端再一次发送请求时,Cookie值会作为请求参数一并发送给服务器端。

    Cookie c=new Cookie("username",name);

    c.setMaxAge(24*3600)//设置Cookie的生存期,括号里的单位为秒

    response.addCookie(c);//在response中添加Cookie,返回给客户端

    接收Cookie

    Cookie[] cookies=request.getCookies();//Cookie一般随request一并发送给服务器端

    for(Cookie c:cookies){

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: