JAVA/JSP学习系列之二

以下是"JAVA/JSP学习系列之二"的完整攻略:

学习目标

  • 了解JSP的基本语法和工作原理
  • 掌握使用JSP开发动态Web应用的方法
  • 学会JSP与Servlet之间的交互

JSP概述

JSP(Java Server Pages)是一种用于在服务器端生成动态网页内容的技术。它基于Java语言和Servlet技术,可嵌入HTML页面中。在JSP中,我们可以使用Java程序编写动态内容,并将其插入到HTML页面中。

JSP基本语法

JSP指令

在JSP页面中,我们可以使用JSP指令来控制JSP引擎的行为。常用的指令有 pageincludetaglib 等。

page 指令用于指定JSP页面的属性,如语言、封装类型等:

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

include 指令用于在JSP页面中引入其他的JSP或HTML页面:

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

taglib 指令用于引入自定义标签库:

<%@ taglib prefix="mytag" uri="/WEB-INF/mytag.tld" %>

JSP表达式

JSP表达式用于在HTML页面中输出Java程序的值。它的语法为 ${expression},其中 expression 是一个Java表达式。

<p>用户姓名:${user.name}</p>

JSP声明

JSP声明用于在HTML页面中定义Java变量或方法。它的语法为 <%! declaration %>

<%! int count = 0; %>

JSP脚本

JSP脚本用于在HTML页面中编写Java代码。它的语法为 <% code %>

<%
  for(int i = 0; i < 10; i++) {
      out.println("Hello, World!");
  }
%>

JSP工作原理

JSP页面在服务器端编译成Servlet类,然后由Servlet容器进行加载、实例化和执行。在客户端访问JSP页面时,JSP引擎会首先检查是否存在编译后的Servlet类,如果存在则直接执行,否则先进行编译再执行。

JSP与Servlet交互

JSP可以通过内置对象 requestresponsesessionapplication 进行与Servlet的交互。

以下是一个示例,演示如何在JSP页面中调用Servlet,并获取到Servlet返回的数据:

Servlet类:

public class HelloServlet extends HttpServlet {
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      String message = "Hello, World!";
      request.setAttribute("message", message);
      request.getRequestDispatcher("/hello.jsp").forward(request, response);
  }
}

JSP页面:

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

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Hello JSP</title>
</head>
<body>
    <h1>${message}</h1>
</body>
</html>

在上面的示例中,我们在Servlet中将消息设置为 request 属性,然后在JSP页面中通过表达式 ${message} 获取到该属性的值并输出。

JSP示例:用户列表

下面是一个简单的示例,演示如何在JSP页面中使用Java程序生成一个用户列表。

Servlet类:

public class UserServlet extends HttpServlet {
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      List<User> userList = new ArrayList<>();
      userList.add(new User("张三", "男", 20));
      userList.add(new User("李四", "女", 22));
      userList.add(new User("王五", "男", 23));
      request.setAttribute("userList", userList);
      request.getRequestDispatcher("/user.jsp").forward(request, response);
  }
}

User类:

public class User {
  private String name;
  private String gender;
  private int age;
  // getters and setters
}

JSP页面:

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

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>User List</title>
</head>
<body>
    <h1>User List</h1>
    <table>
        <thead>
            <tr>
                <td>Name</td>
                <td>Gender</td>
                <td>Age</td>
            </tr>
        </thead>
        <tbody>
            <c:forEach items="${userList}" var="user">
                <tr>
                    <td>${user.name}</td>
                    <td>${user.gender}</td>
                    <td>${user.age}</td>
                </tr>
            </c:forEach>
        </tbody>
    </table>
</body>
</html>

在上面的示例中,我们在Servlet中生成了一个用户列表,并将该列表设置为 request 属性,然后在JSP页面中使用 c:forEach 标签遍历该列表,并输出每个用户的信息。

至此,“JAVA/JSP学习系列之二”的完整攻略就介绍完了。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JAVA/JSP学习系列之二 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • Java连接Sql数据库经常用到的操作

    Java连接Sql数据库操作攻略 Java连接Sql数据库操作可以分为以下几个步骤: 加载数据库驱动 连接数据库 创建Statement对象 执行SQL语句 处理结果 下面详细讲解这几个步骤。 1. 加载数据库驱动 在连接Sql数据库之前,首先需要加载数据库驱动。例如,如果想要连接MySQL数据库,可以使用以下代码加载驱动: Class.forName(&q…

    Java 2023年6月1日
    00
  • Java窗口精细全方位讲解

    Java窗口精细全方位讲解 简介 本篇攻略将完整讲解如何用Java语言创建窗口并增加各种控件,包括文本框、按钮、下拉框等等,并讲解如何实现它们的交互功能。 准备工作 在开始编程前,你需要安装Java开发工具包(JDK)和一个编译器,比如Eclipse或者IntelliJ IDEA。这里我们以Eclipse为例。 创建窗口 要创建窗口,我们需要创建一个新的Ja…

    Java 2023年5月23日
    00
  • SpringBoot整合JPA数据源方法及配置解析

    下面就来详细讲解SpringBoot整合JPA数据源方法及配置解析。 一、什么是JPA JPA(Java Persistence API)是Java持久化规范,是EJB 3.0规范的一部分,旨在为Java开发人员提供一个数据库无关的对象/关系映射标准,以便管理Java应用程序中的持久化数据。在JPA中,我们通过实体类来操作数据库,不再需要手写增删改查的SQL…

    Java 2023年5月20日
    00
  • java按指定编码写入和读取文件内容的类分享

    下面我来详细讲解如何使用Java按指定编码写入和读取文件内容的类。 什么是编码? 在计算机中,所有的数据都是以二进制形式存储的,但是人类无法直接读懂所有的二进制数据。为了让计算机能够正确地识别和显示不同的文本,我们需要将文本数据按照一定的规则(即编码)转换为二进制数据存储。 常见的编码方式包括ASCII、Unicode、UTF-8等。每一种编码方式都有其特定…

    Java 2023年5月20日
    00
  • Java TreeSet 添加失败的解决

    以下是Java TreeSet 添加失败的解决攻略,包括解决方法及示例说明: 问题描述 在使用Java TreeSet时,当添加元素时可能会因为一些特殊情况(例如元素值重复)导致添加失败。 解决方法 Java TreeSet是一种有序集合,只能添加不重复的元素。如果要添加的元素已经存在,那么添加操作将会失败,TreeSet会直接忽略这个元素。因此,为了避免添…

    Java 2023年5月26日
    00
  • 浅谈Servlet转发到JSP页面的路径问题(必看)

    浅谈Servlet转发到JSP页面的路径问题 背景 在Java web应用中,Servlet经常被用来处理请求并生成动态内容。而JSP作为模板引擎,也是在web应用中常见的一种技术。在实际开发中,我们常常需要在Servlet中转发请求到JSP页面,并在页面中显示动态内容。但在这个过程中,经常会遇到一些路径问题,本篇文章将从路径问题的角度来探讨Servlet转…

    Java 2023年6月15日
    00
  • Java如何将若干时间区间进行合并的方法步骤

    Java如何将若干时间区间进行合并的方法步骤: 1.首先需要将若干时间区间存储到一个List集合中。时间区间可以使用Java中的Date或LocalDateTime对象来表示,或者使用字符串表示,需要转换为相应的日期对象。 2.对这个区间集合进行排序,按照开始时间升序排序。 3.新建一个结果集合,将第一个区间加入结果集合,用一个current指针指向结果集合…

    Java 2023年5月20日
    00
  • Java线程(Thread)四种停止方式代码实例

    Java线程(Thread)四种停止方式代码实例 在Java语言中,线程是非常常见的概念。在多线程编程过程中,需要经常使用到线程的停止操作。Java线程的停止方法有四种,分别是: 调用stop方法停止线程 使用interrupt方法打断线程 使用volatile布尔变量作为停止标志 使用线程阻塞等待退出 下面详细介绍这四种方式的代码实例。 1. 调用stop…

    Java 2023年5月18日
    00
合作推广
合作推广
分享本页
返回顶部