JSP内置对象

来源:互联网 发布:js 通过代理解决跨域 编辑:程序博客网 时间:2024/06/09 16:53
JSP提供了9大内置对象,为JSP页面的操作提供了丰富的功能,这9个内置对象分别应用到请求、响应、会话、应用、输出、配置信息和异常信息等内容的操作。

下面将介绍各内置对象的使用场合。
request对象:该对象封装了客户端提交的HTTP请求信息,适用于处理客户端提交的信息。在开发Web应用时,经常应用request对象获取请求参数的值、Cooike等数据。
response对象:该对象适用于响应客户端请求信息。在开发Web应用时,经常应用response对象重定向网页,设置HTTP响应报头和缓冲区配置等。
session对象:该对象适用于在同一个应用程序中,每个客户端的各个页面中共享数据。session对象通常应用在保存用户信息和购物车信息等。
application对象:该对象适用于在同一个应用程序中,各个用户间共享数据。application对象通常应用在计数器或是聊天室中。
out对象:该对象适用于向客户端输出各种类型的数据。通常用来向JSP页面输出文本。
page对象:该对象适用于操作JSP页面自身。应用很少。
config对象:该对象用于读取服务器的配置信息。
exception对象:该对象用于操作JSP文件执行时发生的异常信息。
pageContext对象:该对象适用于get、set页面属性,然后通过jstl标签库向JSP页面输出页面内容。

out输出对象的应用:
out.print("message");//输出页面内容out.clear();//清除缓冲区中的内容out.clearBuffer();//清除当前缓冲区的内容out.isAutoFlush();//检测当前缓冲区已满时自动清空,还是抛出异常out.getBufferSize();//获取缓冲区的大小

request请求对象的应用:
request.getParameter("param");//获取请求页面传递过来的参数String userName = new String(request.getParameter("userName").getBytes("ISO-8859-1"),"UTF-8");//适用于当访问请求URL链接中参数为中文时,通过request对象获取到的中文参数值为乱码时可用request.setCharacterEncoding("UTF-8");//当获取表单提交的信息时,通过request对象获取到的中文参数值为乱码时适用request.getHeader("host");//返回服务器IP地址和端口号127.0.0.1:8080request.getHeader("user-agent");//返回客户端浏览器代理,用来判断是否是MSIE类型,设置兼容浏览器样式。request.getMethod();//返回客户端向服务器端传送数据的方法,如get postrequest.getProtocol();//返回请求协议名称,如HTTP/1.1request.getRequestURI();//获取客户端地址,不包含参数request.getRequestURL();//获取客户端地址,包含参数request.getRealPath();//返回当前请求文件的绝对路径request.getRemoteAddr();//返回客户端Ip地址request.getRemoteHost();//返回客户端的主机名,通常是客户端Ip地址request.getServerName();//返回服务器主机名,通常是服务器IP地址request.getServletPath();//返回客户端请求的文件路径request.getServerPort();//返回服务器的端口号request.getCookies();获取客户端保存的Cookie数据

response回应对象的应用
response.setHeader("fresh", "10");//每隔10秒自动刷新一次页面response.getHeader("fresh","5,URL=login.jsp");//网页5秒后自动跳转到指定的login.jsp页面response.setContentType("type");//让网页内容以不同的格式输出到浏览器中,type的可选值有text/html(默认)、text/plain、application/x_msexcel和application/msword;charset=UTF-8等response.sendRedirect("login.jsp");//重定向到login.jsp页面,使用该方法后,不要再有jsp脚本代码,因为后面代码没意义,并有可能产生错误。

session会话对象的应用
session.setAttribute("name", nameValue);//保存nameValue的值在session范围的name属性中session.getAttribute("name");//获取session范围的name属性的值,获取到的Object对象需要强制转型session.removeAttribute("name");//移除session范围的name属性值session.setMaxInactiveInterval(3600);//设置session的失效时间为1小时session.invalidate();//销毁session。



application应用对象的应用
application.setAttribute("name", nameValue);//保存nameValue的值在application范围的name属性中application.getAttribute("name");//获取application范围的name属性的值,获取到的Object对象需要强制转型application.removeAttribute("name");//移除application范围的name属性值application.getInitParameter("userName");//获取web.xml文件中配置的userName参数的值application.getAttributeNames();//该方法用于返回所有已定义的应用程序初始化参数名的枚举,返回类型是Enumeration,当Enumeration对象hasMoreElement()时,遍历nextElement(),并通过application.get(nexElement())得到nextElement对应的值

pageContext对象的应用
pageContext.setAttribute("name", nameValue);//保存nameValue的值在pageContext范围的name属性中pageContext.getAttribute("name");//获取pageContext范围的name属性的值,获取到的Object对象需要强制转型

config对象的应用
config.getServletContext();//获取servlet上下文config.getServletName();//获取servlet服务器名config.getInitParameter();//获取服务器所有初始化参数名称,返回Enumeration对象config.getInitParameterNames();//获取服务器中所有配置参数名

exception对象的应用
exception.getMessage();//返回exception对象的异常信息字符串exception.getLocalizedmessage();//返回本地化的异常错误exception.toString();//返回关于异常错误的简单信息描述

补充:
重定向response.sendRedirect("/top.jsp");出现404错误,原因是加了一个"/",意味着请求上一级目录中的top.jsp,如果在上一级目录中不存在top.jsp页面,则会出现404错误。修改的方法是将"/"去掉。
0 0