返回

用JSP和JSTL打造便捷的Web应用

前端

JSP介绍

JSP(JavaServer Pages)是一种服务器端的Java技术,允许开发人员在HTML页面中嵌入Java代码。JSP页面可以被编译成Servlet,然后由Web服务器执行。JSP页面通常以.jsp为扩展名。

JSP的主要优点在于它可以使开发人员更容易地创建动态Web页面。开发人员可以使用Java代码来访问数据库、处理表单数据、生成动态内容等。JSP还支持多种标准动作(例如转发、包含和重定向),这可以帮助开发人员构建更复杂的Web应用。

JSTL介绍

JSTL(JSP Standard Tag Library)是一个标准的JSP标签库,提供了用于处理常见任务的一系列标签。JSTL标签库可以帮助开发人员更轻松地创建JSP页面,从而提高开发效率。

JSTL标签库包含以下四个模块:

  • 核心标签库(core):提供了一些基本标签,例如if、for、foreach等。
  • 格式化标签库(fmt):提供了一些用于格式化日期、数字、货币等数据的标签。
  • 函数标签库(fn):提供了一些用于处理字符串、集合、日期等数据的函数。
  • XML标签库(xml):提供了一些用于处理XML数据的标签。

JSP和JSTL示例

下面是一个简单的JSP和JSTL示例,演示如何使用它们来构建一个Web应用。这个应用将允许用户输入他们的姓名和电子邮件地址,然后将这些信息存储在数据库中。

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

<html>
<head>

</head>
<body>
<h1>用户注册</h1>
<form action="register.jsp" method="post">
<label for="name">姓名:</label>
<input type="text" name="name" id="name">
<br>
<label for="email">电子邮件地址:</label>
<input type="email" name="email" id="email">
<br>
<input type="submit" value="注册">
</form>

<c:if test="${not empty requestScope.errorMessage}">
<div style="color: red;">${requestScope.errorMessage}</div>
</c:if>

<c:if test="${not empty requestScope.successMessage}">
<div style="color: green;">${requestScope.successMessage}</div>
</c:if>
</body>
</html>
import java.sql.*;

public class RegisterServlet extends HttpServlet {

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String name = request.getParameter("name");
String email = request.getParameter("email");

// 验证数据
if (name == null || name.isEmpty()) {
request.setAttribute("errorMessage", "姓名不能为空");
request.getRequestDispatcher("register.jsp").forward(request, response);
return;
}

if (email == null || email.isEmpty()) {
request.setAttribute("errorMessage", "电子邮件地址不能为空");
request.getRequestDispatcher("register.jsp").forward(request, response);
return;
}

// 连接数据库
Connection connection = null;
try {
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password");

// 创建语句
Statement statement = connection.createStatement();

// 执行语句
int rowCount = statement.executeUpdate("INSERT INTO users (name, email) VALUES ('" + name + "', '" + email + "')");

// 关闭连接
statement.close();
connection.close();

// 设置成功消息
request.setAttribute("successMessage", "注册成功");
request.getRequestDispatcher("register.jsp").forward(request, response);
} catch (SQLException e) {
e.printStackTrace();

// 设置错误消息
request.setAttribute("errorMessage", "注册失败,请重试");
request.getRequestDispatcher("register.jsp").forward(request, response);
}
}
}

总结

JSP和JSTL是Java Web开发中常用的技术,可以帮助开发人员更轻松地创建动态Web应用。JSP允许开发人员在HTML页面中嵌入Java代码,从而实现动态内容的生成。JSTL是一个标准的JSP标签库,提供了用于处理常见任务的一系列标签。通过结合使用JSP和JSTL,开发人员可以快速、高效地构建各种各样的Web应用。