jsp 心已赠人 2022-02-05 12:36 196阅读 0赞 # 动态页面技术 # ## 一、JSP ## ### 1. 简介 ### * JSP:Java Server Page,Java服务器端页面技术,是Sun公司提供的一套规范。表面上是HTML+Java,但是**JSP的本质是Servlet** * JSP和Servlet的对比: * JSP:擅长页面显示的内容(直接写HTML代码);不擅长于功能逻辑的处理(在JSP里嵌套Java代码) * Servlet:擅长于功能逻辑的处理(就是Java类);不擅长于页面显示的内容(response.getWriter().print()) * 实际开发中,是JSP+Servlet配合使用 ### 2. 原理 ### * 了解JSP的运行原理(运行过程) * JSP必须要部署在服务器软件里:由服务器软件把JSP文件,翻译转换成Servlet,实际运行的是Servlet的代码 * 过程: * jsp文件 ------翻译----->Java文件(Servlet)------编译------>class文件(Servlet)------>有客户端访问,Tomcat就调用这个Servlet的代码 * 什么时候,Tomcat会把JSP翻译成Servlet? * 第一次访问时 ### 3. 语法(了解) ### 3.1 JSP的注释 <%-- JSP的注释,可以注释JSP文件里的一切内容 --%> 3.2 JSP里嵌套Java代码 * 嵌套Java表达式:`<%=Java表达式 %>`, 被EL表达式代替了 * 用于把Java表达式的结果,显示到页面上 * 嵌套Java代码片段:`<% Java代码片段 %>`, 被JSTL代替了 * 通常用于写if判断、for循环等逻辑代码 * 嵌套Java声明:`<%! Java声明 %>`,不使用这种方式 * 声明的是Servlet类的成员变量或者成员方法 ## 二、EL ## ### 1. 什么是EL ### * EL:Expression Language,EL表达式。目的是用于:代替`<%=Java表达式 %>`,向页面输出显示内容 * 基本语法:`${表达式内容}` ### 2. EL的使用 ### 2.1 从域对象里取数据并显示到页面 ${pageScope.key} <!-- 从pageContext里取key对应的数据,显示到页面上 --> ${requestScope.key} <!-- 从request里取key对应的数据,显示到页面上 --> ${sessionScope.key} <!-- 从session里取key对应的数据,显示到页面上 --> ${applicationScope.key} <!-- 从ServletContext里取key对应的数据,显示到页面上 --> ${key} <!-- 从四个域对象, 按从小到大的顺序,查找key对应的数据 --> * `${key[索引].key}`:根据索引找,使用`[索引]`。 `.key`可以是获取键值对里key对应的值,也可以是方法`getKey()`的值 2.2 可以进行数据运算 * 基本数学运算:`+, -, *, /, %` * 比较运算:`>,<,>=,<=,==,!=` 或者 `gt, lt, ge, le, eq, ne` * 逻辑运算:`&&, ||, !` 或者 `and, or , not` * 判空:`empty` * 三元运算:`判断条件?结果为true的值:结果为false的值` ## 三、JSTL ## ### 1. 简介 ### * JSTL:JSP Standard Tag Library, JSP标准标签库。提供了一些标签,这些标签有逻辑功能,比如:if判断、forEach循环等等。可以用来代替JSP里`<% Java代码片段 %>` * JSTL标签库包含5个子库,但是目前还用的上的只剩一个:core核心库,提供了if判断和循环遍历的标签 ### 2. 引入JSTL ### * 引入jar包 * 在JSP里引入要使用标签库:在JSP里page指令下增加代码 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> ### 3. JSTL的标签使用 ### > JSTL标签本身,不具备从域里取数据的能力,也不具备数据运算的能力。需要配合EL表达式来完成功能 3.1 `c:if`标签 * 作用:用来进行判断的 * 语法: <c:if test="判断条件,使用EL表达式进行判断"> 如果判断为true,这里的内容会生效 </c:if> * 示例: <c:if test="${age < 18}"> <span style="color:red;">未成年</span> </c:if> <c:if test="${age >= 18}"> <span style="color:green;">已成年</span> </c:if> 3.2 `c:forEach`标签 * 作用:用来进行循环遍历的 * 基本for循环 * 语法: <c:forEach var="变量名" begin="变量开始值" end="变量结束值" step="步长,每次循环加几"> 当前值是:${变量名} </c:forEach> * 示例: <c:forEach var="i" begin="1" end="10" step="1"> <span style="color:red;">${i}</span> </c:forEach> * 增强for循环 * 语法: <c:forEach items="循环遍历的对象,使用EL表达式获取到" var="变量名" varStatus="vs"> 当前对象:${变量名}, 当前序号:${vs.count}, 当前索引:${vs.index}, 当前是否第一个:${vs.first}, 当前是否最后一个:${vs.last} </c:forEach> * 示例: <table border="1" width="500px" cellspacing="0"> <tr> <th>序号</th> <th>索引</th> <th>姓名</th> <th>年龄</th> </tr> <!-- 把域里的用户信息,循环显示到表格里。每个用户是一行 --> <c:forEach items="${userList}" var="user" varStatus="vs"> <tr> <td>${vs.count}</td> <td>${vs.index}</td> <td>${user.name}</td> <td>${user.age}</td> </tr> </c:forEach> </table> ## 四、JSP开发模式 ## ### 1. MVC模式 ### * Model1阶段的第一代:JSP * JSP:负责一切,数据库操作、功能逻辑、页面的显示 * Model1阶段的第二代:JSP+JavaBean * JavaBean:数据库实体封装 * JSP:功能逻辑、页面的显示 * Model2阶段:JSP+JavaBean+Servlet * JavaBean:数据库实体封装 * JSP:负责页面的显示 * Servlet:功能逻辑 * MVC思想:Model2阶段符合MVC模式的 * M:Model模型层,JavaBean * V:View视图层,JSP * C:Controller控制层,Servlet ### 2. JavaEE三层架构 ### 指服务端代码的分层: * web层(表现层、表示层):和客户端交互的,对应一个package(web),放Servlet * service层(业务逻辑层):完成功能逻辑的,对应一个package(service),放XXXService * dao层(数据访问层、持久层):操作数据库的,对应一个package(dao),放XXXDao * domain包:放JavaBean * util包:放工具类 ### 3.练习 ### # 内容回顾 # 1. 理解JSP的运行原理(运行过程) JSP---->Java文件(Servlet)---->class文件 客户端访问JSP时,Tomcat会调用class(Servlet代码) 2. 能够使用EL表达式从域里获取数据:`${key[索引].key}` 3. 能够使用EL表达式进行运算:基本数学运算、比较运算、逻辑运算、empty判空和三元运算 4. 能够使用JSTL的if标签,进行判断 5. 能够使用JSTL的forEach标签,进行基本for循环和增强for循环 6. 能够按照JavaEE三层架构进行开发
相关 JSP基础:jsp注释 > HTML注释:<!-- -->是相对浏览器的,浏览器会忽略注释的部分不显示在页面上。 > Java注释: // ,/\ \/ 是相对于编译器的,编译器会忽略注释的代码,生 拼搏现实的明天。/ 2023年10月08日 23:37/ 0 赞/ 9 阅读
相关 JSP 我们都知道静态页面html,但是在我们淘宝购物的时候,每个用户的购物车界面是不一样的,那么这个购物车的界面又是如何生成的呢?是通过动态JSP生成的。 > JSP:Java S 蔚落/ 2022年06月05日 07:28/ 0 赞/ 144 阅读
相关 jsp 目录 出错页面 包含其他页面的两种方法 两种方法的比较: 网页跳转的两种方法 跳转携带参数 jsp内置对象 四个作用域对象 ------------ ╰半夏微凉°/ 2022年03月29日 02:44/ 0 赞/ 169 阅读
相关 JSP 1. 概念:Java Server Pages Java服务器端页面 一个特殊的页面,其中既可以定义html标签,又可以定义Java代码。 你的名字/ 2022年03月01日 19:08/ 0 赞/ 177 阅读
相关 jsp ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ub 男娘i/ 2022年02月12日 19:09/ 0 赞/ 171 阅读
相关 jsp 动态页面技术 一、JSP 1. 简介 JSP:Java Server Page,Java服务器端页面技术,是Sun公司提供的一套规范。表面上是HTML+ 心已赠人/ 2022年02月05日 12:36/ 0 赞/ 197 阅读
相关 JSP 1.JSP有哪些内置对象?作用分别是什么? 答案: 1. JSP有9个内置对象: (1)request:封装客户端的请求,其中包含来自GET或POST请求的参数; 川长思鸟来/ 2022年01月10日 06:17/ 0 赞/ 238 阅读
相关 JSP 一、JSP简介 1. 什么是 JSP JSP全名为 Java Server Pages,中文名叫 java服务器页面。 它是在传统的网页HTML文件(.htm,. た 入场券/ 2022年01月07日 15:23/ 0 赞/ 231 阅读
相关 JSP jsp简介 JSP(Java Server Pages)是JavaWeb服务器端的动态资源,它与html页面的作用是相同的,显示数据和获取数据。 jsp: 作为请求发起页 喜欢ヅ旅行/ 2021年11月02日 14:46/ 0 赞/ 290 阅读
还没有评论,来说两句吧...