1.什么是JSP: Java Service Page(Java服务器页面)
用来处理一些java前后端交互数据,主要用来显示数据,不建议大量的代码写在jsp中;
特点:简单,和HTML差不多
缺点:书写的页面会很乱,HTML代码和Java代码交错。
2.1 jsp到底怎么执行的?
动态请求会被分发到web容器(web服务器)中;
容器会去执行字节码文件,就是 .class文件;
Servlet是Java类,可以直接编译成class文件;
(问题? jsp怎么编成class文件)
jsp先会被转换成一个Java类。
2.2 在JSP页面中;只要是 JAVA代码就会原封不动的输出;
如果是HTML代码,就会被转换为:
out.write("<html>\r\n");
这样的格式,输出到前端!
2.3追求本质:
Tomcat在工作时,将我们的jsp页面转化成了Java类。
打开这个类分析:
它继承:HttpJspBase,没有直接继承HttpServlet,但是HttpJspBase继承了HttpServlet,所以jsp本身就是一个servlet的方式运行的。
那它是怎么输出的? 观察发现它是使用out对象输出到浏览器中。
那这个out对象上去的方式是什么呢?
发现有一个_jspServlet可以执行操作我们的jsp,将它输出到前端页面。
继续分析源码得到一些属性:
3. jsp声明
//JSP声明的语法格式:<%! declaration; [ declaration; ]+ ... %>
<%! int i = 0; %>
<%! int a, b, c; %>
<%! Circle a = new Circle(2.0); %>
4.jsp表达式
//JSP表达式的语法格式:<%= 表达式 %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>ok</title>
</head>
<body>
<p>
今天的日期是: <%= (new java.util.Date()).toLocaleString()%>
</p>
</body>
</html>
//运行后得到以下结果:
//今天的日期是: 2016-6-25 13:40:07
6.jsp指令
//JSP指令用来设置与整个JSP页面相关的属性。
//JSP指令语法格式:<%@ directive attribute="value" %>
这里有三种指令标签:
<%@ page ... %> 定义页面的依赖属性,比如脚本语言、error页面、缓存需求等等
<%@ include ... %> 包含其他文件
<%@ taglib ... %> 引入标签库的定义,可以是自定义标签
7.注释:
- HTML的注释:
- JSP注释:<%-- 这也是注释,但客户端不能查看到 --%>
- 在JSP脚本中注释: <% //单行注释 %> <% /*多行注释 */ %>
8.JavaBean