以下是"JAVA/JSP学习系列之二"的完整攻略:
学习目标
- 了解JSP的基本语法和工作原理
- 掌握使用JSP开发动态Web应用的方法
- 学会JSP与Servlet之间的交互
JSP概述
JSP(Java Server Pages)是一种用于在服务器端生成动态网页内容的技术。它基于Java语言和Servlet技术,可嵌入HTML页面中。在JSP中,我们可以使用Java程序编写动态内容,并将其插入到HTML页面中。
JSP基本语法
JSP指令
在JSP页面中,我们可以使用JSP指令来控制JSP引擎的行为。常用的指令有 page
、include
、taglib
等。
page
指令用于指定JSP页面的属性,如语言、封装类型等:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
include
指令用于在JSP页面中引入其他的JSP或HTML页面:
<%@ include file="header.jsp" %>
taglib
指令用于引入自定义标签库:
<%@ taglib prefix="mytag" uri="/WEB-INF/mytag.tld" %>
JSP表达式
JSP表达式用于在HTML页面中输出Java程序的值。它的语法为 ${expression}
,其中 expression
是一个Java表达式。
<p>用户姓名:${user.name}</p>
JSP声明
JSP声明用于在HTML页面中定义Java变量或方法。它的语法为 <%! declaration %>
。
<%! int count = 0; %>
JSP脚本
JSP脚本用于在HTML页面中编写Java代码。它的语法为 <% code %>
。
<%
for(int i = 0; i < 10; i++) {
out.println("Hello, World!");
}
%>
JSP工作原理
JSP页面在服务器端编译成Servlet类,然后由Servlet容器进行加载、实例化和执行。在客户端访问JSP页面时,JSP引擎会首先检查是否存在编译后的Servlet类,如果存在则直接执行,否则先进行编译再执行。
JSP与Servlet交互
JSP可以通过内置对象 request
、response
、session
和 application
进行与Servlet的交互。
以下是一个示例,演示如何在JSP页面中调用Servlet,并获取到Servlet返回的数据:
Servlet类:
public class HelloServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String message = "Hello, World!";
request.setAttribute("message", message);
request.getRequestDispatcher("/hello.jsp").forward(request, response);
}
}
JSP页面:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello JSP</title>
</head>
<body>
<h1>${message}</h1>
</body>
</html>
在上面的示例中,我们在Servlet中将消息设置为 request
属性,然后在JSP页面中通过表达式 ${message} 获取到该属性的值并输出。
JSP示例:用户列表
下面是一个简单的示例,演示如何在JSP页面中使用Java程序生成一个用户列表。
Servlet类:
public class UserServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
List<User> userList = new ArrayList<>();
userList.add(new User("张三", "男", 20));
userList.add(new User("李四", "女", 22));
userList.add(new User("王五", "男", 23));
request.setAttribute("userList", userList);
request.getRequestDispatcher("/user.jsp").forward(request, response);
}
}
User类:
public class User {
private String name;
private String gender;
private int age;
// getters and setters
}
JSP页面:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>User List</title>
</head>
<body>
<h1>User List</h1>
<table>
<thead>
<tr>
<td>Name</td>
<td>Gender</td>
<td>Age</td>
</tr>
</thead>
<tbody>
<c:forEach items="${userList}" var="user">
<tr>
<td>${user.name}</td>
<td>${user.gender}</td>
<td>${user.age}</td>
</tr>
</c:forEach>
</tbody>
</table>
</body>
</html>
在上面的示例中,我们在Servlet中生成了一个用户列表,并将该列表设置为 request
属性,然后在JSP页面中使用 c:forEach
标签遍历该列表,并输出每个用户的信息。
至此,“JAVA/JSP学习系列之二”的完整攻略就介绍完了。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JAVA/JSP学习系列之二 - Python技术站