【JavaWeb】JSP
2022/4/12 1:43:31
本文主要是介绍【JavaWeb】JSP,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
概念
全称:Java Server Pages, Java服务端页面
描述:一种动态的网页技术,可以在其中定义HTML、JS、CSS等静态内容,以及Java代码的动态内容
说明:JSP = HTML + Java
作用:简化开发,避免了在Servlet中直接输出 HTML 标签
原理:JSP本质上就是一个Servlet。在被访问时,由JSP容器(Tomcat)将其转换为Java文件(Servlet),在由JSP容器将其编译,最终对外提供服务的其实就是这个字节码文件
快速入门
- 导入JSP坐标
<dependency> <groupld>javax.servlet.jsp</groupld> <artifactld>jsp-api</artifactld> <version>2.2</version> <scope>provided</scope> </dependency>
- 创建 JSP文件
- 编写 HTML标签和 Java代码
<body> <h1>hallo jsp</h1> <% System.out.printf("jsp hello");%> </body>
JSP 脚本
- 用于在JSP页面内定义 Java代码
- 分类:
- <%...%>:内容会直接放到_jspServlet()方法之中
- <%=...%>:内容会放到out.print()中,作为out.print()的参数
- <%!...%>:内容会放到_jspServlet()方法之外,被类直接包含
小技巧:
<% for(int i=0;i<brands.size();i++){ Brand brand = brands.get(i); } %> <tr align="center"> <td>1</td> <td>三只松鼠</td> <td>三只松鼠</td> <td>100</td> <td>三只松鼠,好吃不上火</td> <td>启动</td> <td><a href="#">修改</a><a href="#">删除</a></td> </tr> <% } %>
说明:<%...%>标签是可以分段的,这样写,只是为了让我们更直观的知道get后值赋给谁
JSP 缺点
- 由于JSP页面内,既可以定义 HTML 标签,又可以定义 Java代码,造成了以下问题:
1.书写麻烦;特别是复杂的页面
2.阅读麻烦
3.复杂度高:运行需要依赖于各种环境,JRE,JSP容器,JavaEE...
4.占用空间和磁盘:JSP会自动生成 .java 和 .class文件占用磁盘,运行的是.class文件占内存
5.调试困难:出错后,需要找到自动生成的.java文件进行调试
6.不利于团队协作:前端人员不会 java,后端人员不精 HTML
7.xxx
EL 表达式
全称:Expression Language 表达式语言,用于简化 JSP页面内的Java代码
主要功能:获取数据
语法:
${expression} //例子 ${brands}//获取域中存储的key为brands的数据
JavaWeb中的四大域对象:
1.page:当前页面有效
2.request:当前请求有效
3.session:当前会话有效
4.application:当前应用有效
el表达式获取数据,会依次从这4个域中寻找,知道找到为止
JSTL 标签
全称:JSP标准标签库(Jsp Standard Tag Library),使用标签取代JSP页面上的Java代码
//例子 <c:if test="${flag == 1}"> 男 </c:if> <c:if test="${flag == 2}"> 女 </c:if>
JSTL 库中有很多不同的标签,这里就只说明两个最常用的标签。
其他可点击链接查阅:https://www.runoob.com/jsp/jsp-jstl.html
快速入门
<c:if>
用来完成逻辑判断,也就是替换Java 代码中的if else
<c:if test="true"> <h1>true</h1> </c:if> <c:if test="false"> <h1>false</h1> </c:if>
当test为中值为ture时,就会执行其包裹的代码块里的代码
一般会和EL表达式配合使用,EL表达式获取数据,<c:if>标签做逻辑判断
<c:froEach>
这篇关于【JavaWeb】JSP的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-01后台管理开发学习:新手入门指南
- 2024-11-01后台管理系统开发学习:新手入门教程
- 2024-11-01后台开发学习:从入门到实践的简单教程
- 2024-11-01后台综合解决方案学习:从入门到初级实战教程
- 2024-11-01接口模块封装学习入门教程
- 2024-11-01请求动作封装学习:新手入门教程
- 2024-11-01登录鉴权入门:新手必读指南
- 2024-11-01动态面包屑入门:轻松掌握导航设计技巧
- 2024-11-01动态权限入门:新手必读指南
- 2024-11-01动态主题处理入门:新手必读指南