栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java-JSP01

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java-JSP01

文章目录
    • JSP
        • 1. JSP技术概述
        • 2. 第一个 JSP 页面
        • 3. JSP 脚本
        • 4. JSP 指令
          • 4.1 page 页面配置
          • 4.2 include 页面包含
          • 4.3 taglib 第三方 库引入
        • 5. JSP 动作
          • 5.1 jsp:include
          • 5.2 jsp:forward
        • 6. JSP 内置对象
          • 6.1 内置对象名称和对应数据类型
          • 6.2 域对象【重点】
            • 6.2.1 request
            • 6.2.2 session
            • 6.2.3 Application 和 page
        • 7. EL 表达式【重点】
          • 7.1 EL 表达式运算符和判断操作
          • 7.2 EL 解析 JavaBean
          • 7.3 EL 解析 Map
          • 7.4 EL 解析 List and Array
        • 8. JSTL 表达式【重点】
          • 8.1 JSTL if
          • 8.2 JSTL foreach
          • 8.3 JSTL choose

JSP 1. JSP技术概述
目前的问题:
	1. Java 程序和 HTML 页面没有分离
	2. HTML 页面在 Java 程序组装过程中,内存占用极高,效率极低
	3. 对于其他技术的兼容性,可行但不可取

JSP 可以简单解决当前问题
	JSP ==> Java Server Page Java 服务器页面。支持 HTML CSS JS JQuery 等一系列前端技术。。。
	JSP 是一个 Servlet 的程序。
	.jsp ==> .java ==> .class

JSP
	脚本,标签啊~~~不重要
	【重点】
		内置对象 => 四大域对象
		EL 表达式
		JSTL 表达式
2. 第一个 JSP 页面
<%--
  Created by IntelliJ IDEA.
  User: Anonymous
  Date: 2022/6/16
  Time: 10:08
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>

  
    第一个 JSP 页面
  
  
  JSP 页面
  

JSP文件
	index.jsp
Tomcat 解析:
	index.jsp ==> index_jsp.java
Tomcat 利用 Java 编译器编译得到 .class 字节码文件
	index_jsp.java ==> index_jsp.class
	
JSP ==> Java 程序,不是一门纯正的前端技术 ,Java + 前端的串儿
不是前后端分离技术。
3. JSP 脚本
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.HashMap" %>
<%--
  Created by IntelliJ IDEA.
  User: Anonymous
  Date: 2022/6/16
  Time: 10:27
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    01-JSPScript.jsp




<%-- JSP 脚本 JSP 注释--%>
<%
    // Java 代码
    ArrayList list = new ArrayList<>();
    HashMap map = new HashMap<>();  

    list.add("牛肉面");
    list.add("羊肉汤");
    list.add("羊杂汤");

    System.out.println(list);
    // out 是 JSP 内置对象 可以将数据内容发送到 HTML 页面
    out.write("" + list.toString() + "");
%>
<%-- JSP 输出脚本 --%>
<%=list.toString()%>



4. JSP 指令 4.1 page 页面配置
当前页面的 page 信息
<%--
  Created by IntelliJ IDEA.
  User: Anonymous
  Date: 2022/6/16
  Time: 11:09
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8"
         language="java"
         isErrorPage="false"
         session="false"
         isELIgnored="true"
         errorPage="error.jsp"
         import="java.util.ArrayList"
%>
<%--
contentType 页面内容类型和编码集问题

language 解析当前 JSP 页面对应的语句,默认 Java

isErrorPage 当前页面是否为错误信息页面,默认为 false ,false不能使用内置对象 exception
        如果为 true ,当前 JSP 页面可以使用内置对象 exception ==> java.lang.Throwable

session 标记当前 JSP 页面是否可以使用 Session 对象,默认 true 可以使用
        如果为 false 当前 JSP 页面无法使用 JSP 内置对象 session ==> javax.servlet.HttpSession

isELIgnored 是否支持 EL 表达式,默认为 true JSP 页面可以使用 EL 表达式
            如果赋值 false 当前 JSP 页面无法使用 EL 表达式【不推荐】

errorPage 指定当前页面出现错误之后,错误信息处理页面

