一、首先什么是JSP(java Service Page)
java Service Pagejava服务器页面,用来处理一些java前后端交互的数据,主要用来显示数据,不建议大量代码写在JSP里面。
特点:
- 简单和HTML差别不大
- 书写页面会很乱,HTML代码和java交错
JSP的执行过程
1.动态请求会被分发到Web服务器中
2.容器会去执行字节码文件,就是.class文件
3.Servlet是java类,可以直接编译成class文件
这里需要知道JSP是怎样编译成一个class文件,这里我们会想JSP应该是被转换成一个java类。
Tomcat在工作的时候将我们的JSP页面转换成了java类
打开这个类分析我们可以发现一些东西
首先他继承了一个类HTTPJSPBase,没有直接继承HTTPServlet,但是HTTPJSPBase继承了HTTPServlet**,所以可以得出JSP本身就是一个servlet的方式运行的。**
jsp是怎样输出到页面的?他是使用out对象输出到浏览器。
out对象是如何写入前端的方式为什么,
通过文件,可以看出有一个_jspServide 在操作JSP,将他输出到前端页面。
继续分析源码 ,可以发现一些属性
二、JSP基础语法
1.JSP获得变量的值 <%= 表达式或者变量值 %>
2.JSP定义局部变量<% java代码 %>,这里需要注意的是必须严格遵守java规范
3.JSP定义全局变量<%! 全局变量或方法% >
1.简化符:因为HTML是标记语言,所以我们可以使用一些标记,EL表达式和JSTL标签
- ${ } ==<% %>
- EL表达式一般用来输出变量的值,而不能是 一个对象。
2.JSP内置对象
pageContext 作用域:
application = pageContext.getServletContext(); 应用
session = pageContext.getSession(); 会话
request = 请求
page = this; 页面
例子,在页面显示100个Hello
<%--
JSP基础语法
1.JSP获得变量的值 <%= 表达式或者变量值 %>
2.JSP定义局部变量<% java代码 %>,这里需要注意的是必须严格遵守java规范
3.JSP定义全局变量<%! 全局变量或方法% >
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
<--在页面输出100个hello-->
<%
for(int i = 0;i<100;i++){
%>
<h1>Hello</h1>
<%
}
%>
</body>
</html>