JSP快速入门

JSP(JavaServer Pages )是什么?

JavaServer Pages(JSP)是一种支持动态内容开发的网页技术它可以帮助开发人员通过利用特殊的JSP标签,其中大部分以<%开始并以%>作为结束标志插入Java代码到HTML页面。

JavaServer Pages组件是一个Java servlet的类型,旨在满足Java Web应用程序用户界面的一个角色。Web开发人员编写JSP为文本文件,结合HTML或XHTML代码,XML元素,并嵌入JSP动作和命令。

使用JSP可以通过网页的形式,从数据库或其他来源的记录收集来自用户的输入,并动态地创建Web页面。

JSP标签可用于各种目的,如从数据库中检索信息或登记的用户偏好,访问JavaBeans组件,页面之间传递控制和共享请求,网页等之间的信息。

为什么使用JSP?

JavaServer页面往往服务于同一目的,使用通用网关接口(CGI)执行的方案。但相比CGI,JSP提供了几个优点。

  • 性能更好,因为JSP允许嵌入动态元素在HTML页面中,而不是只有一个单独的CGI文件。

  • JSP在请求处理之前总是经过了编译,它不同于 CGI/Perl 服务器,需要服务器在加载时都要解释,并在每次请求页面时才处理目标脚本。

  • JavaServer Pages是建立在Java Servlet的API之上,所以就像Servlet,JSP也可以访问强大的企业 Java API 的所有功能,包括JDBC,JNDI,EJB,JAXP等。

  • JSP页面可以结合使用servlet处理业务逻辑,通过Java servlet模板引擎所支持的模型。

最后,JSP是J2EE,企业级应用的完整平台的一个组成部分。这意味着JSP可以开发最简单应用程序,或作为最复杂的应用程序一部分。

安装JSP开发环境

这个步骤包括下载Java软件开发工具包(SDK)和安装,并适当设置PATH环境变量。

可以从Oracle的Java网站下载SDK: Java SE 下载

另外,如果使用集成开发环境(IDE),如:Borland公司的JBuilder,Eclipse,IntelliJ IDEA,或Sun ONE Studio,编译并运行一个简单的程序,以确认IDE知道系统上在哪里安装了 Java 。

在本教程中,我们使用的是:MyEclise 8.5 试用版本,为了与本教程同步以减少出现代码或其它的意外的错误,建议在使用 MyEclipse 8.5 以同步本教程。

安装MyEclipse开发环境

安装MyEclipse开发环境比较简单,可以从网上搜索下载一个MyEclipse 8.5,然后安装在一个自己喜欢的位置,在教程中安装的位置是:D:Program FilesMyEclipse 8.5,双击“myeclipse.exe”(或桌面的图标),启动,启动完成后画面如下:

第二步,启动 MyEclipse 中的Tomcat:

成功启动后,Tomcat 默认的Web应用程序将可以通过:http://localhost:8080/ 访问。如果一切正常,那么它应该显示以下结果:


Tomcat Home page

这里包括,Tomcat网站有关配置和运行Tomcat文档信息,更多的信息可访问:http://tomcat.apache.org

JSP第一个应用:

第一步,点击右上角中的 “File"->"New"->"Web Project" 创建一个工程为:“HelloWord",如下:

 
第二步:点击“Finish",然后完成工程创建,整个工程结构如下图所示:

 

运行工程,右键点击工程名称 ”HelloWord",选择“Run As”->“MyEclipse Server Application" 或在浏览器中输入:http://localhost:8080/HelloWord/ 运行结果如下图所示:

到这里,JSP的开发运行环境已经建立起来了。接下来可以进一步开发学习JSP的其它知识。

JSP处理:

下面的步骤是用来说明Web服务器是如何使用JSP创建网页:

  • 对于一个正常的页面,浏览器发送一个HTTP请求到万维网服务器。

  • 网站服务器识别HTTP请求是一个JSP页面,并将其转发给JSP引擎。这是通过使用URL或JSP页面,而这个页面使用 .jsp 后缀,而不是 .html 后缀。

  • JSP引擎从磁盘加载JSP页面,并将其转换成servlet的内容。这种转换是很简单的,所有的模板文本被转换给println()语句,所有JSP元素被转换为实现该页面相应动态行为的Java代码。

  • JSP引擎编译成servlet的一个可执行类并转发原始请求到servlet引擎。

  • 一部分Web服务器调用servlet引擎加载Servlet类并执行它。在执行期间,Servlet产生HTML的格式输出,其servlet引擎传递到web服务器响应HTTP请求。

  • Web服务器响应HTTP转发静态的HTML内容到浏览器。

  • 最后的 web 浏览器处理HTTP响应动态生成的HTML页面完全就像一个静态页面内容。

下面的图显示所有上述的步骤:

脚本

scriptlet可以包含任意数量的JAVA语言的语句,变量或方法声明,或者是在页面的脚本语言有效表达式。

以下是Scriptlet中的语法:

<% code fragment %>

可以编写XML代码相当于上述语法如下:

<jsp:scriptlet> code fragment</jsp:scriptlet>

写的任何文本,HTML标签或JSP元素一定在脚本之外。以下是简单第一个JSP的例子:

<html><head><title>Hello World - By yiibai.com</title></head><body>Hello World!<br/><%out.println("Your IP address is " + request.getRemoteAddr());%></body></html>

现在我们来创建一个JSP文件页面,这个文件名称为:hello.jsp,让我们保存上面的代码到hello.jsp 中,整个完整的代码如下:

 

启动Tomcat,在浏览器地址栏中输入:http://localhost:8080/HelloWord/hello.jsp,这将产生以下结果:

JSP 声明

声明一个或多个变量,或者方法可以在Java代码后面的JSP文件中使用。 在JSP文件中使用变量或方法它们之前,必须先声明它们。

以下是JSP声明的语法:

<%! declaration; [ declaration; ]+ ... %>

可以使用XML编写相当于上述语法如下:

<jsp:declaration> code fragment</jsp:declaration>

下面是简单的例子JSP声明:

<%! int i = 0; %> <%! int a, b, c; %> <%! Circle a = new Circle(2.0); %> 

JSP表达式

JSP表达式元素包含计算,转换为字符串,并插入出现在JSP文件的脚本语言表达式。

因为一个表达式的值被转换为字符串,可以在文本一行内使用表达式,不管它是否被标记使用在HTML,JSP文件中。

表达元素可以包含任何Java语言规范有效的表达式,但是不能使用一个分号来结束表达式。

下面是JSP表达式的语法:

<%= expression %>

可以使用XML编写相当于上述语法如下:

<jsp:expression> expression</jsp:expression>

这里创建一个新的工程:jsp-base,并在index.jsp文件中写入以下代码,下面是简单的例子JSP表达式: