JSP的概念:
概念:Java Serve Pages Java服务端页面
一种动态的网页技术,其中可以定义Html、css、js等静态内容。还可以定义Java代码的动态内容。
JSP=Html+java
JSP的存在使我们可以不用在servlet里面用输出流一行一行的写字符串,而是直接将java代码和html代码写在一起方便书写。
在实际开发时,我们通常在业务层处理完后,将最后的响应转发到JSP作为页面展示。
<%@ page contentType="text/html; utf-8" language="java" %>
<html>
<head>
<title>Tittle</title>
</head>
<body>
<h1>JSP,hello|||</h1>
<%
System.out.println("nihao jsp");
%>
</body>>
</html>>
JSP快速入门
1、导入JSP坐标
2、创建JSP文件
3、编写HTML标签和JAVA代码
JSP原理
JSP本质上就是一个servlet。
我们编写了JSP,容器(Tomcat)会自动的将JSP转换为servlet,再编译成字节码文件发送给浏览器。
JSP脚本
JSP脚本用于在JSP页面内部定义JAVA代码。
脚本分类:
1、 <%%>内容会直接放到_jspService()方法中。
2、<%= %>内容会放到out.print()中,作为out.print()的参数。
3、<%!%>内容会放到_jspService方法外,被类直接包含。
JSP的缺点
实际上,由于JSP的种种缺点,在如今的开发中我们几乎已经不使用了。
1、书写很麻烦,尤其是很复杂的页面,需要不断用<%%>去进行打断。
2、阅读很麻烦
3、复杂度高,运行需要依赖各种环境,JRE,JSP容器,JavaEE
4、占用内存和磁盘,JSP会自动生成.java和.class文件。其中.java文件存放的是解析后的servlet文件,.class文件是运行文件。
5、调试困难:出错后,我们需要在自动生成的servelt文件中寻找错误
6、前后端做不到分离
现在我们通常使用HTML+AJAX的技术来代替,后面会有写AJAX。
为了便于后期维护和开发,我们通常不在JSP文件里面直接写JAVA代码,而是使用JSP展示数据,有关逻辑处理和数据封装我们放到Servlet里面进行处理。
这就引入了一个概念-EL表达式
EL表达式
EXpression Language表达式语言,用来简化JSP页面中JAVA代码
主要功能为:获取数据
语法:${expression}
${brands}:获取域(比如request域,response域)中键为brands的值。
JSTL标签
JSP标准标签库,使用标签取代JSP页面上的JAVA代码。(感觉有点像Mybatis配置mapper.xml文件中的那个标签?)
<c:if test="${flag==1}">
男
</c:if>
<c:if test="${flag==2}>
女
</c:if>
有点类似于增强for循环,这个item就相当于users,var相当于user
for(User user:users){
}
第二种循环遍历方式,和普通for循环很像
MVC模式和三层架构
MVC模式是一种分层开发的模式
M:Modle,业务模型,处理业务。
V:View,视图,界面展示。
C:Controller,控制器,请求处理,调用模型和视图。
MVC的好处:
指责单一,互相不影响。
有利于分工协作。
有利于组件重组。
三层架构
数据访问层:对数据库进行基本的CRUD操作。
业务逻辑层:对业务逻辑进行封装,组合数据访问层中的基本数据,形成复杂的业务逻辑功能。
表现层:接受请求,封装数据,调用业务逻辑层,(通过JSP展示),响应数据 。
其中,对于不同层我们可以采用框架对其进行优化,在后续学习的Spring系列框架,就分别对应了表现层和业务逻辑层。而对于数据访问层的开发,Mybatis就是其开发框架。
MVC模式和三层框架之间的关系