JSP经典学习笔记(包含各种入门常用语法)

JSP即Java Server Pages,是一种基于 Java 技术的Web应用程序开发技术。它允许开发者在网页中嵌入 Java 代码片段,实现与动态数据交互的功能。本篇攻略将包括以下几个部分:

JSP经典学习笔记攻略

JSP即Java Server Pages,是一种基于 Java 技术的Web应用程序开发技术。它允许开发者在网页中嵌入 Java 代码片段,实现与动态数据交互的功能。本篇攻略将包括以下几个部分:

  1. JSP基础语法
  2. JSP内置对象
  3. JSP标准标签库
  4. 两条示例说明

JSP基础语法

JSP文件结构

在JSP文件中,可以使用HTML标记和Java代码片段,代码片段需要使用 <% %> 标记进行包裹。以下是一个典型的JSP文件结构:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <title>JSP Example</title>
</head>
<body>
    <h1>Welcome to JSP World!</h1>
    <%
        // Java代码片段
        String name = "JSP";
        out.print("Hello, " + name);
    %>
</body>
</html>

JSP指令和指令属性

JSP指令使用 <%@ %> 标记进行包裹,包含了JSP页面的指令和属性。以下是两个最常用的指令:

page指令

<%@ page %> 指令定义JSP中的页面属性。以下是一些常见的页面属性:

<%@ page language="java" %>  // 指定JSP文件的脚本语言为Java
<%@ page contentType="text/html; charset=UTF-8" %>  // 指定页面的编码格式为UTF-8
<%@ page import="java.util.Date" %>  // 导入Java类库
<%@ page session="false" %>  // 禁用Session

include指令

<%@ include %> 指令包含另一个JSP文件或HTML文件。以下是使用include指令包含页面头文件的示例:

<%@ include file="header.jsp" %>

JSP脚本和表达式

JSP脚本使用 <% %> 标记进行包裹,Java代码片段可以在其中执行。以下是一个简单的脚本示例:

<%
    String name = "JSP";
    out.print("Hello, " + name);
%>

JSP表达式使用 <%= %> 标记进行包裹,它会将表达式的结果输出到网页中。以下是一个简单的表达式示例:

<%= "Hello, JSP" %>

JSP内置对象

JSP内置对象是在JSP页面中自动创建的一些Java对象,可以在JSP页面中直接使用。以下是一些常用的JSP内置对象:

request

request 内置对象代表HTTP请求,可以获取请求中的参数和属性。以下是一些常见的request方法:

<%
    String username = request.getParameter("username");  // 获取请求参数
    request.setAttribute("name", "JSP");  // 设置请求属性
%>

response

response 内置对象代表HTTP响应,可以设置响应头和内容。以下是一些常见的response方法:

<%
    response.setContentType("text/html; charset=UTF-8");  // 设置响应内容类型为HTML
    response.getWriter().print("Hello, JSP!");  // 输出响应内容
%>

out

out 内置对象可以将文本输出到网页中。以下是一个简单的示例:

<%
    out.print("Hello, JSP!");
%>

session

session 内置对象代表用户的会话,可以在用户会话期间持续存储数据。以下是一些常见的session方法:

<%
    session.setAttribute("name", "JSP");  // 设置Session属性
    String name = (String) session.getAttribute("name");  // 获取Session属性
%>

application

application 内置对象代表应用程序,可以在整个应用程序中持续存储数据。以下是一些常见的application方法:

<%
    application.setAttribute("name", "JSP");  // 设置应用属性
    String name = (String) application.getAttribute("name");  // 获取应用属性
%>

JSP标准标签库

JSP标准标签库(JSTL)是一组JSP内置标签,可以用于实现复杂的逻辑和数据处理。以下是一些常用的JSTL标签:

c:if

c:if 标签可以根据条件判断是否输出特定的内容。以下是一个简单的示例:

<c:if test="${age < 18}">
    <p>You are not old enough to vote.</p>
</c:if>

c:forEach

c:forEach 标签用于循环遍历数据。以下是一个简单的示例:

<c:forEach var="item" items="${items}">
    <p>${item.name}: ${item.price}</p>
</c:forEach>

c:set

c:set 标签用于设置变量的值。以下是一个简单的示例:

<c:set var="name" value="JSP" />

两条示例说明

示例一:用户登录页面

以下是一个简单的用户登录页面,用户输入用户名和密码后,提交表单,后台使用Java代码进行验证:

<%@ page contentType="text/html; charset=UTF-8" language="java" %>
<html>
<head>
    <title>Login Page</title>
</head>
<body>
    <h1>Login Page</h1>
    <%
        // 处理表单提交
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        if (username != null && password != null && username.equals("admin") && password.equals("123456")) {
            session.setAttribute("username", username);
            response.sendRedirect("home.jsp");
            return;
        }
    %>
    <%-- 显示登录表单 --%>
    <form method="post">
        <label>Username:</label>
        <input type="text" name="username" />
        <br />
        <label>Password:</label>
        <input type="password" name="password" />
        <br />
        <input type="submit" value="Login" />
    </form>
</body>
</html>

示例二:商品列表页面

以下是一个简单的商品列表页面,使用JSTL标签库循环遍历商品列表:

<%@ page contentType="text/html; charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
    // 生成商品列表
    List<Map<String, Object>> items = new ArrayList<>();
    Map<String, Object> item1 = new HashMap<>();
    item1.put("name", "Apple");
    item1.put("price", 2.5);
    items.add(item1);
    Map<String, Object> item2 = new HashMap<>();
    item2.put("name", "Banana");
    item2.put("price", 1.8);
    items.add(item2);
%>
<html>
<head>
    <title>Items Page</title>
</head>
<body>
    <h1>Items Page</h1>
    <c:forEach var="item" items="${items}">
        <p>${item.name}: ${item.price}</p>
    </c:forEach>
</body>
</html>

以上就是JSP经典学习笔记的完整攻略,涵盖了JSP基础语法、内置对象和JSTL标签库。使用这些知识,您可以快速构建动态Web应用程序。

本文标题为:JSP经典学习笔记(包含各种入门常用语法)

基础教程推荐