JSP
1、JSP简介
1.1、概念
1.2、作用
2、JSP导入
2.1、导入JSP坐标
-
<dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.2</version> <scope>provided</scope> </dependency>
2.2、创建JSP文件
- IDEA ---> New ----> JSP....
2.3、编写HTML标签和Java代码
3、JSP原理
- JSP本质上就是一个Servlet
- JSP在被访问的时候,由JSP容器(Tomcat)将其转换为Java文件(Servlet),再由JSP容器(Tomcat)将其编译,最终对外提供服务,该服务的提供者其实就是这个字节码文件
- 查看JSP生成的java源码
4、JSP脚本
5、JSP缺点
6、EL表达式
6.1、EL的概念
6.2、主要功能
- 获取数据
6.3、语法
${expression}
${brands}
:获取域中存储的key为brands的数据
6.4、JavaWeb中的四大域对象
- page
- 当前页面有效
- request
- 当前请求有效
- session
- 当前会话有效
- application
- 当前应用有效
6.5、EL表达式获取数据的顺序
- 会依次从这4个域中寻找,直到找到为止
6.6、示例
-
Servlet
-
@WebServlet("/demo02") public class ServletDemo02 extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws servletexception, IOException { doGet(request, response); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws servletexception, IOException { // 1.准备数据 List<Brand> brands = new ArrayList<>(); brands.add(new Brand(2,"优衣库","优衣库",200,"优衣库,服适人生",0)); brands.add(new Brand(3,"小米","小米科技有限公司",1000,"为发烧而生",1)); brands.add(new Brand(5,"华为","华为科技有限公司",1000,"为发烧而生",1)); brands.add(new Brand(6,"三只松鼠","三只松鼠",100,"三只松鼠,好吃不上火",1)); // 2.存储数据到request域中 request.setAttribute("brands", brands); request.setAttribute("username", "zhangsan2"); request.setAttribute("age", 162); // 3.转发到jsp request.getRequestdispatcher("04el.jsp").forward(request, response);
-
-
JSP
-
<body> username: ${username}<br/> brands: ${brands} </body>
-
7、JSTL标签
7.1、概念
-
eg
-
<c:if test="${flag == 1}"> 男 </c:if> <c:if test="${flag == 2}"> 女 </c:if>
-
7.2、标签类型
7.3、JSTL的使用
-
1.导入坐标
-
<dependency> <groupId>jstl</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency>
-
-
-
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
-
-
3.使用
-
<c:if test="...">...</c:if>
,test用于定义条件表达式-
<c:if test="${flag == 1}"> 男 </c:if> <c:if test="${flag == 2}"> 女 </c:if>
-
-
<c:forEach>
:相当于for循环(跟Java中的for循环类似,有增强for循环和普通for循环)-
增强for循环
-
items
:被遍历的容器 -
var
:遍历产生的临时变量 -
varStatus
:遍历状态对象 -
<c:forEach items="${brands}" var="brand"> <tr align="center"> <td>${brand.id}</td> <td>${brand.brandName}</td> <td>${brand.companyName}</td> <td>${brand.description}</td> </tr> </c:forEach> <%--相当于Java代码中的增强for循环 for (Brand brand : brands) { Integer id = brand.getId(); String imgurl = brand.getimgurl(); String brandName = brand.getBrandName(); String companyName = brand.getCompanyName(); } --%>
-
-
普通for循环
-
-
8、MVC模式和三层架构
8.1、MVC模式
- MVC是一种分层开发的模式
- M:Model,业务模型,处理业务
- V:View,视图,界面展示
- C:Controller,控制器,处理请求,调用模型和视图
- MVC的好处
- 职责单一,互不影响
- 有利于分工协作
- 有利于组件重用
8.2、三层架构
- 表现层,业务逻辑层,数据访问层
8.3、MVC模式和三层架构之间的关系
9、基于JSP的品牌信息管理案例
- 完成品牌数据的增删改查操作
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。