Web学习历程记录(十一)——JSP

本文介绍了JSP的基本概念和执行原理,详细讲解了JSP的语法元素,如<%...%>、<%=...%>、<%!...%>。此外,探讨了EL表达式的使用,包括数据获取、数组、List和Map的操作。还介绍了JSTL标签库的重要性,用于简化页面数据展示和处理。最后提到了JSTL的五大核心标签库及其应用场景。
摘要由CSDN通过智能技术生成

JSP

概述

Java server page
jsp的本质就是Servlet

执行原理
jsp会翻译成Servlet(.java).Servlet编译成class文件

流程
第一次访问jsp文件的时候,服务器收到请求,jspServlet会去查找对应的jsp文件
找到之后,服务器会将这个jsp文件转换成java文件(Servlet)
服务器编译java文件,生成class文件
服务器运行class文件,生成动态的内容
服务器收到内容后返回给浏览器

基本语法

<% … %>java程序片段
<%=…%>输出表达式
<%! …%>声明成员变量

EL

${…}
获取数据
执行运算

获取数据
${requestScope|sessionScope|applocationScope.属性名}

<%--
  Created by IntelliJ IDEA.
  User: 10341
  Date: 2020/9/9
  Time: 9:41
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>$Title$</title>
</head>
<body>
<% request.setAttribute("rkey", "rrr");
    session.setAttribute("skey", "sss");
    application.setAttribute("akey","aaa");
%>
获得request里面存的数据:<br/>
<%=request.getAttribute("rkey")%><br/>
${requestScope.rkey}<br/>
获得session里面存的数据:<br/>
<%=session.getAttribute("skey")%><br/>
${sessionScope.skey}<br/>
获得application里面存的数据<br/>
<%=application.getAttribute("akey")%><br/>
${applicationScope.akey}<hr/>
简单写法<br/>
${rkey}<br/>
${akey}<br/>
${skey}<br/>
</body>
</html>

获取数组
${数组属性名[index]};
其中key是数组属性名

获取list
${list属性名[index]} 或 ${list属性名.get(index)}
其中属性名就是存入域对象里面的key

获取Map
${map属性名.键} 或 ${map属性名.get(键)}
属性名就是key

<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.Map" %>
<%@ page import="java.util.HashMap" %><%--
  Created by IntelliJ IDEA.
  User: 10341
  Date: 2020/9/9
  Time: 19:44
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%
    String[] array = {"aaa","bbb","ccc"};
    request.setAttribute("a",array);

    List<String> list = new ArrayList<>();
    list.add("aaa");
    list.add("bbb");
    list.add("ccc");
    session.setAttribute("l",list);

    Map<String,String> map = new HashMap<String,String>();
    map.put("akey","aaa");
    map.put("bkey","bbb");
    map.put("ckey","ccc");
    request.setAttribute("m",map);
%>

${a[1]}
${l[1]}
${m.akey}
</body>
</html>

获取bean
${bean的属性名.javabean属性}
跟map有点像

[]和.方式的区别
只要是能用.的都可以用[]
带下标(数组,list)要用[]
带特殊字符的要用[]

获取三个域范围的值,存入三个域中方
能获取的则获取,获取不到返回"字符串,不是返回null"
$(域中属性名):依次从requestScope | sessionScope |applicationScope中查找指定的属性,若找到,立即返回,且结束该次查找,若找不到返回”“
若属性名中出现了”.“ “+” "-"等符号,快捷获取的方式不好使,必须使用以下方式{xxxScope[“属性名”]}

JSTL标签库

为了简化在jsp页面上展示数据 遍历数据 判断数据

五大标签库
核心标签库
xml标签库
国际化/格式化标签库
数据库标签
EL自定义函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值