• jsp小结-三种语法


    如何创建一个jsp页面

    1、在一个模块中的web下创建一个jsp即可
    在这里插入图片描述
    2、jsp如何访问:
    jsp页面和html页面一样,都是存放在web目录下。访问也和html页面一样
    比如:

    在web目录下有如下的文件:
    	web目录
    		a.html	页面访问地址是==>http://ip:port/工程路径/a.html
    		b.jsp	页面访问地址是==>http://ip:port/工程路径/b.jsp
    
    • 1
    • 2
    • 3
    • 4

    jsp的本质是什么

    jsp页面本质上是一个 Servlet 程序。
    当我们第一次访问 jsp 页面的时候。Tomcat 服务器会帮我们把 jsp 页面翻译成为一个 java 源文件。并且对它进行编译成为.class 字节码程序。我们打开 java 源文件可以看到里面的内容是:
    在这里插入图片描述
    其中的HttpJspBase是继承自HttpServlet,所以说他翻译出来的是一个Servlet程序。
    总之:jsp就是Servlet程序

    jsp的三种语法

    a)jsp头部的page指令

    jsp 的 page 指令可以修改 jsp 页面中一些重要的属性,或者行为。

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    
    • 1
    i. language 属性 表示 jsp 翻译后是什么语言文件。暂时只支持 java。
    ii. contentType 属性 表示 jsp 返回的数据类型是什么。也是源码中 response.setContentType()参数值
    iii. pageEncoding 属性 表示当前 jsp 页面文件本身的字符集。
    iv. import 属性 跟 java 源代码中一样。用于导包,导类。

    两个属性是给 out 输出流使用=====

    v. autoFlush 属性 设置当 out 输出流缓冲区满了之后,是否自动刷新冲级区。默认值是 true。
    vi. buffer 属性 设置 out 缓冲区的大小。默认是 8kb

    下面的两个属性是给 out 输出流使用

    vii. errorPage 属性 设置当 jsp 页面运行时出错,自动跳转去的错误页面路径。
    viii. isErrorPage 属性 设置当前 jsp 页面是否是错误信息页面。默认是 false。如果是 true 可以获取异常信息。
    ix. session 属性 设置访问当前 jsp 页面,是否会创建 HttpSession 对象。默认是 true。
    x. extends 属性 设置 jsp 翻译出来的 java 类默认继承谁。

    b)jsp的常用脚本

    i声明脚本(很少使用)

    声明脚本的格式是: <%! 声明 java 代码 %>
    作用:可以给 jsp 翻译出来的 java 类定义属性和方法甚至是静态代码块。内部类等。
    代码:

    <%--    1、声明类属性--%>
        <%!
            private int id;
            private String name;
            private static Map<Integer,String> map;
        %>
    <%--    2、声明static静态代码块--%>
        <%!
            static{
                map=new HashMap<Integer, String>();
                map.put(1,"value1");
                map.put(2,"value2");
                map.put(3,"value3");
                map.put(4,"value4");
            }
        %>
    <%--    3、声明类方法--%>
        <%!
            public int sum(int x,int y){
                return x+y;
            }
        %>
    <%--    4、声明内部类--%>
        <%!
            public static class a{
                private Integer a=12;
                private String b="abc";
            }
        %>
    
    • 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
    • 28
    • 29

    翻译过后只剩<%! %>里面的东西了。
    在这里插入图片描述

    ii表达式脚本

    表达式脚本的格式是:<%=表达式%>
    表达式脚本的作用是:的 jsp 页面上输出数据。
    表达式脚本的特点:
    1、所有的表达式脚本都会被翻译到_jspService() 方法中
    2、表达式脚本都会被翻译成为 out.print()输出到页面上
    3、由于表达式脚本翻译的内容都在_jspService() 方法中,所以_jspService()方法中的对象都可以直接使用。
    4、表达式脚本中的表达式不能以分号结束。

    <%--表达式脚本--%>
    	<%--输出整形 --%>
        <%= 12 %><br>
    	<%--输出浮点型--%>
        <%= 12.12%><br>
    	<%--输出字符串--%>
        <%= "我想学Java"%><br>
    	<%--输出对象--%>
        <%= map %><br>
    	<%--使用request,因为都是在_jspService()方法中, 所以_jspService()方法中的对象都可以直接使用。--%>
        <%= request.getParameter("username")%><br>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    在这里插入图片描述
    翻译成为的java文件,太长了,截不下,就截这一点。
    方法就是这个:
    在这里插入图片描述

    在这里插入图片描述

    iii代码脚本

    代码脚本的格式是:

    <%
    	java 语句
    %>
    
    • 1
    • 2
    • 3

    代码脚本的作用是:可以在 jsp 页面中,编写我们自己需要的功能(写的是 java 语句)。
    代码脚本的特点是:
    1、代码脚本翻译之后都在_jspService 方法中
    2、代码脚本由于翻译到_jspService()方法中,所以在_jspService()方法中的现有对象都可以直接使用。
    3、还可以由多个代码脚本块组合完成一个完整的 java 语句。
    4、代码脚本还可以和表达式脚本一起组合使用,在 jsp 页面上输出数据

    	<%
            int i=0;
            if(i==0){
                System.out.println("123");
            }else{
                System.out.println(456);
            }
        %>
        <table>
        <%
            for(int a=0;a<5;a++){
        %>
            <tr>第<%=a+1%>行<br>tr>
    
        <%
            }
        %>
        table>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    System.out.println输出的会输出到控制台:
    在这里插入图片描述

    <%=%>输出的是在网页上:
    在这里插入图片描述

    c)三种注释(html、Java、jsp)

    html 注释会被翻译到 java 源代码中。在_jspService 方法里,以 out.writer 输出到客户端。
    java 注释会被翻译到 java 源代码中。
    jsp 注释可以注掉,jsp 页面中所有代码。

    
        <%
            // 单行 java 注释
            /* 多行 java 注释 */
        %>
        <%-- 这是 jsp 注释 --%>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
  • 相关阅读:
    抑制细胞代谢紊乱的抑制剂
    请求 响应
    PyTorch深度学习实战(18)——目标检测基础
    解密企业级PPPoE:部署、配置和管理的最佳实践
    大数据Hadoop之——DorisDB介绍与环境部署(StarRocks)
    源码解析springbatch的job是如何运行的?
    实验.RIP附加度量值,RIP子网汇聚,rip计时器配置,RIP与不连续子网,RIP的水平分割及触发更新,配置RIP的版本兼容、定时器及协议优先级
    STM32H750 HAL CUBEMX 时钟失败及死机无法下载问题解决
    UNext:基于 MLP 的快速医学图像分割网络
    kubernetes 初始化
  • 原文地址:https://blog.csdn.net/hzsd_ygdcs/article/details/126225052