JSP标签
1. jsp标签的作用
jsp标签作用:替换jsp脚本。
1)流程判断(if for循环)
2)跳转页面(转发,重定向)
3)......
2. Jsp标签分类
1)内置标签(动作标签): 不需要在jsp页面导入标签
2)jstl标签: 需要在jsp页面中导入标签
3)自定义标签 : 开发者自行定义,需要在jsp页面导入标签
3. 动作标签
转发标签: <jsp:forward />
包含标签: <jsp:include />
参数标签: <jsp:param />
原理: 包含与被包含的页面先各自翻译成java源文件,然后再运行时合并在一起。
静态包含 vs 动态包含的区别?
1) 语法不同
静态包含语法: <%@inclue file="被包含的页面"%>
动态包含语法: <jsp:include page="被包含的页面">
2)参数传递不同
静态包含不能向被包含页面传递参数
动态包含可以向被包含页面传递参数
3)原理不同
静态包含: 先合并再翻译
动态包含: 先翻译再合并
JSTL
1. 概念:JavaServer Pages Tag Library JSP标准标签库
是由Apache组织提供的开源的免费的jsp标签
核心标签库 (c标签库) (用的最多,重点讲解)
国际化标签 (fmt标签库)
EL函数库 (fn函数库)
xml标签库 (x标签库)
sql标签库 (sql标签库)
2. 作用:用于简化和替换jsp页面上的java代码
3. 使用步骤:
1. 导入jstl相关jar包
因为是web项目,遵守规范,要在WEB-INF目录下创建lib目录,然后右键lib目录选择Add as Libary... -->> Module Libary(切记!!!)
2. 引入标签库:taglib指令:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
3. 使用标签
4. 核心标签库的常用标签:
单条件判断
<c:if test=""></c:if>
多条件判断
<c:choose>
<c:when test=""></c:when>
<c:otherwise></c:otherwise>
</c:choose>
循环数据
<c:forEach begin="" end="" step="" var="" items="" varStatus=""></c:forEach>
重定向
<c:redirect url=""></c:redirect>
JAVABEAN
1. JavaBean是一种开发规范,也可以说是一种技术。
2. JavaBean就是一个普通的java类,只有符合以下规定才能称之为javabean:
1)必须提供无参数的构造方法
2)类中属性都必须私有化(private)
3)该类提供公开的getter 和 setter方法
3. JavaBean的作用:用于封装数据,保存数据。
访问javabean只能使用getter和setter方法
4. 问题:
以下方法哪些属于javabean的规范的方法?
1)getName() 2)getName(String name)
3)setName(String name) 4)setName()
5)setFlag(boolean flag) 6)isFlag()
MVC:开发模式
1. jsp演变历史
1. 早期只有servlet,只能使用response输出标签数据,非常麻烦
2. 后来又jsp,简化了Servlet的开发,如果过度使用jsp,在jsp中即写大量的java代码和html代码,造成难于维护,难于分工协作
3. 再后来,java的web开发,借鉴mvc开发模式,使得程序的设计更加合理性
2. MVC:
1. M:Model,模型。JavaBean
* 完成具体的业务操作,如:查询数据库,封装对象
2. V:View,视图。JSP
* 展示数据
3. C:Controller,控制器。Servlet
* 获取用户的输入
* 调用模型
* 将数据交给视图进行展示
* 优缺点:
1. 优点:
1. 耦合性低,方便维护,可以利于分工协作
2. 重用性高
2. 缺点:
1. 使得项目架构变得复杂,对开发人员要求高
三层架构:软件设计架构
我们的开发架构一般都是基于两种形式,一种是 C/S 架构,也就是客户端/服务器,另一种是 B/S 架构,也就
是浏览器服务器。在 JavaEE 开发中,几乎全都是基于 B/S架构的开发。那么在 B/S架构中,系统标准的三层架构
包括:表现层、业务层、持久层。三层架构在我们的实际开发中很多项目都是基于三层架构设计的。
表现层:
也就是我们常说的web层。它负责接收客户端请求,向客户端响应结果,通常客户端使用http协议请求 web 层,web 需要接收 http 请求,完成 http 响应。
表现层包括展示层和控制层:控制层负责接收请求,展示层负责结果的展示。
表现层依赖业务层,接收到客户端请求一般会调用业务层进行业务处理,并将处理结果响应给客户端。
表现层的设计一般都使用 MVC 模型。(MVC 是表现层的设计模型,和其他层没有关系)
业务层:
也就是我们常说的 service 层。它负责业务逻辑处理,和我们开发项目的需求息息相关。web 层依赖业务层,但是业务层不依赖 web 层。
业务层在业务处理时可能会依赖持久层,如果要对数据持久化需要保证事务一致性。(也就是我们说的,事务应该放到业务层来控制)
持久层:
也就是我们是常说的 dao 层。负责数据持久化,包括数据层即数据库和数据访问层,数据库是对数据进
行持久化的载体,数据访问层是业务层和持久层交互的接口,业务层需要通过数据访问层将数据持久化到数据库
中。通俗的讲,持久层就是和数据库交互,对数据库表进行曾删改查的。
简单概括如下:
1、视图层(web层):用于显示数据和接收用户输入的数据
2、业务逻辑层(service层):负责关键业务的处理和数据的传递
3、数据访问层(dao层):主要负责对数据库的直接访问