JSP页面是指扩展名为jsp的文件,jsp页面可以包括JSP指令、HTML代码、JS脚本代码、嵌入的Java代码、操作、注释等内容,这些内容不一定全部包含在页面中,但HTML代码和JSP指令是每个JSP页面基本具有的内容。
1、 创建项目和JSP页面
案例1 创建WEB项目Unit2Sample
依次选择【File】【New】【Dynamic Web Project】命令,在New Dynamic Web Project对话框输入项目名称Unit2Sample,创建WEB项目Unit2Sample。
案例2 创建index.jsp文件
用鼠标选中项目的WebContent目录,单击鼠标右键,在弹出的菜单中选择【New】【JSP File】命令。在出现的New JSP File对话框File name输入域输入indes.jsp,创建index.jsp文件。
文件代码如下:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html> <html> <head> <meta charset="ISO-8859-1"> <title>Insert title here</title> </head> <body> </body> </html>
上述代码是eclipse创建的最基础的JSP页面代码,在该页面中包含了JSP指令和HTML代码。
2、 JSP指令
JSP指令的语法如下:
<%@ directive attribute="value" %>
指令被封闭在“<%@”和“%>”之间,directive是指令标签,它可以是page、include、taglib三种指令标签。每个指令标签可以有很多个属性,它们以键值对的形式存在,并用逗号隔开。
page指令
例如:
<%@ page language="java" %>
该条语句为page指令,该指令设置页面使用的语言,language是该指令的属性之一,属性的值为java,定义JSP采用的脚本语言为Java语言。
page指令常用的属性如下表所示:
include指令
include指令可以在一个JSP页面中包含另一个文件,被包含的文件可以是JSP文件、HTML文件或文本文件,被包含的文件会成为当前JSP页面的一部分,会被同时编译执行。
include指令的语法格式如下:
<%@ include file="文件相对 url 地址" %>
该指令只有一个file属性,用于指定要包含的文件路径,该路径可以是相对路径,也可以是绝对路径。如果仅给出文件名,而没有给出文件的路径,JSP编译器默认在当前路径下寻找。
例如:
<%@ include file="other.jsp" %>
JSP页面包含了other.jsp,other.jsp并没有指定路径,JSP编译器会在当前JSP文件路径下寻找other.jsp。
taglib指令
taglib指令用于声明当前JSP页面使用的标签库,标签库是是一个JSP标签集合,JSP标签封装了一些通用的核心功能,开发者也可以自定义标签库,将一些功能封装到标签内。
taglib指令的语法格式如下:
<%@ taglib uri="uri" prefix="prefixOfTag" %>
属性uri用于指定标签库文件的路径,属性prefix用于指定标签库的前缀。
3、 页面编码设置为UTF-8
eclipse默认的编码不是UTF-8,需要把编码设置为UTF-8。设置编码为UTF-8的好处就是可以解决中文乱码问题。在eclipse中,需要修改三个编码配置项。
1、设置工作空间编码格式
在Window--》Preferences--》General--》Workspace下,面板Text file encoding 选择UTF-8格式。

2、设置JSP页面编码格式
在Window--》Preferences--》Web--》JSP Files 面板选择 ISO 10646/Unicode(UTF-8)格式编码。

3、设置项目的文档编码格式
选择项目--》右键--》Properties --》Resource 设置编码为UTF-8格式。

4、 创建UTF-8编码JSP页面
在WebContent目录下,创建newindex.jsp页面,页面代码如下:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> </body> </html>
观察newindex.jsp代码发现,页面编码和字符集都为UTF-8编码。下面在页面中使用import指令导入java.util.Date,实例化Date对象,并调用Date对象的方法输出当前日期。
在页面中添加下面的指令,导入java.util.Date类:
<%@ page import="java.util.Date"%>
在JSP页面的<body>标签内添加下面的Java代码:
<%
SimpleDateFormat formatter= new SimpleDateFormat("yyyy-MM-dd 'at' HH:mm:ss z");
Date date = new Date(System.currentTimeMillis());
String today = formatter.format(date);
%>JSP页面内的Java代码被封闭在“<%”和“%>”内,上述Java代码在JSP运行过程中,会被编译并执行,today变量存储了当前日期。
在body标签内,Java代码之外,输出today变量:
当前时间: <%=today%>
在JSP页面内引入Java变量时,需要将变量名称封闭在“<%=”和“%>”内,JSP运行过程中,Java变量的值会被输出到服务端返回的HTML页面。
完整的newindex.jsp页面代码如下所示:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.util.Date"%>
<%@ page import="java.text.SimpleDateFormat"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>输出当前时间</title>
</head>
<body>
<%
SimpleDateFormat formatter= new SimpleDateFormat("yyyy-MM-dd 'at' HH:mm:ss z");
Date date = new Date(System.currentTimeMillis());
String today = formatter.format(date);
%>
当前时间: <%=today%>
</body>
</html>JSP页面是在服务端运行的,在运行过程中会执行页面内的Java代码,Java代码会将执行后输出的内容,添加到JSP页面内的HTML内容,最终会返回HTML内容。
用鼠标选中newindex.jsp文件,单击鼠标右键,在弹出的菜单中选择【Run As】【Run on Server】命令。如果是初次运行项目,eclispe会弹出Run on Server对话框,在对话框中配置选择要运行的Server服务器,如下图所示。

选择先前配置的Tomcat v9.0 Server at localhost服务器,并选中下方的检查框,以保存该配置项,下次运行该项目时,就无需再进行配置了。单击【Finish】按钮,eclipse启动Server,启动信息在控制台窗口列出。Server启动后,eclipse会在内置的浏览器窗口打开newindex.jsp文件。
浏览器运行newindex.jsp页面,效果如下图所示:
