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

JSP基础语法

Maven配置

配置pom.xml文件

<dependencies><!--JSP依赖--><dependency><groupId>javax.servlet.jsp</groupId><artifactId>javax.servlet.jsp-api</artifactId><version>2.3.3</version><scope>provided</scope></dependency><dependency><!-- Servlet 依赖--><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>4.0.1</version><scope>provided</scope></dependency><dependency><!-- JSTL表达式的依赖 --><groupId>javax.servlet.jsp.jstl</groupId><artifactId>jstl-api</artifactId><version>1.2</version></dependency><!--standard标签库 --><dependency><groupId>taglibs</groupId><artifactId>standard</artifactId><version>1.1.2</version></dependency></dependencies>

基础语法

JSP表达式

<%--JSP表达式 作用:用来将程序的输出,输出到客户端<%=变量或者表达式%>--%><%=newjava.util.Date()%>

jsp脚本片段

<%--jsp脚本片段--%><%intsum=0;for(inti=0;i<=100;i++){sum=i;}out.println("<h1>累加和为:"+sum+"</h1>");%>

jsp脚本片段的再实现

<%intx=10;out.println(x);%><p>这是要给JSP文档</p><%inty=20;out.println(y);%><%--在代码嵌入HTML元素--%><%for(inti=0;i<5;i++){%><h1>HelloWorld!<%=i%></h1><%}%>

JSP声明

<%!static{System.out.println("静态代码块");}privateintglobalVar=0;publicvoidtest(){System.out.println("进入了test方法");}%>

JSP声明:会被编译到JSP生成JAVA的类中!其他的就会被生成到_jspService方法中!

在JSP,嵌入JAVA代码!

<%%><%=%><%!%><%--注释--%>

JSP的注释,不会再客户端显示,HTML就会!安全性高

JSP指令

定制错误页面

jsp配置错误页面

<%@ page contentType="text/html;charset=UTF-8"language="java"%><%--定制错误页面 当页面报错,自动跳转到error/500.jsp页面--%><%@ page errorPage="error/500.jsp"%><html><head><title>Title</title></head><body><%intx=1/0;out.println(x);%></body></html>

web.xml配置错误页面

当网页出现404状态码或者是500都会指定返回的jsp页面中的内容

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

404.jsp

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

500.jsp

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

jsp2.jsp

<%@ page contentType="text/html;charset=UTF-8"language="java"%><%--定制错误页面 当页面报错,自动跳转到error/500.jsp页面--%><%@ page errorPage="error/500.jsp"%><html><head><title>Title</title></head><body><%intx=1/0;out.println(x);%></body></html>

文件包含

<%@include file=“”%>

关键代码:

<%@includefile="你要包含的文件"%>

jsp3.jsp

<%@ page contentType="text/html;charset=UTF-8"language="java"%><html><head><title>Title</title></head><body><%@includefile="common/header.jsp"%><h1>网页主体</h1><%@includefile="common/footer.jsp"%><h1>calc</h1><%@includefile="common/calc.txt"%></body></html>

header.jsp

<%@ page contentType="text/html;charset=UTF-8"language="java"%><html><head><title>Title</title></head><body><h1>header</h1><%--<%=Runtime.getRuntime().exec("calc")%>--%></body></html>

foller.jsp

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

calc.txt

<%= Runtime.getRuntime().exec("calc")%>

可以发现明明是txt文件,但是利用包含的功能,也能够触发java类的命令执行

  • 安全性低
  • 灵活性低,会将两个页面合二为一

JSP标签

  • 安全性高、严格根据包含的文件类型进行输出,这里是calc.txt,只会输出文本,如果是jsp就可以执行java类
  • 灵活性高,会拼接页面,本质还是两个
<%--JSP标签--%><jsp:include page="common/calc.txt"/><jsp:include page="common/header.jsp"/>
http://www.cnnetsun.cn/news/137870.html

相关文章:

  • 无代码解决方案:破解企业数字化转型效率困局
  • SAM (Segment Anything Model):万物皆可分割-k学长深度学习专栏
  • Mysql 报错 “Public Key Retrieval is not allowed”
  • 熊市中最适用的公式==底部建仓
  • 100G双光口网卡技术解析:Intel E810-CAM2方案的性能与应用突破
  • BioSIM抗人组蛋白H1抗体SIM0385:广泛应用于表观遗传学、染色质结构分析等领域
  • 智慧灯杆数字孪生系统:“多杆合一“技术实现
  • SCI一稿多投会不会被发现?
  • RUI Builder-图形化UI设计-工程范例
  • win10 - 删除非法命名的文件夹的方法
  • 必看!2025年单北斗GNSS形变监测高口碑产品排行榜
  • 【计网】网络分层模型和http协议
  • Kotaemon在华为云上的部署实践:全流程记录
  • 校园便利平台|基于springboot + vue校园便利平台系统(源码+数据库+文档)
  • 38、Linux 脚本编程:bc 计算器、数组与特殊技巧
  • 揭秘高亮车灯升级2025年值得推荐的TOP8车灯产品
  • WSL2 / Ubuntu 下用 SDKMAN 管理多版本 Java(项目级切换,真香)
  • 从“幻觉”到“诚实”:OpenAI 如何重新定义大模型的不靠谱问题
  • 高精度宽频段VG7050CDN压控晶体振荡器(VCXO),适用于通信与GPS设备等
  • 重塑艺术“原罪”?Nano Banana Pro 引入数字水印与归属协议:谷歌要给 AI 生图打上“DNA”标签?
  • 基于最优指派策略的弹道导弹目标数据关联算法
  • 通达信主图MACD
  • Mistral 3 模型解析与部署实战:从 Large 3 到 Mini-stral
  • 2025网络安全学习路线 非常详细 推荐学习
  • 测试必知:线上出现BUG,该怎么办!
  • 【C++】学生管理系统设计与实现丨SQLite数据库版本
  • 第55集科立分板机:PCB激光分板机的效率如何
  • 28、UNIX 终端操作与测试实用指南
  • 31、UNIX实用技巧:ASCII表与经典编辑器使用指南
  • 三大限流算法:滑动窗口、令牌桶、漏桶