1、 JSP简介
1. 1 JSP介绍
1.2 常见的视图层技术
1.3 前后端分离式开发式
2、JSP运行原理
2.1 JSP技术特点
2.2 JSP与Servlet区别
3、JSP的使用
3.1 JSP的三种原始标签
3.1.1 <%! %> 声明标签
3.1.2 <% %>脚本标签
3.1.3 <%= %>赋值标签
3.1.4 JSP 原始标签的使用
<%@ page import="java.util.Random" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
int flag = new Random().nextInt(100);
if (flag <= 20) {
%>
中奖了 <%= flag%>
<% } else { %>
再试试吧 <%= flag%>
<% } %>
</body>
</html>
3.2 JSP 的指令标签
3.2.1 JSP 指令标签分类:
3.2.1.1 Page 指令标签
- contentType
设置响应类型和编码。
- pageEncoding
设置页面的编码。
- import
导入所需要的包。
- language
当前 JSP 页面里面可以嵌套的语言。
- session
设置 JSP 页面是否获取 session 内置对象。
- buffer
设置 JSP 页面的流的缓冲区的大小。
- autoFlush
是否自动刷新。
- extends
声明当前 JSP 的页面继承于那个类.必须继承的是 httpservlet 及其子类。
- isELIgnored
是否忽略 el 表达式。
- errorPage
当前 JSP 页面出现异常的时候要跳转到的 JSP 页面。
- isErrorPage
当前 JSP 页面是否是一个错误页面。若值为 true,可以使用 JSP 页面的一个内置对象exception。
3.2.1.2 Include 指令标签
3.2.1.3 Taglib 指令标签
3.3 JSP 的内置对象
- request 对象
request 对象是 HttpServletRequest 类型的对象。
- response 对象
response 对象是 HttpServletResponse 类型的对象。
- session 对象
session 对象是 HttpSession 类型的对象。只有在包含 session=“true” 的页面中才可以被使用。
- application 对象
application 对象是 ServletContext 类型的对象
- out 对象
out 对象是 JspWriter 类型的对象。
- config 对象
config 对象是 ServletConfig 类型的对象。
- pageContext 对象
pageContext 对象是 PageContext 类型的对象。作用是取得任何范围的参数,通过它可以获取 JSP 页面的 out、request、reponse、session、application 等对象。pageContext对象的创建和初始化都是由容器来完成的,在 JSP 页面中可以直接使用 pageContext 对象。
- page 对象
page 对象代表 JSP 本身。
- exception 对象
exception 对象的作用是显示异常信息,只有在包含 isErrorPage=“true” 的页面中才可以被使用。
3.4 请求转发
3.4.1 请求转发与重定向的区别
3.4.2 请求转发案例
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/language.do")
public class LanguageServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String header = req.getHeader("Accept-language");
req.setAttribute("key", header);
req.getRequestDispatcher("index.jsp").forward(req, resp);
}
}
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
<%
String value = (String)request.getAttribute("key");
%>
当前支持的语言为:<%= value%>
</body>
</html>
3.5 JSP 中的四大作用域对象
4、JSTL 标签库
4.1 JSTL 标签分类
4.1.1 核心标签
4.1.2 格式化标签
4.1.3 SQL 标签
4.1.4 XML 标签