JavaServer Pages (JSP) 是一种基于Servlet的服务器端技术,用于动态生成Web页面。本教程将介绍JSP的基础知识、语法和使用方法,帮助你快速上手。
目录
1. JSP 概述
- 定义:JSP 是嵌入Java代码的HTML页面,由Servlet容器编译为Servlet执行。
- 优点:
- 简化动态内容生成。
- 与HTML紧密集成。
- 用途:展示数据、表单处理、用户界面。
2. JSP 生命周期
- 翻译:JSP文件转为Java代码(Servlet)。
- 编译:Java代码编译为字节码。
- 加载与实例化:容器加载Servlet类。
- 初始化:调用
jspInit()
。 - 服务:处理请求,调用
_jspService()
。 - 销毁:调用
jspDestroy()
。
3. JSP 基本语法
脚本元素
- 脚本片段 (
<% %>
):嵌入Java代码。
<% int count = 5; %>
- 表达式 (
<%= %>
):输出值到页面。
<%= "Hello, " + count %>
- 声明 (
<%! %>
):定义字段或方法。
<%! int globalCount = 0; %>
指令
- 页面指令 (
<%@ page %>
):设置页面属性。
<%@ page contentType="text/html;charset=UTF-8" %>
- 包含指令 (
<%@ include %>
):静态包含文件。
<%@ include file="header.jsp" %>
动作标签
<jsp:include>
:动态包含。
<jsp:include page="footer.jsp"/>
<jsp:forward>
:页面转发。
<jsp:forward page="error.jsp"/>
隐式对象
request
:HttpServletRequest
。response
:HttpServletResponse
。out
:JspWriter
,输出流。session
:HttpSession
。application
:ServletContext
。
4. JSP 与 Servlet 集成
- Servlet 调用 JSP:通过转发。
request.getRequestDispatcher("/result.jsp").forward(request, response);
- JSP 调用 Servlet:通过表单提交。
<form action="/myServlet" method="post">
<input type="text" name="data">
<input type="submit" value="提交">
</form>
5. 完整示例
以下是一个简单的JSP示例。
JSP 文件:index.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>JSP 示例</title>
</head>
<body>
<h1>欢迎使用 JSP</h1>
<%! int visitCount = 0; %>
<% visitCount++; %>
<p>您是第 <%= visitCount %> 次访问。</p>
<form method="post" action="process.jsp">
姓名: <input type="text" name="name"><br>
<input type="submit" value="提交">
</form>
</body>
</html>
JSP 文件:process.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>处理结果</title>
</head>
<body>
<h1>处理结果</h1>
<%
String name = request.getParameter("name");
if (name != null && !name.trim().isEmpty()) {
out.println("<p>欢迎, " + name + "!</p>");
} else {
out.println("<p>请输入姓名</p>");
}
%>
<a href="index.jsp">返回</a>
</body>
</html>
配置:web.xml(可选)
<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd"
version="5.0">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
6. 部署与测试
部署
- 将
index.jsp
和process.jsp
放入myapp/
。 - 更新
web.xml
(可选,默认支持JSP)。 - 部署
myapp
到Tomcat的webapps
目录。 - 启动Tomcat。
测试
- 访问:
http://localhost:8080/myapp/
- 显示访问计数。
- 输入姓名并提交:跳转到
process.jsp
显示欢迎信息。 - 留空提交:提示输入姓名。
7. 参考资料
出站链接
- Jakarta JSP API – 官方API。
- Java EE教程 – JSP章节。
- Tomcat JSP – 配置指南。
其他资源
- 《Head First Servlets and JSP》 – JSP基础。
- X社区:搜索 #JSPTutorial 获取示例。
这篇教程介绍了JSP的基础知识和实现。如果需要更深入内容(如EL表达式、JSTL或与数据库结合),请告诉我!
发表回复