简介
全称Java Service Page:java服务器页面
处理一些java前后端交互的数据,主要用来显示数据,不建议大量代码写在JSP页面里
特点:简单,和html类似
缺点:书写页面会很乱,HTML代码和JAVA代码交错
JSP是怎么执行的
动态请求会被分发到web容器(web服务器)中。容器会去执行字节码文件,就是.class文件。Servlet是java类,可以直接编译成class文件,那么jsp怎么编译成的字节码文件,jsp是不是会被转换成一个java类?
idea的Tomcat work在他自己的空间中
C:\Program Files\Apache Software Foundation\Tomcat 9.0\work\Catalina\localhost\host-manager\org\apache\jsp 找jsp生成的Servlet
Tomcat工作的时候,将我们的jsp页面转换成了java类
打开这个类分析:
他继承一个类:HTTPJSPBase , 没有直接继承HttpServlet , 但是HTTPJSPBase继承了HttpServlet,所以得出结论
JSP本身就是一个servlet的方式运行的
那么他是怎么输出页面的呢?发现他是使用out对象输出到浏览器
那这个out对象上去的方式是什么?
继续看发现,有一个_jspService可以执行操作我们的JSP,将他输出到前端页面
继续分析原码,得到一些属性,JSP九大内置对象定义的位置
JSP基础语法
1、jsp获得变量的值<%=表达式或变量值>
2、jsp定义局部变量:写一段java代码<%java代码%>
<%
String name = "anye";
int age = 16;
Date date = new Date();
%>
3、jsp定义全局变量<%!全局变量或方法%>
EL表达式${}
一般用来输出变量的值,而不是一个对象
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
String name = "anye";
int age = 16;
Date date = new Date();
%>
<%!
String name = "anyue";
int age = 15;
%>
<h1>
<p>日期:<%=new Date()%></p>
<p>姓名:<%=name%></p>
<p>年龄:<%=age%></p>
</h1>
</body>
</html>
在web页面输出100个javaweb带序号
<%for (int i = 1; i <= 100; i++) {%>
<h1><%=i%>javaweb<h1>
<%}%>