JavaWeb_5-MVC设计模式
一、MV属于三层架构里的表示层
model模型 负责处理业务逻辑和进行数据交互(与 javabean,service,dao进行交互)
view视图: jsp(无java代码)
control控制器: servlet(无页面)
登录:
由登录页面(html、jsp等模板技术)向控制器(servlet)发送请求,
拿到请求后要调用业务逻辑层(model)中的具体实现方法。处理完成后,根据结果成功与否再返回给客户端页面
servlet实现无页面处理,可以用请求转发或者重定向来进行页面跳转
jsp实现纯显示功能,无java脚本<%%>,需要:
el 表达式(expression language)表达式语言,默认情况下jsp是支持el表达式的
jstl 标签(java server page standard tag library)标准标签库,需要导jar包
可以写成
二、el表达式(<%=%>)
只获取值
2.1 为什么用?
jsp页面嵌套大量的java代码,不易维护
简化页面
2.2 基础语法结构
${表达式的值}
1.可以获取作用域中存放的数据,四种作用域,通过键获取值
同一个key,获取的顺序为作用域从小到大
2.el表达式的隐式对象
pageScope;requestScope;SessionScope;ApplicationScope
param:获取参数,等同于getParamter
一堆数据,加下标
3.处理对象
获取对象后,不需要像jsp那样做任何处理,拿出来直接用;
获取对象属性:前者可读性较好
4.处理数组
通过下标获取
5.处理集合
推荐使用下标
通过get
6.进行运算
7.进行判断
结合判断大于
小于lt;>=ge;<=le;==eq
等不等于null
三、jstl标签(<%%>)
解决页面的逻辑问题
3.1分类
3.1.1核心标签库 c标签 由java类实现
导入标签库
取个别名,一般叫做c(core)
1.out输出
2.set 设置值,默认将值存放到pageContext作用域中,
得到值为zhangsan
可以指定作用域的范围
property和target(没啥实用价值)
3.remove 相当于removeAttribute
4.if条件
test相当于括号内的条件语句
登录,没有else,再写一条
- 完善:
用户的相关请求都放在一个servlet中
UserServlet中,没有进行任何的页面展示,只是控制请求
5.foreach
用的不多
一般是遍历集合元素
索引是从0开始,count从1开始
6.forTokens
7.choose
3.1.2格式化(国际化)标签库 fmt
1.对日期的操作
2.对number的操作
更多的是做一些小数的控制
3.国际化的操作
根据你浏览器的语言自动转换
新建一个baseName.properties 将语言翻译成unicode格式
英语和中文
用basename标签进行选择语言
基本上所有的框架都支持国际化
3.1.3 XML标签库 xml解析xml文件(不会用,会在java里解析)
3.1.4SQL标签库 sql 操作数据库(不会用,java里)
3.1.5函数标签库 处理字符串的函数
导入:
大多数用于处理字符串:
截取字符串:
四、自定义标签
taglib;tld文件
uri比较重要
- 完成功能:
完成商品列表的展示
首页展示以时间降序,展示8个商品