什么是jsp?
jsp全名为Java Server Pages(Java服务器页面)。它在传统的网页HTML文件中插入 java程序段 和 jsp标记。
JSP的脚本:
即:JSP定义Java代码的方式
- <% 代码 %>:定义的java代码,在service方法中。service方法中可以定义什么,该脚本中就可以定义什么。
- <%! 代码 %>:定义的java代码,在jsp转换后的java类的成员位置。
- <%= 代码 %>:定义的java代码,会输出到页面上。输出语句中可以定义什么,该脚本中就可以定义什么。
jsp小案例:
给出一个 index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<% response.getWriter().write("hello jsp..."); %>
<h1>hhhhhhh
</h1>
</body>
</html>
jsp存在的意义:
传统的过程是,通过java从数据库中取数据,取完数据在页面上显示,html是无法做到的,servlet又太麻烦了,所以使用jsp。jsp本质是简化了的servlet。
浏览器发送请求给servlet,然后java从数据库中取数据,这个时候servlet可以选择自己把数据一条一条write给浏览器,但是很麻烦,所以用jsp,让jsp代替人执行这个过程。
jsp工作原理:
jsp在第一次访问时会被web容器翻译成servlet。如写了一个index.jsp,第一次访问会被翻译成index.jsp.java,把jsp里的标签通过out.write写出来给浏览器。然后编译成字节码文件index.jsp.class。
读者可以打开 index.jsp.java 文件,来细细体会笔者上述的文字。
JSP指令
作用:用于配置JSP页面,导入资源文件
格式:<%@ 指令名称 属性名1=属性值1 属性名2=属性值2 … %>
分类:
-
page : 配置JSP页面的
1、contentType:等同于response.setContentType()
(1)设置响应体的mime类型以及字符集
(2)设置当前jsp页面的编码(只能是高级的IDE才能生效,如果使用低级工具,则需要设置pageEncoding属性设置当前页面的字符集)
2、import:用来导包
3、errorPage:当前页面发生异常后,会自动跳转到指定的错误页面
4、isErrorPage:标识当前也是是否是错误页面。
(1)true:是,可以使用内置对象exception
(2)false:否。默认值。不可以使用内置对象exception -
include : 页面包含的。导入页面的资源文件:
<%@include file="top.jsp"%>
-
taglib : 导入资源,
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
prefix:定义前缀的
注释:
(1)html注释:<!-- -->
只能注释html代码片段
(2)jsp注释:<%-- --%>
可以注释所有
jsp的九大内置对象
顾名思义就是在jsp页面中不需要创建,直接使用的对象。同样也可以在 index.jsp.java 文件中找到。
四个域对象:
pageContext (PageContext类型的;当前页面共享数据,还可以获取其他八个内置对象)
request (HttpServletRequest类型的)
session(HttpSession类型的 )
application(ServletContext)
响应对象:
response(HttpServletResponse)
当前页面(Servlet)的对象:
page(Object)
输出对象:
out(JspWriter)
Servlet的配置对象
config(ServletConfig)
异常对象
exception(Throwable)