Java EE模式和MVC
Java EE模式
什么是模式?
开发过程中总结出来的约定俗成的“套路”。
Java EE经历的模式
- model1模式
- 技术组成:JSP+JavaBean
- model1的弊端:随着业务的复杂性,导致JSP页面比较混乱
- model2模式
- 技术组成:JSP+Servlet+JavaBean
- model2的优点:使用各个技术擅长的方面
- jsp:擅长页面的显示
- Servlet:擅长Java业务代码
- MVC:web开发的设计模式
- M:Model--模型 JavaBean:封装数据
- V:View--视图 Jsp:单纯进行页面的显示
- C:Controller--控制器 Servlet:获取数据,对数据进行封装,传递数据,指派显示的JSP页面
MVC 其实就是JSP+Servlet+JavaBean,其中Controller就是Servlet
Java EE的三层架构,三层架构是Java EE的架构
服务器开发时,分为三层
- web层:与客户端交互--struts2+springMVC
- service层:复杂业务处理--spring
- dao层:与数据库进行交互--mybatis+hibernate
开发实践时,三层架构通过包的结构体现的。
MVC是三层架构web层的技术:JSP+Servlet+JavaBean
struts2+springMVC
服务器端的三层架构:web层、service层、dao层
- web层的servlet用于接收客户端的请求(表单则进行封装),将请求转发给service层,再转发给dao层,dao查询数据并封装好返回给service层,业务层返回给servlet,servlet将数据存储在request域,交给jsp页面进行显示,最终显示给用户。
创建web工程项目上有红叉,但是项目又可以正常运行,可能是因为你的工作空间有一个和该项目相同的文件存在
总结
EL表达式
从域中取出数据 ${域中存储的数据的name}
${pageContext.request.contextPath}
JSTL 标签(核心库)
- 导入jar包
jstl.jar
和standard.jar
- JSP中引入方式
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> - 重点语法
- <c:if test="{1==1}">嘻嘻</c:if>
test代表的返回boolean的表达式条件,需要借助EL表达式运算 - <c:forEach items="数组或集合名" var="集合中的某一个元素"></c:forEach>
items代表一个集合或数组,var代表集合中的某一个元素,类似于forEach的用法。
- <c:if test="{1==1}">嘻嘻</c:if>
Java EE三层架构+MVC
- web层:搜集页面数据,封装数据,传递数据,指定响应jsp页面
- service层:逻辑业务代码的编写
- dao层:数据库的访问代码。