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

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自定义函数

猜你喜欢

转载自blog.csdn.net/qq_49658603/article/details/108481871