概念


全称:Java Server Pages, Java服务端页面

描述:一种动态的网页技术,可以在其中定义HTML、JS、CSS等静态内容,以及Java代码的动态内容

说明:JSP = HTML + Java

作用:简化开发,避免了在Servlet中直接输出 HTML 标签

原理JSP本质上就是一个Servlet。在被访问时,由JSP容器(Tomcat)将其转换为Java文件(Servlet),在由JSP容器将其编译,最终对外提供服务的其实就是这个字节码文件

快速入门


  1. 导入JSP坐标
<dependency>
<groupld>javax.servlet.jsp</groupld>
<artifactld>jsp-api</artifactld>
<version>2.2</version>
<scope>provided</scope>
</dependency>
  1. 创建 JSP文件
  2. 编写 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>

MVC 模式


MVC 是一种分层开发的模块,其中:

  • M:Model,业务模型,处理业务
  • View,视图,界面展示
  • Controller,控制器,处理请求,调用模型和视图

MVC 好处

  • 职责单一,互补影响
  • 有利于分工协助
  • 有利于组件重用

类似于三层架构

最新文章

  1. 转---&gt;svn的使用
  2. 3.3 spring-meta子元素的使用与解析
  3. 九度OJ 1527 首尾相连数组的最大子数组和 -- 动态规划
  4. 01 Access数据库 测试连接
  5. 代码编写横屏的UIView
  6. unix c 11
  7. SqlServer字段说明查询(表基本信息查询)
  8. cct信息安全
  9. Mobile开发的饕餮盛宴-Zoomla!波CMS2 x2.1正式宣布
  10. (转)Java并发编程:并发容器之CopyOnWriteArrayList
  11. NLP︱高级词向量表达(三)——WordRank(简述)
  12. wp8使用Beetle.NetPackage实现基于TCP通讯的订单查询
  13. ECMAScript6 - 2.变量的解构赋值
  14. 使用Mongo进行分页
  15. eslint常用关闭校验语句
  16. Netty派生缓冲区
  17. vsCode关闭代码检查工具
  18. JMeter&#160;http(s)测试脚本录制器的使用
  19. BZOJ2124 等差子序列(树状数组+哈希)
  20. 解决Devexpress ChartControl的CalcHitInfo当中SeriesPoint为Null的问题

热门文章

  1. 就在明天,Apache DolphinScheduler Meetup 2021 如约而至!
  2. Go 语言图片处理简明教程
  3. Oracle-视图,约束
  4. [Blender] Blender 获取 Instance 的信息
  5. 【PostgreSQL】PostgreSQL 15移除了Stats Collector
  6. 四 多例模式【Multition&#160;Pattern】&#160;来自CBF4LIFE 的设计模式
  7. 区块相隔虽一线,俱在支付同冶熔,Vue3.0+Tornado6前后端分离集成Web3.0之Metamask区块链虚拟三方支付功能
  8. 第九十五篇:vue-router的导航守卫
  9. KingbaseES R6 集群修改物理IP和VIP案例
  10. [Python]-string-字符串