JSP

JSP原理分析

什么是JSP

Java Server Pages:Java服务器端页面,也和servlet一样,用于动态web技术。
最大的特点

  • 写JSP就像在写HTML

  • 区别:

    • :HTML只给用户提供静态的数据
    • :JSP页面中可以嵌入Java代码,给用户提供动态数据

JSP原理:

思路:JSP到底怎么执行

  1. 代码里面没有任何问题
  2. 服务器内部工作
    1. tomcat中有一个work目录
      屏幕截图 2025-09-16 074645
    2. IDEA中使用tomcat的会在IDEA的tomcat中生产一个work目录
  3. 浏览器向服务器发送请求,不管访问什么资源,都是在访问servlet。

JSP最终也会被转换成一个Java类,本质上就是servlet

初始化,销毁,jspservlet
![屏幕截图 2025-09-16 085142](https://img2024.cnblogs.com/blog/3677700/202509/3677700-20250916085154663-1693295525.png)
  1. 判断请求
  2. 内置一些对象
    屏幕截图 2025-09-16 085455
  3. 输出页面前增加的代码
    屏幕截图 2025-09-16 085619
  4. 以上的内置对象可以在JSP页面直接使用
    屏幕截图 2025-09-16 090152
  5. 在JSP页面中只要是Java代码就会原封不动的输出,只要是HTML代码就会转换成:out.print("<html>\r\n");
    这样的格式输出到前端

JSP基础语法

任何语言都有自己的语法:jsp作为Java技术中的一种应用,它拥有一些自己的扩充的语法(了解,知道即可),Java所有语法都支持。

JSP表达式

tomcat选择war exploaded可以实现热部署
升级资源。(第二个)
屏幕截图 2025-09-16 081621

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指令

  1. <%@page args...%>

例如设置一个500报错页面:
屏幕截图 2025-09-16 150053

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

  1. <%@includefile="common/..."%>,
    include会将页面合二为一,变成一个页面,容易出现页面变量定义重复的问题。...是指需要嵌入的项目路径如:2.jsp

  2. <jsp:include page="...">
    本质还是有三个页面
    屏幕截图 2025-09-19 171538

9大内置对象

  1. PageContext
  2. Request
  3. Response
  4. Session
  5. Application(servletcontext)
  6. config(serveltconfig)
  7. out
  8. page
  9. exception
    1-5是用来存东西
pageContext
request
session
application

作用域从低到高
屏幕截图 2025-09-22 153347

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表达式:${}

  1. 获取数据
  2. 执行运算
  3. 获取web开发的常用对象
    4. 调用Java

JSP标签

屏幕截图 2025-09-22 183808

JSPBean

实体类

写法:

  1. 必须要有一个无参构造
  2. 属性必须私有化
  3. 必须要有对应的get/set方法
    一般用来和数据库的字段做映射 ORM
    ORM:对象关系映射
    表--类
    字段-属性
    行记录-对象
posted @ 2025-09-22 18:42  xixixixin  阅读(41)  评论(0)    收藏  举报