import 可以用于导入 Java中或者第三方 Jar 包,不常用
--%>


    02-JSPPage01


<%
    Object[] arr = new Object[10];
    arr[0] = 10;
    ArrayList list = new ArrayList<>();
%>
<%--<%=exception%>--%>
<%--<%=session%>--%>


4.2 include 页面包含
<%--
  Created by IntelliJ IDEA.
  User: Anonymous
  Date: 2022/6/16
  Time: 11:24
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    主页


<%--
include 指令在当前 JSP 页面编译过程之前,首先将其他引入融合到当前 JSP 页面中
引入的 JSP 页面不会有独立的编译过程,每一次引入都是新的内容,会导致数据冗余
静态引入,资源浪费
 --%>
<%@ include file="03-top.jsp"%>

主页内容 <%@ include file="03-footer.jsp"%>

4.3 taglib 第三方 库引入
JSP 页面为解决完全脱离 Java 代码的格式,可以引入第三方的 JSTL 表达式,需要导入第三方 Jar 包,同时 JSP
页面需要引入对应的标签标记
第三方 Jar 包
	jstl-1.2.jar

tablib 引入标签前缀和对应标准规范
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%--
  Created by IntelliJ IDEA.
  User: Anonymous
  Date: 2022/6/16
  Time: 11:35
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>


    



    你好




5. JSP 动作 5.1 jsp:include

JSP:include JSP 动作引入 JSP 其他页面

5.2 jsp:forward
<%--JSP forward 转发操作,直接转发到对应资源目标,没有参数信息 --%>

<%-- 转发到其他资源 JSP servlet 带有其他参数--%>

    
    
    

6. JSP 内置对象 6.1 内置对象名称和对应数据类型
内置对象数据类型
requestHttpServletRequest 请求对象
sessoinHttpSession Session 对象
applicationServletContext 整个 WEB Application 对象
pageContextthis/Object 当前 JSP 页面
exceptionThrowable Java 中的异常和错误的超类
outJspWriter ==> resp.getWriter(); 对 HTML 页面输出对象
page当前 JSP 页面
responseHttpServletResponse 响应对象
configServletConfig Servlet配置对象
6.2 域对象【重点】 6.2.1 request

6.2.2 session

6.2.3 Application 和 page

7. EL 表达式【重点】 7.1 EL 表达式运算符和判断操作
<%@ page import="java.util.ArrayList" %><%--
  Created by IntelliJ IDEA.
  User: Anonymous
  Date: 2022/6/16
  Time: 16:44
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    EL表达式运算符和判断使用
    


<%--
算术运算符 + - * / % ()
逻辑运算符 || && !
关系运算符 > < >= <= != ==
三目运算符 ? :

重点:
    empty
    1. 可以判断集合,数组,Map 中是否有数据内容,size() length
    2. 可以判断指定元素是否为 null
    tips:
        not empty 是一个取反
--%>
  • ${1 + 5}
  • <%=1 + 5%>
  • ${10 > 5 && 5 > 20}
  • ${10 > 5 ? "你好" : "我好"}
  • ${10 * 20}
  • ${10 / 20}

<% ArrayList list = null; // // list.add("芬达"); // list.add("可乐"); // list.add("雪碧"); // list.add("旺仔"); // list.add("AD钙奶"); request.setAttribute("list", list); %> <%-- EL 表达式当中是可以直接操作获取 域对象数据内容,根据属性名获取对应内容 --%> List集合是空的吗? ${empty list} List集合不是空的吗? ${not empty list}
7.2 EL 解析 JavaBean
<%@ page import="com.qfedu.entity.Student" %><%--
  Created by IntelliJ IDEA.
  User: Anonymous
  Date: 2022/6/16
  Time: 17:01
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title


<%
    Student student = new Student();

    student.setId(1);
    student.setName("苟磊");
    student.setAge(16);
    student.setGender(false);

    request.setAttribute("student", student);
%>


        <%-- JavaBean对象.成员变量名称 --%>
        
