概念
Java Server Pages: java服务器端页面
* 可以理解为:一个特殊的页面,其中既可以指定定义html标签,又可以定义java代码
* 用于简化书写!!!
原理
* JSP本质上就是一个Servlet
JSP的脚本:JSP定义Java代码的方式
1. <% 代码 %>:定义的java代码,在service方法中。service方法中可以定义什么,该脚本中就可以定义什么。
2. <%! 代码 %>:定义的java代码,在jsp转换后的java类的成员位置。
3. <%= 代码 %>:定义的java代码,会输出到页面上。输出语句中可以定义什么,该脚本中就可以定义什么。
指令
作用:用于配置JSP页面,导入资源文件
格式:<%@ 指令名称 属性名1=属性值1 属性名2=属性值2 ... %>
分类:
1.page: 配置JSP页面的
属性:
* contentType:等同于response.setContentType()
1. 设置响应体的mime类型以及字符集
2. 设置当前jsp页面的编码(只能是高级的IDE才能生效,如果使用低级工具,则需要设置pageEncoding属性设置当前页面的字符集)
* import:导包,建议导包写在多个指令;
* buffer :字节流输出的缓存区大小;
* errorPage : 当前页面如果发生错误了,会吧输出结果现在浏览器上,这样不好。所以这个属性是将跳转到一个提醒页面(服务器正忙。。。。);
* isErrorPage:表示当前是否为错误页面,默认是false,如果是true的话,就可以在本页面中使用exception对象了。可以输出错误日志了。
* true:是,可以使用内置对象exception
* false:否。默认值。不可以使用内置对象exception
<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<%@ page contentType="text/html;charset=UTF-8"
pageEncoding="gb2312"
language="java"
errorPage="500.jsp"
buffer="8kb" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
<h1>ce shi </h1>
<%
List list = new ArrayList();
int i=11/0;
%>
</body>
</html>
2.include:页面包含的。导入页面的资源文件
<%@include file="top.jsp"%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<h1>这top.jsp,是一个logo页面</h1>
<%@ page contentType="text/html;charset=UTF-8" language="java" isErrorPage="true" %>
<%@ include file="top.jsp"%>
<html>
<head>
<title>服务器正忙</title>
</head>
<body>
<h1>服务器正忙</h1>
<%
//这里可以将错误日志写在日志文件中去;
String message = exception.getMessage();
System.out.println(message);
%>
</body>
</html>
3.taglib : 导入库资源
先在库jar包放到libs目录下;然后通过下面指令导入库即可使用了。
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
* prefix:前缀,自定义的
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>Title</title>
<c:if test=""></c:if>
</head>
<body>
</body>
</html>
注释
1. html注释:
<!-- -->:只能注释html代码片段
2. jsp注释:推荐使用
<%-- --%>:可以注释所有
JSP的内置对象:
* 在jsp页面中不需要获取和创建,可以直接使用的对象
* jsp一共有9个内置对象。
变量名 真实类型 作用
* pageContext PageContext 当前页面共享数据,还可以获取其他八个内置对象
* request HttpServletRequest 一次请求访问的多个资源(转发)
* session HttpSession 一次会话的多个请求间
* application ServletContext 所有用户间共享数据
* response HttpServletResponse 响应对象
* page Object 当前页面(Servlet)的对象 this
* out JspWriter 输出对象,数据输出到页面上
* config ServletConfig Servlet的配置对象
* exception Throwable 异常对象