目录
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"%>
两个数的求和结果:
<%!
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"%>
<%!
public static final String info = "测试!"; //定义全局常量
int sum(int num1,int num2){ //定义方法
int s = num1 + num2;
return s;
}
%>
<%
out.println("
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"%>
<%
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"%>
<%
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"%>
<%--JSP 注释,客户端无法查看,能在JSP 原始文件中看到。安全性比较高。--%>
<%
//Java 提供的单行注释,客户端无法查看
/*
Java提供的多行注释,客户端无法查看,可以在JSP 原始文件以及JSP 翻译成的Servlet中看到
*/
%>
代码分析:程序1-5中,分别使用了html 注释