学生信息
ID 姓名 年龄 性别
${student.id} ${student.name} ${student.age} ${student.gender ? "女" : "男"}
7.3 EL 解析 Map
<%@ page import="java.util.HashMap" %><%--
  Created by IntelliJ IDEA.
  User: Anonymous
  Date: 2022/6/16
  Time: 17:09
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title


<%
    HashMap map = new HashMap<>(4);

    map.put("id", 1);
    map.put("name", "大哥");
    map.put("age", 15);
    map.put("gender", true);

    request.setAttribute("map", map);
%>

        <%-- Map对象.key 【墙裂推荐】 --%>
        
        <%-- Map对象[字符串键名] --%>
        
学生信息
ID 姓名 年龄 性别
${map.id} ${map.name} ${map.age} ${map.gender ? "女" : "男"}
${map["id"]} ${map["name"]} ${map["age"]} ${map["gender"] ? "女" : "男"}
7.4 EL 解析 List and Array
<%@ page import="java.util.ArrayList" %><%--
  Created by IntelliJ IDEA.
  User: Anonymous
  Date: 2022/6/16
  Time: 17:15
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title


<%
    ArrayList list = new ArrayList<>();

    list.add("钟薛高");
    list.add("梦龙");
    list.add("哈根达斯");
    list.add("DQ");
    list.add("KFC");
    request.setAttribute("list", list);

    Object[] array = {"雷碧", "李子园", "板蓝根", "王老吉", "Red mo~~~"};
    request.setAttribute("array", array);
%>

    <%-- 集合[下标] --%>
  1. ${list[0]}
  2. ${list[1]}
  3. ${list[2]}
  4. ${list[3]}
  5. ${list[4]}

    <%-- 集合.get(下标) --%>
  1. ${list.get(0)}
  2. ${list.get(1)}
  3. ${list.get(2)}
  4. ${list.get(3)}
  5. ${list.get(4)}

    <%-- 数组[下标] --%>
  • ${array[0]}
  • ${array[1]}
  • ${array[2]}
  • ${array[3]}
  • ${array[4]}
8. JSTL 表达式【重点】

JSP 页面为解决完全脱离 Java 代码的格式,可以引入第三方的 JSTL 表达式,需要导入第三方 Jar 包,同时 JSP
页面需要引入对应的标签标记
第三方 Jar 包
jstl-1.2.jar

tablib 引入标签前缀和对应标准规范
<%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %>

8.1 JSTL if
<%@ page import="java.util.ArrayList" %><%--
  Created by IntelliJ IDEA.
  User: Anonymous
  Date: 2022/6/16
  Time: 17:29
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%-- 引入 JSTL 标签库 --%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>


    Title


<%--
if 判断
if (10 > 5) {
}
--%>


    路见不平一声吼,大哥没有男朋友


    两只黄鹂鸣翠柳,大哥做饭全靠吼


<% ArrayList list = new ArrayList<>(); // list.add("老邢"); // list.add("阳哥"); // list.add("琳哥"); // list.add("东哥"); // list.add("苟磊 Dog"); request.setAttribute("list", list); %> 解析数据 没有数据
8.2 JSTL foreach
<%@ page import="java.util.ArrayList" %><%--
  Created by IntelliJ IDEA.
  User: Anonymous
  Date: 2022/6/16
  Time: 17:40
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>


    


<%

    ArrayList list = new ArrayList<>();
    list.add("老邢");
    list.add("阳哥");
    list.add("琳哥");
    list.add("东哥");
    list.add("苟磊 Dog");

    request.setAttribute("list", list);
%>
    <%-- items=${集合/数组} var=循环使用的临时变量 --%>
  • ${name}
8.3 JSTL choose
<%--
  Created by IntelliJ IDEA.
  User: Anonymous
  Date: 2022/6/16
  Time: 19:37
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>


    03-jstl


<%
    request.setAttribute("score", 60);
%>

    
        秀儿
    
    
        良儿
    
    
        中儿
    
    
        过儿
    
    
        让嫩爹穿着拖孩来学校一趟
    





html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>


    03-jstl


<%
    request.setAttribute("score", 60);
%>

    
        

秀儿

良儿

中儿

过儿

让嫩爹穿着拖孩来学校一趟

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/996211.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号