Logo

郎哥编程

JSP指令与第一个JSP页面

2020-12-27 50

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指令常用的属性如下表所示:

78.PNG

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格式。

79.png

2、设置JSP页面编码格式

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

80.png

3、设置项目的文档编码格式

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

81.png

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服务器,如下图所示。

82.png

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

浏览器运行newindex.jsp页面,效果如下图所示:

83.png

代码在线纠错(通义千问 qwen-max)

支持粘贴多个代码文件,提交后由阿里云通义千问自动分析代码漏洞、语法错误、逻辑问题并给出修改建议。
您已解锁 AI 代码纠错功能,可正常使用!

评论区

登录 后发表评论
暂无评论