• Day44-JSP基础语法与指令、JVM原理(补充了解)


    Day44-JSP基础语法与指令、JVM原理(补充了解)

    JSP基础语法与指令

    任何语言都有自己的语法,JAVA中有,JSP作为JAVA技术的一种应用,它拥有着一些自己扩充的语法(了解,直到即可!),java所有语法都支持

    JSP表达式

    <%@page contentType="text/html;charset=UTF-8" language="java" %>
    
    
        $Title$
    
    
    <%--JSP表达式
    作用:用来将程序的输出,输出到客户端
    例子:
    <%= 变量或者表达式%>
    --%>
    <%--创建了一个时间--%>
    <%= new java.util.Date()%>
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    测试

    在这里插入图片描述

    JSP脚本片段

    <%@page contentType="text/html;charset=UTF-8" language="java" %>
    
    
        $Title$
    
    
    <%--JSP脚本片段--%>
    <%
        int sum = 0;
        for (int i = 1; i <=100; i++) {
            sum+=i;
        }
        out.println("

    1到100的和为:"+sum+"

    "); %>
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    测试

    在这里插入图片描述

    脚本片段的再实现

    <%@page contentType="text/html;charset=UTF-8" language="java" %>
    
    
        $Title$
    
    
    <%--脚本片段的再实现--%>
    <%
        String name = "小赵";
        out.println("姓名:"+name);
    %>
    <%
        int age =18;
        out.println("年龄:"+age);
    %>
    

    这是一个JSP文件

    <%--在代码嵌入HTML元素--%> <% for (int i = 0; i < 3; i++) { %>

    你好,小赵<%= i%>号

    <% } %>
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    测试

    在这里插入图片描述

    JSP声明

    <%--JSP声明--%>
    <%!
        /*静态代码块*/
        static {
            System.out.println("Servlet加载中!");
        }
        /*全局变量*/
        private int globalVar = 0;
        public void zhao(){
        System.out.println("进入了方法Zhao!");
        }
    %>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    ***JSP声明:***会被编译到JSP生成的Java的类中!其他的就会被生成到_jspService方法中。

    一个完整的网页:在JSP,嵌入Java代码即可。

    <%%>
    <%=%>
    <%!%>
    <%--注释--%>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5

    JSP的注释,不会在客户端显示,HTML就会。

    JSP指令

    <%@page args...%>
    
    • 1

    案列:

    自定义错误界面

    第一种

    jsp页面添加

    <%@ page errorPage="error/500.jsp"%>
    
    • 1

    第二种

    在web.xml中设置

        <error-page>
            <error-code>404error-code>
            <location>/error/404.jsplocation>
        error-page>
        <error-page>
            <error-code>500error-code>
            <location>/error/500.jsplocation>
        error-page>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    500.jsp

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    
    
        Title
    
    
    500
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    404.jsp

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    
    
        Title
    
    
    404
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    测试

    index.jsp中设置错误代码

    <%@page contentType="text/html;charset=UTF-8" language="java" %>
    <%--定制错误页面--%>
    <%--<%@ page errorPage="error/500.jsp" %>--%>
    
    
        Title
    
    
    <%--JSP声明--%>
    <%
        int x =1/0;
    %>
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    500界面

    在这里插入图片描述

    404界面

    在这里插入图片描述

    网页的Header和Footer

    <%@include file="文件路径"%>
    
    • 1

    测试

    header.jsp

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    

    我是头部

    • 1
    • 2

    footer.jsp

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    

    我是尾部

    • 1
    • 2

    jsp01.jsp

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    
    
        Title
    
    
    <%@include file="common/header.jsp"%>
    

    网页主体

    <%@include file="common/footer.jsp"%>
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    测试

    在这里插入图片描述

    也可以通过JSP标签实现

    jsp01.jsp

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    
    
        Title
    
    
    <%@include file="common/header.jsp"%>
    

    网页主体

    <%@include file="common/footer.jsp"%>
    <%--JSP标签--%>

    网页主体2

    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    测试

    在这里插入图片描述

    两种方法的区别

    <%@include file="文件路径"%>
    
    • 1

    会将页面合二为一,所以设置变量的时候不能重名,不然会报错

    在这里插入图片描述

    
    
    • 1

    是拼接页面,本质还是三个,互不影响所以可以设置同名变量

    在这里插入图片描述

    JVM原理(补充了解)

    1.类的加载

    什么是类的加载?

    将类的class文件二进制数据读入到内存,然后放入JVM的方法区内,在JVM堆区中创建一个class对象,这个class对象就是类加载的最终产品。

    类的加载过程

    首先类加载的前提是.class文件,并不是.java文件,而java文件到class文件的过程,我们称之为编译过程

    类加载器种类

    在这里插入图片描述

    2.内存分配和回收策略

    什么是GC

    GC是垃圾收集的意思,内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的。

    1.策略:对象优先在Eden区分配

    在这里插入图片描述

    2.策略:大对象直接进入老年代

    大对象(需要大量连续空间的对象)

    可以通过参数设置,超过这个值就会直接进入老年代

    3.策略:长期存活的对象进入老年代

    每次在Eden区出生,在第一次minorGC中存活,那么就进入Survivor区age=1,并且每熬过一次minorGC,age+1;

    当age=15时进入老年代

    在这里插入图片描述

    4.策略:Minor GC后存活的对象Survivor区方不下,部分会放入老年区中

    5.策略:Eden区和Survivor区默认比例为8:1:1

    6.策略:对象动态年龄判断

    在Survivor区某一块的总数所占内存大于总内存的50%,那么年龄大于当前块的最大年龄的对象,都会进入老年代

    在这里插入图片描述

    7.策略:老年代空间分配担保机制

    在Minor GC之前,计算老年代剩余空间

    在这里插入图片描述

    3 .四种JVM垃圾回收算法

    • 标记-清除算法

    • 标记-整理算法

    • 复制算法

    • 分代回收算法

    4.垃圾收集器

    • Serial收集器
    • ParNew收集器
    • Parallel收集器
    • CMS收集器
    • G1收集器
  • 相关阅读:
    大一新生HTML期末作业 学生个人网页设计作业 HTML5响应式个人简历网站模板 web前端网页制作课作业
    探索DrissionPage:结合浏览器自动化与数据包操控的先进工具
    机器学习7—聚类算法之K-means算法
    【算法刷题 | 栈】3.16(有效的括号、删除字符串中的所有相邻重复项、逆波兰表达式求值)
    数据安全之重点技术总结
    arch_linux 虚拟机安装
    C# 将一种类型的数组转换为另一种类型的数组
    modbus协议教程
    Spring Boot 2.6.x整合Swagger启动失败报错问题解决(治标还治本)
    如何使用netlify部署vue应用程序
  • 原文地址:https://blog.csdn.net/GHY0911/article/details/126710921