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代码。
1 | <% int count = 5; %> |
- 表达式 (
<%= %>
):输出值到页面。
1 | <%= "Hello, " + count %> |
- 声明 (
<%! %>
):定义字段或方法。
1 | <%! int globalCount = 0; %> |
指令
- 页面指令 (
<%@ page %>
):设置页面属性。
1 | <%@ page contentType="text/html;charset=UTF-8" %> |
- 包含指令 (
<%@ include %>
):静态包含文件。
1 | <%@ include file="header.jsp" %> |
动作标签
<jsp:include>
:动态包含。
1 | <jsp:include page="footer.jsp"/> |
<jsp:forward>
:页面转发。
1 | <jsp:forward page="error.jsp"/> |
隐式对象
request
:HttpServletRequest
。response
:HttpServletResponse
。out
:JspWriter
,输出流。session
:HttpSession
。application
:ServletContext
。
4. JSP 与 Servlet 集成
- Servlet 调用 JSP:通过转发。
1 | request.getRequestDispatcher("/result.jsp").forward(request, response); |
- JSP 调用 Servlet:通过表单提交。
1 2 3 4 | <form action="/myServlet" method="post"> <input type="text" name="data"> <input type="submit" value="提交"> </form> |
5. 完整示例
以下是一个简单的JSP示例。
JSP 文件:index.jsp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <%@ 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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <%@ 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(可选)
1 2 3 4 5 6 7 8 | <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或与数据库结合),请告诉我!
发表回复