1 JSP
1 JSP的概述
JSP(全称:Java Server Pages):Java 服务端页面。==是一种动态的网页技术,其中既可以定义 HTML、JS、CSS等静态内容,还可以定义 Java代码的动态内容,也就是 JSP = HTML + Java
。
2 JSP 快速入门
2.1 搭建环境
创建一个maven的 web 项目,项目结构如下:
pom.xml
文件内容如下:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.example</groupId> <artifactId>jsp-demo</artifactId> <version>1.0-SNAPSHOT</version> <packaging>war</packaging> <properties> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> </properties> <dependencies> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> </plugin> </plugins> </build> </project>
2.2 JSP依赖
<dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.2</version> <scope>provided</scope> </dependency>
3 JSP原理
-
浏览器第一次访问
hello.jsp
页面 -
tomcat
会将hello.jsp
转换为名为hello_jsp.java
的一个Servlet
-
tomcat
再将转换的servlet
编译成字节码文件hello_jsp.class
-
tomcat
会执行该字节码文件,向外提供服务
4 JSP 脚本
JSP脚本用于在 JSP页面内定义 Java代码。
4.1 JSP 脚本分类
JSP 脚本有如下三个分类:
-
<%...%>:内容会直接放到_jspService()方法之中
-
<%=…%>:内容会放到out.print()中,作为out.print()的参数
-
<%!…%>:内容会放到_jspService()方法之外,被类直接包含
5 JSP缺点
JSP既可以定义HTML,又可以写Java代码,导致页面复杂,不利于前后端工程师的合作。用HTML和AJAX替代
2 EL表达式
3 JSTL标签
1.导入坐标
<dependency> <groupId>javax.servlet.jsp.jstl</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <dependency> <groupId>taglibs</groupId> <artifactId>standard</artifactId> <version>1.1.2</version> </dependency> <dependency> <groupId>javax.servlet.jsp.jstl</groupId> <artifactId>jstl-api</artifactId> <version>1.2</version> </dependency>
2.JSP页面引入JSTL标签库
<%@ taglib prefix="c" uri="Oracle Java Technologies | Oracle" %>
3.使用
3.1c:if的使用
替换Java的if else <c:if test=""> </c:if>
3.2c:forEach 相当于for循环
第一种方法:
items 被遍历的容器
var 遍历产生的临时变量
varStatus 遍历对象状态
第二种方法:
4 MVC和三层架构
1 MVC的概述
MVC 是一种分层开发的模式,其中:
-
M:Model,业务模型,处理业务
-
V:View,视图,界面展示
-
C:Controller,控制器,处理请求,调用模型和视图
控制器(serlvlet)用来接收浏览器发送过来的请求,控制器调用模型(JavaBean)来获取数据,比如从数据库查询数据;控制器获取到数据后再交由视图(JSP)进行数据展示。
2 MVC 好处:
-
职责单一,互不影响。每个角色做它自己的事,各司其职。
-
有利于分工协作。
-
有利于组件重用
3 三层架构
三层架构是将我们的项目分成了三个层面,分别是 表现层
、业务逻辑层
、`数据访问层。
数据访问层:对数据库的CRUD基本操作
-
业务逻辑层:对业务逻辑进行封装,组合数据访问层层中基本功能,形成复杂的业务逻辑功能。例如
注册业务功能
,我们会先调用数据访问层
的selectByName()
方法判断该用户名是否存在,如果不存在再调用数据访问层
的insert()
方法进行数据的添加操作 -
表现层:接收请求,封装数据,调用业务逻辑层,响应数据
而整个流程是,浏览器发送请求,表现层的Servlet接收请求并调用业务逻辑层的方法进行业务逻辑处理,而业务逻辑层方法调用数据访问层方法进行数据的操作,依次返回到serlvet,然后servlet将数据交由 JSP 进行展示。