当前位置: 首页 > news >正文

JavaWeb学习打卡13(JSP原理解析)

什么是JSP

JSP(全称:Java Server Pages):Java服务器端页面,也和Servlet  一样,用于动态Web 技术!

JSP最大特点:

  • 写JSP就像写HTML
  • 区别:
    • HTML只给用户提供静态的数据
    • JSP页面中可以嵌入JAVA代码,为用户提供动态是数据;

JSP原理

思路:JSP到底怎么执行的!

  • 服务器内部工作
    • tomcat 中有一个work 目录
    • IDEA 中 使用 Tomcat 会在IDEA 的 tomcat 中生成一个work 目录
  • 我电脑地址为:
  • D:\Environment\apache-tomcat-9.0.46\work\Catalina\localhost\ROOT\org\apache\jsp

    发现页面转变成了Java程序!

JSP文件的经历过程:

由此可以知道:

  • 浏览器向服务器发送请求,不管访问什么资源,其实都是在访问Servlet !
  • JSP最终也会被转换成一个Java类
  • JSP本质上就是一个Servlet 

1、JSP 内置的一些对象:

2、JSP在输出页面前会增加以下代码:

3、以上这些  内置对象,我们可以在编写 JSP  页面时,可以直接使用

在JSP页面中,只要是JAVA代码就会原封不动的输出;

如果是HTML代码,就会转换为  java  代码 

eg:

我们我们在  index.jsp 文件同一目录下创建一个  hello.jsp  文件:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title>
</head>
<body><%String name = "xiaoxu";
%>
<%=name%></body>
</html>

运行结果:

JSP 基础语法

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

JSP表达式和脚本片段 :

可以把JSP表达式:   <%= a%>   用EL表达式代替   :${ a }

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html><head><title>$Title$</title></head><body><%--  JSP表达式 格式 : <%= 变量或者表达式 %>
作用:用来将程序的输出,输出到客户端
--%>
<%= new java.util.Date()%><hr><%--  JSP 脚本片段 --%>
<%int sum = 0;for (int i = 0; i <= 100; i++) {sum+=i;}out.println("<h1> Sum = "+sum+"</h1>");
%></body>
</html>

运行结果:

JSP 声明 (在  后加 )会被编译到 SP 生成 Java 类中,而上面的Jsp表达式和脚本片段,就会被生成到_jspServlet 方法中

在JSP中,嵌入Java代码即可!

<%--JSP 声明--%>
<%!static {System.out.println("Loading Servlet!");}private int globalvar = 0;public void xiaoxu(){System.out.println("进入了方法xiaoxu");}
%>

JSP表达式语法总结:

<%%>  //脚本片段
<%=%>  //jsp 表达式输出一个值
<%!%> //定义全局的方法
<%-- JSP的注释 --%>  //注释
<!-- HTML的注释 -->  //注释

JSP的注释,不会在客户端显示,HTML的注释就会显示!

JSP自定义错误页面:

方法一:

我们先在 index.jsp 文件的同一目录下新建一个jsp2 .jsp 文件,用来填写错误,和发生错误的页面跳转:

<%@ page contentType="text/html;charset=UTF-8" language="java" %><%--自定义错误页面--%>
<%@ page errorPage="error/500.jsp"  %><html>
<head><title>Title</title>
</head>
<body><%int x = 1/0;
%></body>
</html>

随后按以下目录创建文件夹和文件,并找一张500页面报错的png文件:

在500.jsp 文件中写:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title>
</head>
<body>
<img src="../img/500.png" alt="500">
</body>
</html>

运行结果:

自定义错误页面 ,方法二

直接在 error 文件夹下 ,创建一个 404.jsp 文件,并编写该页面:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title>
</head>
<body><h1>自定义的404页面 </h1>
</body>
</html>

然后在 web.xml 文件中定义错误发生时的页面跳转:

    <error-page><error-code>404</error-code><location>/error/404.jsp</location></error-page>

运行结果:

http://www.xdnf.cn/news/1179829.html

相关文章:

  • 【0基础PS】PS(Photoshop)与Ai( Illustrator )等相似软件区别
  • 内网IM:BeeWorks私有化部署的安全通讯解决方案
  • Linux命令基础完结篇
  • Windows 11下纯软件模拟虚拟机的设备模拟与虚拟化(仅终端和网络)
  • 【C++】类和对象(1)
  • go项目实战二
  • ESP32- 项目应用1 智能手表 之更新天气#4
  • Rust与YOLO目标检测实战
  • OpenLayers 综合案例-基础图层控制
  • ddos 放在多个云主机,同时运行
  • vue递归树形结构删除不符合数据 生成一个新数组
  • 点击按钮滚动到底功能vue的v-on:scroll运用
  • 04.建造者模式的终极手册:从快餐定制到航天飞船的组装哲学
  • 期待更好的发展
  • 使用全局变量访问 Qt UI 组件的方法文档
  • 基于markdown封装的前端文档编辑工具,markdown.js的解析与应用
  • 开源Qwen凌晨暴击闭源Claude!刷新AI编程SOTA,支持1M上下文
  • SQL基础⑪ | 约束
  • 基于ABC与BP神经网络分类模型的特征选择方法研究(Python实现)
  • 制造业新突破:AR 培训系统助力复杂操作轻松上手​
  • Linux服务器安全自动化审计实战:一键扫描账户/网络/进程/计划任务风险(附开源脚本)
  • 数据库期中复习
  • 【Guava】1.1.我的报告
  • 进程调度的艺术:从概念本质到 Linux 内核实现
  • Windows 10 远程桌面(RDP)防暴力破解脚本
  • 用python自动标注word试题选项注意事项
  • 安全逆向工程学习路线
  • 4.1.2 XmlInclude 在 C# 中的作用及示例
  • 【Unity开发】数据存储——XML
  • web:js函数的prototype(原型对象)属性