概述
JSP是java 服务器页面,它运行在服务器端,本质上就是一个serlvet,产生的java文件和class保留在tomcat的word目录下.

JSP主要作用是将内容的生成与页面相分离。
JSP脚本
JSP脚本就是在JSP编写Java代码。常见的三种脚本
pageEncoding="UTF-8"%>
Insert title here
/* Java代码 */
System.out.print("JSP脚本");
int i = 10;
%>
/* 后面不要添加封号 */
i
%>
/* 声明成员 */
String name = "jake";
%>El表达式达式语言
从jsp2.0开始,jsp的内置表达式语言,用来替代。常见的用法: 获取域中数据、执行运算、获取常见的web对象、调用java的方法。格式:${el表达式}
获取简单数据
格式:${pageScope | requestScope | sessionScope | applicationScope.属性名}
开发经常简写:
${属性名}:依次从pageContext,request,session,application查找指定属性,若查找到返回值,结束该次查找
若查找不到,返回""
获取容器数据
获取数组中的数据
${域中的名称[index]}
获取list中的数据
${域中的名称[index]}
获取map中的数据
${域中的名称.键名}
JavaBean导航
首先javabean规范:
1. 必须是一个公共的具体的类 public class
2. 提供私有的字段 private String id;//id称之为字
3. 提供公共访问字段的方法 get|set|is方法
4. 提供一个无参的构造器
5. 一般实现序列化接口 serializable
获取JavaBean数据的el格式: ${域中javabean名称.bean属性}
El内置对象
JSP共有9大内置对象,对应的数据类型如下:
JSP内置对象
类型
out
JspWriter
request
HttpServletRequest
response
HttpServletResponse
session
HttpSession
exception
Throwable
page
Servlet(this)
config
ServletConfig
application
ServletContext
pageContext
PageContext
其中有application、session、request、pageContext域对象的生命周期为:整个项目、一次会话、一次请求、一个页面。
pageContext作用可以操作其它域对象与获取其它内置对象
// 操作其它内置域对象
/* request.setAttribute("username", "jake"); */
pageContext.setAttribute("rKey", "rValue", pageContext.REQUEST_SCOPE);
// 获取其内置对象
pageContext.getRequest();
pageContext.getResponse();
%>JSP动作标签
请求转发
注意:请求转发输入的路径是内部路径。
动态包含
动态包含:将被包含页面或者servlet的运行结果包含到当前页面中.
JSP指令
JSP指令主要是用来声明jsp页面的一些属性和动作。格式:。JSP指令主要分为三大类
page:主要声明jsp页面的一些属性
include:静态包含.
taglib:导入标签库
注意:指令可以放在任意位置,一般都放在jsp页面最上面.
page

其中创建的属性:
contentType
设置响应流的编码,及通知浏览器用什么编码打开.设置文件的mimetype
pageEncoding
设置页面的编码
导入所需要的包
contentType和pageEncoding联系:
若两者都出现的时候,各自使用各自的编码
若只出现一者,两个都使用出现的这个编码
若两者都不出现,使用服务器默认的编码 tomcat7使用的iso-8859-1
page属性
language:当前jsp页面里面可以嵌套的语言
buffer:设置jsp页面的流的缓冲区的大小
autoFlush:是否自动刷新
extends:声明当前jsp的页面继承于那个类.必须继承的是httpservlet 及其子类
session:设置jsp页面是否可以使用session内置对象
isELIgnored:是否忽略el表达式
errorPage:当前jsp页面出现异常的时候要跳转到的jsp页面
isErrorPage:当前jsp页面是否是一个错误页面
若值为true,可以使用jsp页面的一个内置对象 exception
include指令
静态包含,就是将其他页面或者servlet的内容包含进来,一起进行编译运行.生成一个java文件.
格式:
taglib指令
taglib指令用于导入标签库。
格式:
jstl
jsp标准的标签库语言,apache的用来替代java脚本。通常我们是使用其中的核心类库core。
在使用需要先导入jar包(jstl.jar和standard.jar)。其次在导入标签库
c:if
格式:满足的时候输出的内容
3>4;
3<4;
c:forEach
${i }
${vs.count }
${vs.current }
// List
ArrayList list = new ArrayList();
list.add("jake");
list.add("rose");
list.add("jerry");
request.setAttribute("list", list);
%>
${i }
















