【JavaEE】jsp学习笔记之el技术和jstl
来源:互联网 发布:淘宝老瑞贸易可信吗 编辑:程序博客网 时间:2024/06/06 09:37
一、EL技术
1.EL表达式(取值)
嵌入到jsp页面,替代jsp页面中脚本的编写
2.EL从域中取出数据(最重要的作用)
格式:${EL表达式} request.getAttribute(name)--------${requestScope.name}
①EL获得pageContext域中的值:${pageContextScope.key},
②EL获得request域中的值:${reuqestScope.key},
③EL获得session域中的值;${sessionScope.key},
④EL获得application域中 的值:${applicationScope.key}
⑤获得值${key},顺序依次向下
<!-- 模拟域中的数据 --><%//存储字符串request.setAttribute("name", "zhangsan0");//存一个对象User user = new User();user.setId(1);user.setName("zhangsan");user.setPassword("123");session.setAttribute("user", user);//存一个集合List<User> list = new ArrayList<User>();User user2 = new User();user2.setId(2);user2.setName("zhangsan2");user2.setPassword("1232");list.add(user2);User user3 = new User();user3.setId(3);user3.setName("zhangsan3");user3.setPassword("1233");list.add(user3);application.setAttribute("list", list);%><!-- 脚本取出值 --><%=request.getAttribute("company") %><%User sessionUser = (User)session.getAttribute("user");out.write(sessionUser.getName());%><!-- 使用EL表达式取值 -->${requestScope.name}${sessionScope.user.name}${applicationScope.list[1].name }
3.EL内置对象(11个)
①pageScope
②requestScope
③sessionScope
④applicationScope
⑤param,parpamValues----接收参数 (相当于request.getParamter() request.getParamterValues())
⑥header,headerValues -----------${header["User-Agent"],,,header.host}
⑦initParam---获取全局参数---(相当于this.getServletContext().getInitParamter(name))
⑧cookie
⑨pageContext ----可以获得其他jsp八大内置对象----${pageContect.request.contextPath}
4.EL执行表达式(可以执行运算,只要有结果就行)
${1+1},${user==null?true:false}
${empty user}----------关键字empty,判断某个对象是否是null,是null返回true(""空字符串也解析是null)
二、JSTL技术(JSP Standard Tag Library)-----JSP标准标签库
1.主要完成逻辑功能,代替jsp页面中的脚本代码,有5个子库,常用的是core库(核心库)
①core-------http://ja.....------------c(核心库)
②I18N--------------------------------fmt(格式库),国际化
③SQL--------------------------------sql(基本废弃)
④XML---------------------------------x
⑤Functions-------------------------fn
2.下载jstl包,使用jsp的taglib指令导入核心库
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
3.常用标签:
①
<!-- test代表的是返回的boolean的表达式 --><c:if test="${1==1}">xxxx;</c:if><%request.setAttribute("count", 10);%><c:if test="${count==10 }"><!--大括号内部写表达式运算 -->xxxyyy;</c:if>②---1
<!-- forEach模拟 for(int i=0;j<=5;i++){syso(i)} --><c:forEach begin="0" end="5" var="i">${i}<br/></c:forEach>②---2
<!-- 模拟增强for for(Profuct product:productList){syso(product.getName())}--><!-- items:集合或数组 var:代表集合当中的某一个元素--><c:forEach items="${productList}" var="pro">${pro.pname}<br/></c:forEach>③:示例代码:
<%@page import="java.util.Map"%><%@page import="java.util.HashMap"%><%@page import="com.pdlpdy.domain.User"%><%@page import="java.util.ArrayList"%><%@page import="java.util.List"%><%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Insert title here</title></head><body><%//模拟List<String> strListList<String> strList = new ArrayList<String>();strList.add("one");strList.add("two");strList.add("three");request.setAttribute("strList", strList);//模拟List<User>List<User> userList = new ArrayList<User>();User user1 = new User();user1.setId(1);user1.setName("pdl");user1.setPassword("1");userList.add(user1);User user2 = new User();user2.setId(2);user2.setName("pdl2");user2.setPassword("2");userList.add(user2);application.setAttribute("userList", userList);//遍历Map<String,String>Map<String,String> strMap = new HashMap<String,String>();strMap.put("name","n1");strMap.put("age","1");strMap.put("addr","addr1");strMap.put("email","n1@n1.com");session.setAttribute("strMap", strMap);//遍历Map<String,User>Map<String,User> userMap = new HashMap<String,User>();userMap.put("user1", user1);userMap.put("user2", user2);request.setAttribute("userMap", userMap);%><h1>取出strList数据:</h1><c:forEach items="${strList}" var="str">${str }<br></c:forEach><hr><h1>取出userList数据:</h1><c:forEach items="${applicationScope.userList}" var="user">${user.name }<br></c:forEach><hr><h1>取出strMap数据:</h1><c:forEach items="${sessionScope.strMap}" var="entry">${entry.key}:${entry.value}<br></c:forEach><hr><h1>取出userMap数据:</h1><c:forEach items="${requestScope.userMap}" var="entry">${entry.key }:${entry.value.name}---${entry.value.password }<br></c:forEach></body></html>
4.javaEE的开发模式
1)什么是模式:
模式在开发过程中总结的“套路”,总结出的一套流程或设计模式
2)javaEE经历的模式
①model1模式:
技术组成:jsp+javaBean
弊端:随着业务的复杂性导致jsp页面比较混乱
②model2模式:
技术组成:jsp+servlet+javaBean
优点:开发中使用各个技术擅长的方面
servlet:擅长处理java业务代码
jsp:擅长页面的现实
MVC:---web开发的设计模式
M:model---模型-----javaBean:封装数据
V:view------视图-----jsp:单纯的进行页面显示
C:controller----控制体-----Servlet:获取数据,对数据进行封装,传递数据,指派显示的页面
3)javaEE的三层架构
服务器开发时,分三层:
web层:与客户端交互
service层:复杂业务处理
dao层:与数据库进行交互
通过包结构体现
MVC与三层架构关系:
- 【JavaEE】jsp学习笔记之el技术和jstl
- 【JavaEE学习笔记】JSP,EL,JSTL
- javaee学习随笔(一)之jsp/el/jstl
- jsp学习笔记,EL,JSTL
- JavaEE学习笔记之Servlet/JSP—EL表达式
- javaee学习日记之Servlet,过滤器,拦截器,jstl,EL,jsp
- JSP学习笔记--EL和JSTL
- JSP学习笔记—EL表达式和JSTL标签详解
- EL和JSTL学习笔记
- JSP EL、JSTL笔记
- 【学习】jsp编程jstl和el
- jsp-el和jstl
- JSP之JSTL学习笔记
- JavaWeb之动态页面技术JSP/EL/JSTL
- 会话技术cookie和session,JSP,EL,JSTL
- el和jstl笔记
- EL技术和JSTL技术
- JSP、JSTL、EL学习总结
- 《算法导论》最长子序列问题
- pt-osc全解pt-online-schema-change
- PHP 循环取2个时间之内的年月
- 657. Judge Route Circle
- selenium + python 自动化测试
- 【JavaEE】jsp学习笔记之el技术和jstl
- 选课时间——深搜
- .NET漫游指南-011-.NET Framework中处理和引发事件
- c语言第八次练习题
- 【Mahout】Mahout-0.12.2的安装配置
- DL02-RNN学习笔记
- java实现链表
- 【Java并发编程】一.基础
- MySQL到CSV几种方法