• JSP 基础语法


    JSP 页面元素构成

    JSP 三大指令

    1、page指令: 通常位于 jsp 页面的顶端,同一个页面可以有多个page指令

    (默认的编码方式 ISO-8859-1 仅支持全英文,如果输入中文的话就会报错,可以改成utf-8)

     

    2、include 指令: 将一个外部文件嵌入到当前的 jsp 文件中,同时解析这个页面中的 jsp 语句

    3、taglib 指令: 使用标签库定义新的自定义标签,在 jsp 中启用定制行为

    JSP 三种注释方式

    • HTML注释,客户端可见: <!-- HTML注释,客户端可见 -->
    • JSP注释,客户端不可见: <%-- JSP注释,客户端不可见--%>
    • JSP脚本中的注释,客户端不可见: //JSP脚本中的单行注释,客户端不可见,/* JSP脚本中的多行注释 ,客户端不可见*/
    <%@ page language="java" contentType="text/html; charset=utf-8"
        pageEncoding="utf-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Insert title here</title>
    </head>
    <body>
    <h1>这是我的第一个jsp页面</h1>
    <hr>
    <!-- HTML注释,客户端可见 -->
    
    <%-- JSP注释,客户端不可见--%>
    
    <%
        //JSP脚本中的单行注释,客户端不可见
        /* JSP脚本中的多行注释 ,客户端不可见*/
    %>
    </body>
    </html>

    运行结果:

      

    JSP 脚本

    在JSP页面中执行的 JAVA 代码,称之为脚本。

    语法:

    <%  JAVA 代码 %>

    示例:

    <%@ page language="java" contentType="text/html; charset=utf-8"
        pageEncoding="utf-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Insert title here</title>
    </head>
    <body>
    <h1>这是我的第一个jsp页面</h1>
    <hr>
    <%
        out.println("Hello World!");
    %>
    </body>
    </html>

    浏览器中打开页面,发现执行了out.print这段脚本

    JSP 声明

    在 JSP 页面中定义变量或方法

    语法:

    <%!  JAVA代码 %>

    JSP 表达式

    在 JSP 页面中执行的表达式

    语法:

    <%  =表达式  %>  // 注意:表达式不以分号结尾

    示例:

    <%@ page language="java" contentType="text/html; charset=utf-8"
        pageEncoding="utf-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Insert title here</title>
    </head>
    <body>
    
    <!-- JSP 声明 -->
    <%!
        String str = "小明"; // 声明了一个字符串类型变量
        int sum (int a, int b) { // 声明了一个返回值是整型的求和方法
            return a + b;
        }
    %>
    
    <!-- JSP 表达式 -->
    <h3>姓名:<%=str %></h3>
    <hr>
    <h3>10 + 5 = <%=sum(10, 5) %></h3>
    
    
    </body>
    </html>

    页面展示:

    JSP 生命周期

    jspInit() 是一个初始化方法

    jspService() 方法被调用来处理客户端的请求。对每一个请求,jsp 引擎创建一个新的线程来处理该请求;如果有多个客户端同时请求该 jsp 文件,那么,jsp 引擎会创建多个线程,每个客户端请求对应一个线程。

    以多线程方式执行可以大大降低对系统的资源需求,提高系统的并发量及响应时间。但也要注意多线程编程带来的同步问题,由于该Servlet 始终驻于内存,所以响应是非常快的。

    当页面被首次访问(或修改后首次访问)时,会在 " Tomcat -> work -> Catlina - > localhost -> project name -> org -> apache -> jsp " 目录下创建 Java的源文件和字节码文件,并为每个访问的用户创建一个线程

    应用:打印九九乘法口诀表

    方法一:使用表达式实现

    <%@ page language="java" contentType="text/html; charset=utf-8"
        pageEncoding="utf-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Insert title here</title>
    </head>
    <body>
    <!-- 使用表达式实现九九乘法表 -->
    
    <%-- 声明 --%>
    <%! 
        String printMultiTable(){
            String result = "";
            for (int i = 1; i <= 9; i++) {
                for (int j = 1; j <= i; j++) {
                    result += i + "*" + j + "=" + i * j + "&nbsp;&nbsp;";
                }
                result += "</br>";
            }
            return result;
        }
    %>
    
    <%-- 表达式:不能用分号结尾 --%>
    <%=printMultiTable() %>
    </body>
    </html>

    方法二:使用脚本实现

    <%@ page language="java" contentType="text/html; charset=utf-8"
        pageEncoding="utf-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Insert title here</title>
    </head>
    <body>
    <%-- 脚本:out对象是JSPWriter类的实例,用于向客户端输出内容 --%>
    <%
        for (int i = 1; i <= 9; i++) {
            for (int j = 1; j <=i; j++) {
                out.print(i + "*" + j + "=" + (i*j) + "&nbsp;&nbsp;");
            }
            out.println("</br>");
        }
    %>
    </body>
    </html>

    运行结果:

  • 相关阅读:
    好系统重装助手重装电脑系统步骤
    U盘加载速度慢的解决方法
    Win10应用商店缓存信息多如何去清理?
    怎么消除文件左上角的白色小框?
    U盘被识别但不显示盘符怎么样才能解决?
    【Gamma】Scrum Meeting 2
    【技术博客】 关于laravel5.1中文件上传测试的若干尝试
    【Beta】Phylab 发布说明
    【Beta】Phylab 测试报告
    【Beta】Scrum Meeting 10
  • 原文地址:https://www.cnblogs.com/rogerwu/p/8522821.html
Copyright © 2020-2023  润新知