制作简单的JSP页面

制作简单的JSP页面

目录

1. JSP 简介

2. JSP的特点

(1)JSP 的优势:

(2)JSP 的劣势:

3. 项目描述与实现

1. 新建 JSP 文件。

2. 调试运行。

4. 新知识点——JSP页面组成、声明、代码段、表达式、注释

1. 声明 <%! %>

2 .代码段<%%>

3 . 表达式 <%=%>

4. 注释

(1) 显式注释语法(HTML 注释)

(2) 隐式注释语法

5. 总结:

为什么这样写?

5. 扩展——代码编写规范

1. JSP 文件命名

2. Java Web项目文件夹组织规范

1. JSP 简介

JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(.jsp)。

Web服务器在遇到访问JSP网页的请求时,首先对其中的Java代码进行处理,然后将执行结果连同JSP文件中的HTML代码一起返回给客户端的浏览器。

插入的Java 程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。

JSP 原理图如图所示。

2. JSP的特点

JSP 最大的优点是能够实现跨平台结构的开发,它几乎可以运行在所有的操作系统平台。

(1)JSP 的优势:

①一次编写,到处运行。

在这一点上Java比PHP更出色,除了系统之外,代码不用做任何更改。

②系统的多平台支持。

基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比,ASP/PHP的局限性是显而易见的。

③强大的可伸缩性。

从只有一个小的jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理、消息处理,从一台服务器到无数台服务器,Java显示了巨大的生命力。

④多样化和功能强大的开发工具支持。

这一点与 ASP 很像,Java 已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利地运行于多种平台之上。

(2)JSP 的劣势:

与ASP一样,Java的一些优势正是它的致命之处。

①复杂性高。

正是为了实现跨平台的功能和极度的伸缩能力,所以极大地增加了产品的复杂性。

②占用内存相对较多。

Java的运行速度是用class常驻内存来完成的,所以它在一些情况下所使用的内存比起用户数量来说确实是“最低性能价格比”了。

从另一方面,它还需要硬盘空间来储存一系列的.java文件和.class文件以及对应的版本文件。

3. 项目描述与实现

在JSP文件中定义方法实现两个数的加法,调用其计算1+2并显示结果,如图所示

实现过程:

1. 新建 JSP 文件。

点击右上角文件-新建-动态网页

在项目的 webapp文件夹中右击,选择 “新建”-“JSP File” 选项,弹出如图所示窗口

在文件名中输入exam3_1_sum. jsp,单击"完成"按钮之后进入JSP页面编辑窗口

输入代码见程序 1-1。

【程序1-1】 exam3-1-sum. jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

first jsp

两个数的求和结果:

<%!

int sum(int num1,int num2){

int s = num1 + num2;

return s;

}

%>

1 + 2 =

<%=sum(1,2)%>

网页运行结果如图所示:

查看源代码如图:

网页源代码里面看到的是Java代码片段执行之后的结果。

代码分析:

<%!%>表示JSP的声明,在本程序中,声明了一个方法,即sum()方法,其功能为完成两个整数的加法运算。

<%=%>为JSP表达式,其作用为输出结果,本例中输出sum()方法的求和结果。

2. 调试运行。

在Eclipse中选中exam3_1_sum. jsp,右击,选择运行在服务器,结果如图所示。

4. 新知识点——JSP页面组成、声明、代码段、表达式、注释

JSP页面由两部分组成

一部分为静态部分,即HTML标记,用来完成数据页面显示;

另一部分为动态部分,用来完成数据处理,包括脚本元素、指令元素和动作元素。

脚本元素用来嵌入Java代码,这些Java代码将成为转换得到的Servlet的一部分;

JSP指令元素用来从整体上控制Servlet的结构;

动作元素用来引入现有的组件或者控制JSP引擎的行为。

1. 声明 <%! %>

JSP中声明部分可以进行变量、方法和类的声明,其一般在<%!%>标签中进行。

其语法格式为

<%!声明1;声明2; … …%>

如在程序1-1中,进行了求和方法的声明。下面进行一个变量的声明,见程序1-2。

【程序1 -2】 exam3_2_scriptletl.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

Insert title here

<%!

public static final String info = "测试!"; //定义全局常量

int sum(int num1,int num2){ //定义方法

int s = num1 + num2;

return s;

}

%>

<%

out.println("

info=" + info + "

"); // 输出全局变量 info=测试!

out.println("

1+2=" + sum(1,2) + "

"); // 调用

%>

代码分析:声明标签<%!%>中定义了变量 info和方法sum(int num1,int num2),sum() 方法用来完成两个数的加法运算。

程序的运行结果如图1-42所示。

右键查看网页源代码

2 .代码段<%%>

在 JSP 页面中嵌入 Java 代码来执行特定的功能,放置在<%%>标记中。 格式为:

<%

Java 代码段1

Java 代码段2

......

%>

这 种Java 代码在Web 服务器响应请求时就会运行。

见程序1-3,定义两个变量并输出。

【程序1-3】 exam3 _ scriptlet2.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

Insert title here

<%

int num = 10;

String info = "代码段测试";

out.println("

num=" + num + "

");

out.println("

info=" + info + "

");

%>

代码分析:程序1-3中,在代码段<%%>中定义了一个整型变量num 和一个字符串变 量info,并通过JSP内置对象out进行输出。

运行效果如图1-43所示。

右键查看网页源代码

3 . 表达式 <%=%>

JSP 表达式可以把JSP 页面中的数据直接输出到页面,其格式为:

<%=表达式%>

<%=%>一次只能嵌入一个表达式,且该表达式必须完整。

在表达式的语句中不能使用分号。

见程序1-4,进行了变量输出。

这种代码段的主要功能是输出一个变量或常量,有时将其叫作表达式输出。

【程序1-4】exam3_1_4scriptlet3.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

Insert title here

<%

String info="表达式输出!"; //定义局部常量

%>

info=<%=info%>

info1=<%=3+5%>

代码分析:程序1-4中,首先在代码段<%%>中定义了一个变量 info。使 用 < % = info%>输出变量 info 的值。用<%=3+5%>输出3+5表达式的结果。

运行效果如 图1-44所示。

右键查看网页源代码

4. 注释

在JSP 中支持两种注释,一种是显式注释,这种注释在客户端是可以查看的;另一种是隐式注释,这种注释在客户端是看不到的。

(1) 显式注释语法(HTML 注释)

(2) 隐式注释语法

//Java 提供的单行注释

/*Java 提供的多行注释*/

<%--JSP 注 释 --%>

【程序1-5】定义JSP 显式和隐式注释,exam3_2_5note.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

Insert title here

<%--JSP 注释,客户端无法查看,能在JSP 原始文件中看到。安全性比较高。--%>

<%

//Java 提供的单行注释,客户端无法查看

/*

Java提供的多行注释,客户端无法查看,可以在JSP 原始文件以及JSP 翻译成的Servlet中看到

*/

%>

代码分析:程序1-5中,分别使用了html 注释