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>

运行结果:

原文地址:https://www.cnblogs.com/rogerwu/p/8522821.html