JSP内置对象

Posted

tags:

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

简介

JSP的内置对象是指在JSP页面系统中已经默认内置的Java对象,这些对象不需要开发人员显式声明即可使用。在JSP页面中,可以通过存取JSP内置对象实现与JSP页面和Servlet环境的相互访问。每个内部对象均有对应所属的ServletAPI类型。

内置对象是sevlet容器创建,我们程序不创建实例,可以在jsp文件中直接使用,而且名称是小写。

JSP内置对象包括request对象、response对象、session对象、out对象、application对象、page对象、exception对象、pageContext对象、config对象。这些对象在客户端和服务器端交互的过程中分别完成不同的功能。

隐匿对象

JSP隐式对象是JSP容器为每个页面提供的Java对象,开发者可以直接使用它们而不用显式声明。JSP隐式对象也被称为预定义变量。

对象 描述
request HttpServletRequest 接口的实例
response HttpServletResponse 接口的实例
out JspWriter类的实例,用于把结果输出至网页上
session HttpSession类的实例
application ServletContext类的实例,与应用上下文有关
config ServletConfig类的实例
pageContext PageContext类的实例,提供对JSP页面所有对象以及命名空间的访问
page 类似于Java类中的this关键字
Exception Exception类的对象,代表发生错误的JSP页面中对应的异常对象

HttpServletRequest

request 对象是 javax.servlet.HttpServletRequest类型的对象。 该对象代表了客户端的请求信息,主要用于接受通过HTTP协议传送到服务器的数据。(包括头信息、系统信息、请求方式以及请求参数等)。request对象的作用域为一次请求。

常用方法 描述
String getParameter(String name) 根据页面表单组件名称获取页面提交数据
String[] getParameterValues(String name) 处理表单同名参数所有值,返回是字符串数组
String getHeader(String name) 取得浏览器头信息
String getRemoteAddr() 返回客户端的IP地址
String getLocalAddr() 返回服务器的IP地址
String getServletContext().getServerInfo() 返回Server信息
Enumeration<String> getHeaderNames() 返回所有头部名称
String getHeader("user-agent“) 头部信息浏览器及操作系统信息
String getHeader("referer") 获取请求来源
//http://localhost:8080/web
String bp = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()+ request.getContextPath();
out.print(bp);

//获取当前页面的真实路径
String u = request.getRequestURI();
out.print(request.getServletContext().getRealPath(u));


常用方法 描述
String getMethod() 取得请求方法 GET POST
void setCharacterEncoding(“utf-8”) 设置请求编码,用来处理表单提交POST中文乱码
String getCharacterEncoding() 取得编码字符集
Cookie[] getCookies() 取得所有Cookie对象
void getRequestDispatcher(“show.jsp”).forward(request,response) 转发
void setAttribute(name, o) 设置属性对象
Object getAttribute(name) 取得属性对象
String getContextPath() 获取项目路径 /web
getRequestURI() /web/index.jsp
getRequestURL() http://localhost:8080/web/index.jsp
getServletContext().getRealPath(request.getRequestURI()) 获取当前页面的真实地址

当浏览器请求一个网页时,它会向网络服务器发送一系列不能被直接读取的信息,因为这些信息是作为HTTP信息头的一部分来传送的。您可以查阅HTTP协议来获得更多的信息。

下表列出了浏览器端信息头的一些重要内容,在以后的网络编程中将会经常见到这些信息:

信息 描述
Accept 指定浏览器或其他客户端可以处理的MIME类型。它的值通常为 image/pngimage/jpeg
Accept-Charset 指定浏览器要使用的字符集。比如 ISO-8859-1
Accept-Encoding 指定编码类型。它的值通常为 gzipcompress
Accept-Language 指定客户端首选语言,servlet会优先返回以当前语言构成的结果集,如果servlet支持这种语言的话。比如 en,en-us,ru等等
Authorization 在访问受密码保护的网页时识别不同的用户
Connection 表明客户端是否可以处理HTTP持久连接。持久连接允许客户端或浏览器在一个请求中获取多个文件。Keep-Alive 表示启用持久连接
Content-Length 仅适用于POST请求,表示 POST 数据的字节数
Cookie 返回先前发送给浏览器的cookies至服务器
Host 指出原始URL中的主机名和端口号
If-Modified-Since 表明只有当网页在指定的日期被修改后客户端才需要这个网页。 服务器发送304码给客户端,表示没有更新的资源
If-Unmodified-Since 与If-Modified-Since相反, 只有文档在指定日期后仍未被修改过,操作才会成功
Referer 标志着所引用页面的URL。比如,如果你在页面1,然后点了个链接至页面2,那么页面1的URL就会包含在浏览器请求页面2的信息头中
User-Agent 用来区分不同浏览器或客户端发送的请求,并对不同类型的浏览器返回不同的内容

HttpServletResponse

response 代表的是对客户端的响应,主要是将JSP容器处理过的对象传回到客户端。response对象也具有作用域,它只在JSP页面内有效。

常用方法 描述
response.addCookie(cookie) 向客户端发送cookie数据
setCharacterEncoding("utf-8”) 设置输出字符集,一般情况下不需要设置
setContentType("text/html; charset=utf-8”) 设置当前文件输出类型编码
sendRedirect("") 当前页面重定向,浏览器地址会改变

重定向:response.sendRedirect(String url)

 发送了一次新的请求,之前的数据是不存在的,发生在客户端

 浏览器的地址是重定向的页面的地址

转发:request.getRequestDispatcher(String url).forward(request,response)

 没有开启新的请求,原来请求的数据一并传递过来,发生在服务器端。

 浏览器的地址栏不会发生改变

<jsp:forward page=“del.jsp”></jsp:forward>也是转发

out

out 对象用于在Web浏览器内输出信息,并且管理应用服务器上的输出缓冲区。在使用 out 对象输出数据时,可以对数据缓冲区进行操作,及时清除缓冲区中的残余数据,为其他的输出让出缓冲空间。待数据输出完毕后,要及时关闭输出流。

方法 描述
out.print(dataType d); 输出Type类型的值
out.println(dataType d); 输出Type类型的值然后换行
out.flush(); 刷新输出流

exception

HttpSession

HttpSession 服务端的技术 服务器会为每一个用户 创建一个独立的HttpSession

HttpSession原理 当用户第一次访问Servlet时,服务器端会给用户创建一个独立的Session 并且生成一个SessionID,这个SessionID在响应浏览器的时候会被装进cookie中,从而被保存到浏览器中 当用户再一次访问Servlet时,请求中会携带着cookie中的SessionID去访问 服务器会根据这个SessionID去查看是否有对应的Session对象 有就拿出来使用;没有就创建一个Session(相当于用户第一次访问)

域的范围: Context域 > Session域 > Request域 Session域 只要会话不结束就会存在 但是Session有默认的存活时间(30分钟)

项目服务器404错误、异常配置webx.ml

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

JSP内置对象

JSP内置对象

JSP内置对象

jsp都有哪些内置对象 作用分别是啥

JSP学习笔记-JSP内置对象

jsp都有哪些内置对象?作用分别是啥?分别有啥方法