JSP经典学习笔记攻略
JSP即Java Server Pages,是一种基于 Java 技术的Web应用程序开发技术。它允许开发者在网页中嵌入 Java 代码片段,实现与动态数据交互的功能。本篇攻略将包括以下几个部分:
- JSP基础语法
- JSP内置对象
- JSP标准标签库
- 两条示例说明
JSP基础语法
JSP文件结构
在JSP文件中,可以使用HTML标记和Java代码片段,代码片段需要使用 <% %>
标记进行包裹。以下是一个典型的JSP文件结构:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>JSP Example</title>
</head>
<body>
<h1>Welcome to JSP World!</h1>
<%
// Java代码片段
String name = "JSP";
out.print("Hello, " + name);
%>
</body>
</html>
JSP指令和指令属性
JSP指令使用 <%@ %>
标记进行包裹,包含了JSP页面的指令和属性。以下是两个最常用的指令:
page指令
<%@ page %>
指令定义JSP中的页面属性。以下是一些常见的页面属性:
<%@ page language="java" %> // 指定JSP文件的脚本语言为Java
<%@ page contentType="text/html; charset=UTF-8" %> // 指定页面的编码格式为UTF-8
<%@ page import="java.util.Date" %> // 导入Java类库
<%@ page session="false" %> // 禁用Session
include指令
<%@ include %>
指令包含另一个JSP文件或HTML文件。以下是使用include指令包含页面头文件的示例:
<%@ include file="header.jsp" %>
JSP脚本和表达式
JSP脚本使用 <% %>
标记进行包裹,Java代码片段可以在其中执行。以下是一个简单的脚本示例:
<%
String name = "JSP";
out.print("Hello, " + name);
%>
JSP表达式使用 <%= %>
标记进行包裹,它会将表达式的结果输出到网页中。以下是一个简单的表达式示例:
<%= "Hello, JSP" %>
JSP内置对象
JSP内置对象是在JSP页面中自动创建的一些Java对象,可以在JSP页面中直接使用。以下是一些常用的JSP内置对象:
request
request
内置对象代表HTTP请求,可以获取请求中的参数和属性。以下是一些常见的request方法:
<%
String username = request.getParameter("username"); // 获取请求参数
request.setAttribute("name", "JSP"); // 设置请求属性
%>
response
response
内置对象代表HTTP响应,可以设置响应头和内容。以下是一些常见的response方法:
<%
response.setContentType("text/html; charset=UTF-8"); // 设置响应内容类型为HTML
response.getWriter().print("Hello, JSP!"); // 输出响应内容
%>
out
out
内置对象可以将文本输出到网页中。以下是一个简单的示例:
<%
out.print("Hello, JSP!");
%>
session
session
内置对象代表用户的会话,可以在用户会话期间持续存储数据。以下是一些常见的session方法:
<%
session.setAttribute("name", "JSP"); // 设置Session属性
String name = (String) session.getAttribute("name"); // 获取Session属性
%>
application
application
内置对象代表应用程序,可以在整个应用程序中持续存储数据。以下是一些常见的application方法:
<%
application.setAttribute("name", "JSP"); // 设置应用属性
String name = (String) application.getAttribute("name"); // 获取应用属性
%>
JSP标准标签库
JSP标准标签库(JSTL)是一组JSP内置标签,可以用于实现复杂的逻辑和数据处理。以下是一些常用的JSTL标签:
c:if
c:if
标签可以根据条件判断是否输出特定的内容。以下是一个简单的示例:
<c:if test="${age < 18}">
<p>You are not old enough to vote.</p>
</c:if>
c:forEach
c:forEach
标签用于循环遍历数据。以下是一个简单的示例:
<c:forEach var="item" items="${items}">
<p>${item.name}: ${item.price}</p>
</c:forEach>
c:set
c:set
标签用于设置变量的值。以下是一个简单的示例:
<c:set var="name" value="JSP" />
两条示例说明
示例一:用户登录页面
以下是一个简单的用户登录页面,用户输入用户名和密码后,提交表单,后台使用Java代码进行验证:
<%@ page contentType="text/html; charset=UTF-8" language="java" %>
<html>
<head>
<title>Login Page</title>
</head>
<body>
<h1>Login Page</h1>
<%
// 处理表单提交
String username = request.getParameter("username");
String password = request.getParameter("password");
if (username != null && password != null && username.equals("admin") && password.equals("123456")) {
session.setAttribute("username", username);
response.sendRedirect("home.jsp");
return;
}
%>
<%-- 显示登录表单 --%>
<form method="post">
<label>Username:</label>
<input type="text" name="username" />
<br />
<label>Password:</label>
<input type="password" name="password" />
<br />
<input type="submit" value="Login" />
</form>
</body>
</html>
示例二:商品列表页面
以下是一个简单的商品列表页面,使用JSTL标签库循环遍历商品列表:
<%@ page contentType="text/html; charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
// 生成商品列表
List<Map<String, Object>> items = new ArrayList<>();
Map<String, Object> item1 = new HashMap<>();
item1.put("name", "Apple");
item1.put("price", 2.5);
items.add(item1);
Map<String, Object> item2 = new HashMap<>();
item2.put("name", "Banana");
item2.put("price", 1.8);
items.add(item2);
%>
<html>
<head>
<title>Items Page</title>
</head>
<body>
<h1>Items Page</h1>
<c:forEach var="item" items="${items}">
<p>${item.name}: ${item.price}</p>
</c:forEach>
</body>
</html>
以上就是JSP经典学习笔记的完整攻略,涵盖了JSP基础语法、内置对象和JSTL标签库。使用这些知识,您可以快速构建动态Web应用程序。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JSP经典学习笔记(包含各种入门常用语法) - Python技术站