返回
用JSP和JSTL打造便捷的Web应用
前端
2023-10-15 16:05:22
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应用。