JSP基础(二)
1、 jsp的内置对象 在jsp的java代码块、表达式块等中可以直接使用的引用,称为jsp的内置对象。常用的内置对象有9个:pageContext、request、session、application、response、config、out、page、exception。 这9个对象在jsp的代码块、表达式块中可以直接使用,之所以可以直接使用,是因为java代码块和表达式块被jsp引擎翻译后均出现在servlet的_jspService()方法中。而这9个对象,就是_jspService()方法中的局部变量。
11、pageContext 页面上下文,其具有一个只在当前页面范围的域属性空间,即其具有setAttribute()方法和getAttribute()方法。但,由于在当前页面范围,数据不存放到域属性空间也可以直接使用,将数据存放到域属性空间反而多此一举,所以这些方法并不常用。 不过,在同一页面中,为了使用EL表达式来访问某变量的值,此时一般使用pageContext pageContext具有一些get方法,可以获取到request、response、session、servletContext、servletConfig、page(当前servlet)、exception、out等另外八个内容对象 12、application 13、out 14、page 15、exception 16、其他对象 还有request、response、session及config2、 jsp指令 根据功能的不同,jsp中包含三类指令:page指令,即页面指令;include指令,即包含指令;taglib指令,即标签库指令。 无论哪一种指令,其使用的语法格式均为如下:
<%@ 指令名称 属性名=属性值 属性名=属性值... %>21、 page指令 该指令用于设置当前jsp页面的相关信息。一个jsp文件可以包含多个page指令。常用的属性意义及用法如下
pageEncoding属性: 用于设置当前jsp页面所使用的字符编码格式。即,用户在浏览器中通过右击查看编码所在到的编码格式 <%@ page pageEncoding="utf-8"%> 其被jsp翻译引擎翻译到Servlet中的语句是: response.setContentType("text/html;charset=UTF-8"); contentType属性: <%@ page contentType="text/html;charset=UTF-8"%> 与pageEncoding区别:如果响应的内容是text/html,则一样,如果不是,则通过contentType设置 如 text/xml import属性: 用于完成在jsp页面中导入指定的类,其被翻译引擎翻译为servlet中的import语句: <%@ page import="java.util.*,java.net.*"%> errorPage属性: <%@ page errorPage="/404.jsp"%> // 发生错误时,跳转到错误页面 isErrorPage属性: 在错误处理页面配置,错误处理页面才会有exception内置对象(区别) <%@ page isErrorPage="true"%> <%=exception.getMessge() %> // 调用exception对象信息 session属性: 使用request的getSeesion()的原则: 若向Session域中存放数据,则使用getSession(true),即getSession() // 有session,存数据,没有session,创建session 若向Session域中读取数据,则使用getSession(false) // 不会创建session <%@ page session="false"%> // 默认是true22、 include指令: include指令会将include所包含的网页内容解析后,嵌入到第一个网页中,属于静态联编。可以共享相同变量,变量不能同名
<%@ include file="/next.jsp"%>