2024/11/13日 日志 代码优化 以及 JSP 的快速入门、原理、脚本、缺点 和 EL表达式 以及 JSTL标签
代码优化
-- 创建 SqlSessionFactory 代码优化
点击查看代码
-- //2.1 获取SqlSessionFactory对象
-- String resource ="mybatis-config.xml";
-- InputStream inputStream = Resources.getResourceAsStream(resource);
-- SqlsessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputstream).
-- 问题:
-- 1.代码重复
-- 2.SqlSessionkactory 工厂只创建一次,不要重复创建 :静态代码块
JSP
点击查看代码
-- JSP
-- 概念:Java Server Pages,Java服务端页面
-- 一种动态的网页技术,其中既可以定义 HTML、JS、CSS等静态内容,还可以定义 Java代码的动态内容
-- JSP = HTML + Java
-- JSP的作用:简化开发,避免了在Servlet中直接输出HTML标签
--
-- JSP 快速入门
-- 1.导入JSP坐标
-- <dependency><groupld>javax.servlet.jsp</groupld><artifactld>jsp-api</artifactld><version>2.2</version>
-- <scope>provided</scope>
-- </dependency>
-- 2.创建JSP文件
-- 3.编写 HTML标签 和 Java代码
-- <body>
-- <h1>hello jsp~</h1>
-- System.out.printf("jsp hello~");%></body>
--
-- JSP 原理
-- ·概念:Java Server Pages,Java服务端页面
-- ·JSP =HTML+Java,用于简化开发的
-- ·JSP 本质上就是一个 Servlet
-- 外提供服务的其实就是这个字节码文件
-- ·JSP 在被访问时,由JSP容器(Tomcat)将其转换为 Java文件(Servlet),
-- 在由JSP容器(Tomcat)将其编译,最终对外提供服务的其实就是这个字节码文件
--
-- JSP 脚本
-- JSP脚本用于在 JSP页面内定义 Java代码
-- JSP 脚本分类
-- <%...%>:内容会直接放到 jspService()方法之中
-- <%=...%>:内容会放到out.print()中,作为out.print()的参数
-- <%!...%>:内容会放到 jspService()方法之外,被类直接包含
--
-- JSP 缺点
-- 由于 JSP页面内,既可以定义 HTML 标签,又可以定义 Java代码,造成了以下问题
-- 1. 书写麻烦:特别是复杂的页面
-- 2.阅读麻烦
-- 3.复杂度高:运行需要依赖于各种环境,JRE,JSP容器,JavaE.
-- 4.占内存和磁盘:JSP会自动生成.java和.class文件占磁盘,运行的是.class文件占内存
-- 5.调试困难:出错后,需要找到自动生成的.java文件进行调试
-- 6.不利于团队协作:前端人员不会 Java,后端人员不精 HTML5
--
-- 不要直接在JSP里写Java代码
-- Servlet
-- 逻辑处理,封装数据
-- JSP
-- 获取数据,遍历展现数据
--
EL表达式
点击查看代码
-- EL表达式
-- EL 表达式
-- Expression Language 表达式语言,用于简化JSP页面内的Java代码
-- 主要功能:获取数据
-- 语法:${expression}
-- ${brands}获取域中存储的key为brands的数据
--
-- EL 表达式
-- ·Expression Language 表达式语言,用于简化 JSP页面内的Java代码
-- ·主要功能:获取数据
-- ·语法:${expression}
-- · ${brands} :获取域中存储的key为brands的数据
-- ·JavaWeb中的四大域对象:
-- page:当前页面有效1
-- request:当前请求有效2.
-- session:当前会话有效
-- application:当前应用有效A
--
-- el表达式获取数据,会依次从这4个域中寻找,直到找到为止
--
JSTL标签
点击查看代码
-- JSTL 标签
-- JSP标准标签库(Jsp Standarded Tag Library),使用标签取代JSP页面上的Java代码
-- 如:
-- <c if> 与我们在一般程序中用的if一样
-- <c forEach> 基础迭代标签,接受多种集合类型
--
-- <c:if test="${flag == 1}">男
-- </c:if>
-- <c:if test="${flag == 2}">
-- 女
-- </c:if>
--
-- JSTL 快速入门
-- 1.导入坐标
-- <dependency>
-- <groupld>jstl</groupld>
-- <artifactld>jst</artifactld>
-- <version>1.2</version>
-- </dependency><dependency>
-- <groupld>taglibs</groupld>
-- <artifactld>standarg</artifactld>
-- <version>1.1.2</version>
-- </dependency>
-- 2 在JSP页面上引入JSTL标签库
-- <%@ taglib prefix="c" uri="http://iava.sun.com/isp/istl/core” %>
-- 3.使用
-- <c:if>
--
-- JSTL 标签
-- <c:forEach>:相当于 for 循环
-- items:被遍历的容器
-- var:遍历产生的临时变量
-- <c:forEach items="${brands}" var="brand">
-- <tr align="center"><tdk$fbrand.id}</td><td>${brand.brandName}</td>
-- <td>${brand.companyName}</td><td>${brand.description}</td>
-- </tr>
--
-- for (Brand brand : brands)
-- {Integer id = brand.getld();String imgUrl = brand.getlmgUrl();String brandName = brand.getBrandName();String companyName = brand.getCompanyName();}
-- </c:forEach>
--
-- begin:开始数
-- end:结束数
-- step:步长
-- <c:forEach begin="0" end="1" step="1" var="i">$册</c:forEach>
-- for (inti= 0;i<= 10; i++){System.out.println(i);
--