JSP
JSP原理分析
什么是JSP
Java Server Pages:Java服务器端页面,也和servlet一样,用于动态web技术。
最大的特点:
-
写JSP就像在写HTML
-
区别:
- :HTML只给用户提供静态的数据
- :JSP页面中可以嵌入Java代码,给用户提供动态数据
JSP原理:
思路:JSP到底怎么执行
- 代码里面没有任何问题
- 服务器内部工作
- tomcat中有一个work目录
![屏幕截图 2025-09-16 074645]()
- IDEA中使用tomcat的会在IDEA的tomcat中生产一个work目录
- tomcat中有一个work目录
- 浏览器向服务器发送请求,不管访问什么资源,都是在访问servlet。
JSP最终也会被转换成一个Java类,本质上就是servlet
初始化,销毁,jspservlet

- 判断请求
- 内置一些对象
![屏幕截图 2025-09-16 085455]()
- 输出页面前增加的代码
![屏幕截图 2025-09-16 085619]()
- 以上的内置对象可以在JSP页面直接使用
![屏幕截图 2025-09-16 090152]()
- 在JSP页面中只要是Java代码就会原封不动的输出,只要是HTML代码就会转换成:
out.print("<html>\r\n");
这样的格式输出到前端
JSP基础语法
任何语言都有自己的语法:jsp作为Java技术中的一种应用,它拥有一些自己的扩充的语法(了解,知道即可),Java所有语法都支持。
JSP表达式
tomcat选择war exploaded可以实现热部署
升级资源。(第二个)

JSP脚本片段
<%--JSP脚本片段--%>
<%
int sum=0;
for (int i=0;i<100;i++){
sum+=i;
}
out.println("<h1>sum"+sum+"<h1>");
%>
脚本片段的再实现
<%
int x = 10;
out.println(x);
%>
<P>这是一个JSP文档</P>
<%
for (int i=0;i<4;i++){
%>
<h1>HELLO <%= i%></h1>
<%
}
%>
JSP声明
<%!
static {
System.out.println("loading servlet");
}
private int globalVar=0;
public void xin(){
System.out.println("进入了方法");
}
%>
jsp声明:会被编译到jsp生成到Java类中!其他的就会被生成到jspservlet方法中!
在JSP中嵌入Java代码即可
jsp的注释不会在客户端显示,html就会
JSP指令
<%@page args...%>
例如设置一个500报错页面:

直接访问500.jsp会找不到图片,同样是路径问题,这里可以改成${pageContext.request.contextPath}/img/500.png,或者不把图片另放在img的包下,直接放在resource,或者不加前缀。第一种最实用。


-
<%@includefile="common/..."%>,
include会将页面合二为一,变成一个页面,容易出现页面变量定义重复的问题。...是指需要嵌入的项目路径如:2.jsp -
<jsp:include page="...">
本质还是有三个页面
![屏幕截图 2025-09-19 171538]()
9大内置对象
- PageContext
- Request
- Response
- Session
- Application(servletcontext)
- config(serveltconfig)
- out
- page
- exception
1-5是用来存东西
pageContext
request
session
application
作用域从低到高

JSP,JSTL标签,EL表达式
</dependency>
<dependency>
<groupId>javax.servlet.jsp.jstl</groupId>
<artifactId>jstl-api</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
EL表达式:${}
- 获取数据
- 执行运算
- 获取web开发的常用对象
4. 调用Java
JSP标签

JSPBean
实体类
写法:
- 必须要有一个无参构造
- 属性必须私有化
- 必须要有对应的get/set方法
一般用来和数据库的字段做映射 ORM
ORM:对象关系映射
表--类
字段-属性
行记录-对象






浙公网安备 33010602011771号