JSP+MVC模式+EL表达式+JSTL

    技术2022-07-10  93

    JSP:

    1.指令 * 作用:用于配置JSP页面,导入资源文件 * 格式: <%@ 指令名称 属性名1=属性值1 属性名2=属性值2... %> *分类: 1.page :配置JSP页面 *contentType:等同于response.setCoontentType() 1.设置响应体的mime类型以及字符集 2.设置当前jsp页面的编码(高级开发IDE才有效,如果是记事本则需设置pageEncoding属性来设置当前页面字符集属性) 2.include :包含页面的。导入页面的资源文件 <%@include file = "xxx.jsp"%>将xxx页面包含进当前页面 3.taglib :导入资源 <%@ taglib prefix="c" uri="http://java.sun.com/jsp......"> prefix:自定义前缀 2.注释: 1.html注释:只能注释HTML代码片段 <!-- --> 2.jsp注释:可注释所有,推荐使用 <&-- --%> 3.内置对象: *在jsp页面中不需要创建,直接使用的对象,共有9个 变量名 真实类型 *pageContext PageContext *request HttpServletRequest *session HttpSession *application ServletContext *response HttpServletResponse *page Object *out JspWriter *config ServletConfig *exception Throwable

    MVC开发模式

    1.MVC: M:Model 模式(完成具体的业务操作,如:查询数据库,封装对象)V:View 视图(展示数据)C:Controller 控制器(获取用户输入,调用模型,将数据交给试图进行展示) 优缺点 优点: 耦合性低,方便维护,可以利于分工协作重用性高 缺点: 使得项目架构变得复杂,对开发人员要求高

    EL表达式

    概念:Expression Language 表达式语言作用:替换和简化jsp页面中Java代码的编写语法:${表达式}注意: jsp默认支持el表达式,如果要忽略el表达式 设置jsp中page指令中:isELIgnored=“true” 忽略当前页面中所有el表达式${表达式} :忽略当前这个el表达式 使用: 运算: 算数运算符: + - * /(div) %(mod)比较运算符:> < >= <= == !=逻辑运算符:&&(and) ||(or) !(not)空运算符:empty 功能:用于判断字符串、集合、数组对象是否为null或者长度是否为0${empty list}:用于判断字符串、集合、数组对象是否为null或者长度是否为0${not empty list}:用于判断字符串、集合、数组对象是否不为null并且长度是否 > 0 获取值: el表达式只能从域对象中获取值语法: ${域名称 . 键名}:从指定域中获取指定键的值 域名称: pageScope -----> pageContextrequestScope ----> requestsessionScope ----> sessionapplicationScope ----> application (ServletContext) 举例:在request域中存储了name=张三获取:¥{requestScope . name} ${键名}:表示一次从最小的域中查找是否有该键对应的值,直到找到为止获取对象:List集合、Map集合的值 值为对象:¥{域名称 . 键名称 . 属性名} 本质上会调用getter方法 值为List集合:${域名称 . 键名[索引]}值为Map集合: ${域名称 . 键名 . key名称}${域名称 . 键名[“key名称”]} 隐式对象: el表达式中有11个隐式都西昂pageContext: 获取jsp其他8个内置对象 ¥{pageContext . request . contextPath}:动态获取虚拟目录

    JSTL

    - 概念:JavaScript Pages Tag Library jsp标准标签库 * Apache组织提供的开源免费的jsp标签 - 作用:用于简化和替换jsp页面上的Java代码 - 使用步骤: * 导入jstl相关jar包 * 引入标签库:taglib指令:<%@ taglib %> * 使用标签 - 常用jstl标签 * if :相当于Java代码的if语句 * choose :相当于Java代码的switch语句 1.使用choose标签声明 相当于switch声明 2.使用when标签判断 相当于case 3.使用otherwise标签做其他情况的声明 相当于default * foreach :相当于Java代码的for语句 /* *三种方法大致演示 */ <% request.setContribute("name",1); %> <c:choose> <c:when test="${name == 1}">zhouyi</c:when> <c:when test="${name == 2}">2</c:when> <c:when test="${name == 3}">3</c:when> <c:when test="${name == 4}">4</c:when> <c:when test="${name == 5}">5</c:when> <c:when test="${name == 6}">6</c:when> <c:when test="${name == 7}">7</c:when> </c:choose> <%-- foreach:相当于Java代码中的for语句 作用:1.完成重复的操作 属性: begin:开始值 end:结束值 var:临时变量 step:步长 varStatus:循环状态对象 index: 容器中元素的索引,从0开始 count:循环次数,从1开始 2.遍历容器 属性: items:容器对象 var:容器中元素的临时变量 varStatus:循环状态对象 index: 容器中元素的索引,从0开始 count:循环次数,从1开始 --%> <c:forEach begin="1" end="10" var="i" step="3" varStatus="s"> ${i} ${s.index} ${s.count}<br> </c:forEach> <% List list = new ArrayList(); list.add("aaa"); list.add("bbb"); list.add("ccc"); request.setAttribute("ls",list); %> <c:forEach items="${list}" var="str" varStatus="s"> ${s.count} ${s.index} ${str}<br> </c:forEach>
    Processed: 0.011, SQL: 9