一、JSP简介
JSP全称Java Server Pages,是一种动态网页开发技术(是Java与前端的结合)。它使用JSP标签在HTML网页中插入Java代码。标签以<% %>的形式存在。
JSP是一种Java servlet,主要用于实现Java web应用程序的用户界面部分。
第一个JSP程序
index.jsp
<html>
<head>
<title>第一个JSP程序</title>
</head>
<body>
<%
out.println("Hello World!");
%>
</body>
</html>
JSP执行原理
- 在tomca\conf\web.xml中
<servlet>
<servlet-name>jsp</servlet-name>
<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>jsp</servlet-name>
<url-pattern>*.jsp</url-pattern>
<url-pattern>*.jspx</url-pattern>
</servlet-mapping>
在配置文件中,将后缀为.jsp/.jspx的都转化成.jsp,最终到 org.apache.jasper.servlet.JspServlet中执行
- 通过JspServlet将index.jsp生成index_jsp.java和index_jsp.class文件
- index_jsp.java继承HttpJspBase,HttpJspBase继承HttpServlet
JSP实际上也是Servlet
九大内置对象
-
final javax.servlet.jsp.PageContext pageContext;
-
javax.servlet.http.HttpSession session = null;
-
final javax.servlet.ServletContext application;
-
final javax.servlet.ServletConfig config;
-
javax.servlet.jsp.JspWriter out = null;
-
final java.lang.Object page = this;
-
final javax.servlet.http.HttpServletRequest request;
-
final javax.servlet.http.HttpServletResponse response;
-
Exception
二、JSP语法
脚本程序
<% 代码片段 %>
JSP声明
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
JSP表达式
<%= 表达式 %>
out.print(表达式);
注释
<%-- 这里可以填写 JSP 注释 --%>
<%-- 该部分注释在网页中不会被显示--%>
<!--该注释会在网页中显示-->
在<% %>中写的Java代码,服从Java的注释
JSP指令
指令 | 描述 |
---|---|
<%@ page … %> | 定义页面的依赖属性,比如脚本语言、error页面、缓存需求等 |
<%@ include … %> | 包含其他文件 |
<%@ taglib … %> | 引入标签库的定义,可以是自定义标签 |
- Page指令
errorPage 指定当JSP页面发生异常时需要转向的错误处理页面
extends 指定servlet从哪一个类继承
import 导入要使用的Java类
isThreadSafe 指定对JSP页面的访问是否为线程安全
<%@page pageEncoding="utf-8" %>
<%@page contentType="text/html;charset=utf-8"
errorPage="error500.html" extends="com.srzx.demo01.Test01Servlet" %>
<%@page import="com.srzx.entity.User" isThreadSafe="false" %>
- Include指令
JSP可以通过include指令来包含其他文件。被包含的文件可以是JSP文件、HTML文件或文本文件。包含的文件就好像是该JSP文件的一部分,会被同时编译执行。
<%@include file="test04.jsp" %>
- Taglib指令
JSP API允许用户自定义标签,一个自定义标签库就是自定义标签的集合。
Taglib指令引入一个自定义标签集合的定义,包括库路径、自定义标签。
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
jstl的下载链接
链接:https://pan.baidu.com/s/1I-w5D9iGoDceXSbOaNJioQ
提取码:6d2l
复制这段内容后打开百度网盘手机App,操作更方便哦
三、JSP的生命周期
-
编译阶段:
Servelet容器编译Servelet源文件,生成servelet类
解析JSP文件。 将JSP文件转为servlet。 编译servlet。
-
初始化阶段:
加载与JSP对应的Servelet类,创建其实例,并调用它的初始化方法 -
执行阶段:
调用与JSP对应的Servelet实例的服务方法 -
销毁阶段:
调用与JSP对应的Servelet实例的销毁方法,然后销毁Servelet实例