在 JSP(JavaServer Pages)中,动态页面的核心思想是:
在 HTML 中嵌入 Java 代码,在服务器端运行并生成 HTML 返回给浏览器。
下面从基础到常用方式系统说明。
.jsp 页面✅ 页面内容不是写死的,而是根据请求、数据、时间等动态生成
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>动态页面</title>
</head>
<body>
<h1>当前时间是:</h1>
<%
java.text.SimpleDateFormat sdf =
new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String time = sdf.format(new java.util.Date());
out.print(time);
%>
</body>
</html>
✅ 每次刷新页面,时间都会变化
<%! int count = 0; %>
<%
int a = 10;
int b = 20;
out.print(a + b);
%>
<%= a + b %>
请求:
http://localhost:8080/test.jsp?name=Tom
JSP:
<%
String name = request.getParameter("name");
if (name == null) {
name = "游客";
}
%>
<h1>欢迎你,<%= name %>!</h1>
✅ 页面内容根据请求参数变化
public class User {
private String name;
public String getName() { return name; }
public void setName(String name) { this.name = name; }
}
<jsp:useBean id="user" class="com.example.User" scope="request"/>
<jsp:setProperty name="user" property="name" value="Tom"/>
<h1>用户名:<%= user.getName() %></h1>
<h1>欢迎你,${param.name}</h1>
✅ 比 <%= %> 更简洁、可读性更好
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<c:forEach var="i" begin="1" end="5">
<p>第 ${i} 行</p>
</c:forEach>
<c:if test="${param.age > 18}">
<p>你是成年人</p>
</c:if>
浏览器 → Servlet(处理业务) → 转发到 JSP(显示)
request.setAttribute("msg", "登录成功");
request.getRequestDispatcher("success.jsp").forward(request, response);
<h1>${msg}</h1>
✅ 业务逻辑和页面展示分离
| 场景 | 说明 |
|---|---|
| 用户登录 | 根据登录状态显示不同内容 |
| 数据列表 | 从数据库查询并显示 |
| 表单处理 | 显示提交结果 |
| 权限控制 | 不同用户显示不同菜单 |
| 时间/状态 | 实时变化内容 |
✅ 推荐
<% %> 脚本❌ 不推荐
JSP 创建动态页面的本质:在服务器端运行 Java 代码,根据请求和数据动态生成 HTML 返回给浏览器。
如果你愿意,我可以:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。