什么是Java Server Pages?
JSP全称Java Server Pages,是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。标签通常以<%开头以%>结束。
JSP是一种Java servlet,主要用于实现Java web应用程序的用户界面部分。网页开发者们通过结合HTML代码、XHTML代码、XML元素以及嵌入JSP操作和命令来编写JSP。
JSP通过网页表单获取用户输入数据、访问数据库及其他数据源,然后动态地创建网页。
JSP标签有多种功能,比如访问数据库、记录用户选择信息、访问JavaBeans组件等,还可以在不同的网页中传递控制信息和共享信息。
JSP 特点
JSP(Java Server Pages)是一种用于开发动态网页的服务器端技术。它的主要特点包括:
- JSP页面包含HTML标签、JSP标签和Java代码,文件扩展名为.jsp。
- JSP页面在服务器端执行,可以动态生成HTML内容,然后返回给浏览器。
- JSP可以调用JavaBean组件和访问数据库,用来生成动态内容。
- JSP标签有核心标签和自定义标签,可以实现页面逻辑和控制。
- JSP表达式<%= %>可以输出变量值或运行表达式结果。
- JSP注释<%– –%>不会在客户端显示。
- JSP页面需要编译成Java servlet后才能在服务器运行。
- 常用JSP指令包括page、include和taglib等。
- JSP可以与Servlet一起用来开发MVC模式的Web应用。
- JSP需要运行在如Tomcat这样的Web服务器环境中。
JSP简化了动态网页的开发,通过其组件化的特性,可以快速高效地开发数据库驱动的Web应用。它是很多Java Web项目的首选。
JSP的优势
以下列出了使用JSP带来的其他好处:
- 与ASP相比:JSP有两大优势。首先,动态部分用Java编写,而不是VB或其他MS专用语言,所以更加强大与易用。- 第二点就是JSP易于移植到非MS平台上。
- 与纯 Servlet 相比:JSP可以很方便的编写或者修改HTML网页而不用去面对大量的println语句。
- 与SSI相比:SSI无法使用表单数据、无法进行数据库链接。
- 与JavaScript相比:虽然JavaScript可以在客户端动态生成HTML,但是很难与服务器交互,因此不能提供复杂 的服务,比如访问数据库和图像处理等等。
- 与静态HTML相比:静态HTML不包含动态信息。
JSP页面文件扩展名为.jsp
。一个示例页面:1
2
3
4
5
6
7
8
9
10
11
12<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>JSP Demo</title>
</head>
<body>
<%
String name = "John";
out.println("Hello " + name);
%>
</body>
</html>
JSP基础语法
- JSP表达式
1 | <%= new java.util.Date()%> |
// 输出当前系统时间到页面
- JSP脚本片段
1 | <% |
// 进行变量声明和计算,计算两个数的和
- JSP声明
1 | <%! |
// 声明类级别的变量和方法
- page指令
1 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> |
// 定义当前jsp页面的属性
- include指令
1 | <%@ include file="header.jsp"%> |
// 包含header.jsp文件内容
- taglib指令
1 | <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> |
// 引入JSTL核心标签库
JSP页面使用XML语法,主要元素包括:
<% %>
:定义Java代码块<%= %>
:输出Java表达式结果<jsp:include>
:包含其他JSP页面<jsp:useBean>
:利用Java Bean
利用这些语法可以在页面中插入动态内容。
使用JSP
编写JSP页面需要遵循以下步骤:
- 在IDE中新建JSP文件,扩展名为
.jsp
- 开发JSP页面,插入HTML、JSP标签、Java代码
- 将JSP部署到服务器,如Tomcat
- 访问JSP页面URL,服务器会执行JSP并输出HTML
- 浏览器收到HTML并显示结果
Webster、Eclipse等IDE都支持JSP开发。
JSP示例
一个简单的JSP Demo:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17<html>
<head>
<title>JSP Demo</title>
</head>
<body>
<%
int sum = 0;
for(int i=1; i<=10; i++){
sum += i;
}
%>
1到10的和为:<%= sum %>
</body>
</html>
这里给出一些JSP常见的使用案例:
- 显示当前时间
使用JSP表达式输出当前时间:1
2<%@ page import="java.util.Date" %>
<%= new Date() %>
- 页面跳转
使用jsp:forward标签进行页面跳转:1
<jsp:forward page="/nextpage.jsp" />
- 包含公共内容
使用jsp:include标签包含公共头部或尾部:1
<jsp:include page="/common/footer.jsp" />
- 使用JavaBean
jsp:useBean获取JavaBean实例:1
<jsp:useBean id="user" class="com.example.User" />
- 获取表单参数
通过request.getParameter()获取参数:1
String name = request.getParameter("username");
- 数据库查询
使用JDBC API查询数据库:1
2
3
4
5<%@ page import="java.sql.*" %>
<%
//查询语句
ResultSet rs = stmt.executeQuery("SELECT * FROM table");
%>
- 异常处理
使用exception内置对象处理异常:1
2
3
4
5
6
7
8
9<error page="error.jsp">
<%
try {
//代码
} catch(Exception e) {
throw new ServletException(e);
}
%>
</error>
这些都是JSP实际开发中常见的案例,可以拿来学习借鉴。
总结
本文通过对JSP进行了简要介绍,内容包括:
- JSP的工作原理
- JSP基本语法
- JSP的开发步骤
- 一个JSP代码示例
- 开发常见使用案列
对于JSP初级使用,主要需要掌握以下几点:
- 熟悉JSP基本语法结构,包括脚本元素、表达式、声明等。
- 会使用JSP标准标签,如jsp:include、jsp:useBean等。
- 了解JSP中的内置对象及作用域,如request、session等。
- 会使用JSTL核心标签实现流程控制、迭代等功能。
- 掌握向JSP页面传递参数及获取参数的方法。
- 会使用EL表达式输出数据或计算表达式值。
- 了解JSP的生命周期及编译执行过程。
- 会配置Tomcat服务器来运行JSP程序。
- 会编写简单的数据库访问JSP程序。
- 了解MVC设计模式及JSP在Web开发中的作用。
- 了解常见的JSP错误及调试方法。
- 了解JSP与Servlet的区别及关系。
- 了解JSP基本优化方法,如关闭调试信息等。
- 了解jsp文件与类文件之间的关系。
掌握这些基础知识,可以让JSP初学者基本使用JSP开发动态网页和Web应用。当然还需要更多实际项目练习来巩固。