JSP页面概述
JSP(JavaServer Page)是一种动态页面技术,它在java web应用中主要实现表现逻辑。JSP页面是在HTML页面中嵌入JSP元素的动态Web页面,一般来说JSP页面中可以包含的元素有如下:
- 声明:声明变量与定义方法;标签语法为<%!Java声明%>;
- 小脚本:执行业务逻辑的Java代码,标签语法<%Java代码%>;
- 表达式:用于在JSP页面输出表达式的值,标签语法<%=表达式%>;
- 指令:指定转换时项容器发出的指令,标签语法<%@指令%>;
- 动作:向容器提供请求时的指令,标签语法<jsp:动作名/>;
- EL表达式:jsp2.0引入的表达式语言,标签语法${表达式};
- 注释:用于文档注释,<%--任何文本--%>。
JSP指令
指令用于向容器提供关于JSP页面的而总体信息。指令有3种类型:
- page指令:page指令用于通知容器关于JSP页面的总体特性。该指令适用于整个转换单元而不仅仅是它所声明的页面。它有多个属性,下面说明几个较为重要的:
1) import属性,类似于Java程序的import语句,它将指定的类导入到页面中。可以在import属性中导入多个包,包名用逗号分开即可,如下:
<%@ page import = “java.util.*,java.io.*,com.demo.*”%>
2) contentType和pageEncoding属性。contentType属性指定JSP页面输出的MIME类型和字符集,MIME类型的默认值是text/html,字符集的默认值是ISO-8859-1。MIME类型和字符集之间用分号分开:
<%@page contentType=”text/html;charset=ISO-88159-1”%>
pageEncoding属性指定JSP页面JSP页面的字符编码
3) session属性,指定jsp页面是否参加HTTP会话。
4) errorPage与isErrorPage属性。
在页面执行过程中,嵌入在页面中的Java代码可能抛出异常。与一般的java程序一样,在jsp页面中也可以使用try-catch处理异常。然而,jsp规范定义一种更好的方法,它可以是错误厝里代码也主页面diamante分离,从而提高异常处理机智的可重用性。errorPage属性将异常代理给另一个包含错误处理代码的jsp页面。isErrorPage属性表示该页面是否是错误处理页面。
- include指令:实现把另一个文件的内容包含到当前页面中。
- taglib指令:用来指定JSP页面中使用标准标签或自定义标签的前缀与标签库的URI。
JSP动作
l jsp:include,在当前页面中包含另一个页面的输出。
l jsp:forward,将请求转发到指定的页面。
l jsp:useBean,查找或创建一个JavaBeans对象。
l jsp:setProperty,设置JavaBeans对象的属性值。
l jsp:getProperty,返回JavaBeans对象的属性值。
表达式语言
表达式语言(Expression Language,EL)是jsp 2.0新增加的特性,它是一种可以在jsp页面中使用的简介的数据访问语言。表达式语言以$开头,后面是一对大括号,括号里面是合法的EL表达式。该结构可以出现在JSP页面模板文本中,也可以出现在JSP标签的属性中。
JSP隐含变量
- request与response变量。
- out变量。是输出流对象,使用它的print方法可向客户端打印输出所有的基本数据类型、字符串,以及用户自定义的对象。
- application变量。application是应用上下文对象(javax.servlet.ServletContext类对象),在jsp页面中使用和在Servlet中使用相同。
- session变量。会话对象,要使用会话对象,必须要求JSP页面参加HTTP会话,即要求将JSP页面的page指令中的session属性设置为true。
- pageContext变量。是页面上下文对象,它是javax.servlet.jsp.PageContext类的实例,主要有以下3个作用。
1) 存储隐含对象的引用。
2) 提供了在不同作用域内返回或设置属性的非常便捷的方法。
3) 提供了forward()方法和include()方法实现将请求转发到另一个资源和将一个资源的输出包含到当前页面中的功能。
4) config变量。
5) exception变量,异常对象。它被用阿里进行异常处理。
作用域对象
在jsp页面中有4个作用域对象,它们的类型分别是ServletContext、HttpSession、HttpServletRequest和PageContext,这4个作用域分别称为应用(application)作用域,会话(session)作用域、请求(request)作用域和页面(page)作用域。