当前位置:首页 > JSP教程 > JSP基础教程

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网站有关配置和运行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中的语法:

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

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

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

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

<%@ page language="java" import="java.util.*" pageencoding="utf-8"%>
<html> 
<head><title>注释 - 示例</title></head>  <body> <h2>a test of comments</h2>
 <%-- this comment will not be visible in the page source --%> </body> </html> 

http://localhost:8080/jsp-base/comment.jsp

  • 还有少数特殊的结构可以使用一些情况,插入注释或字符,将被特殊处理。这里有一个整理汇总:

    语法 目的
    <%-- comment --%> jsp注释,它将被jsp引擎忽略
    <!-- comment --> html注释,它将被浏览器忽略
    <% 表示静态<%的字面量
    %> 表示静态%>的字面量
    ' 在使用单引号在属性中的单引号
    " 双引号在属性使用双引号

    jsp 指令

    jsp指令影响的servlet类的整体结构。它通常有以下形式:

    <%@ page language="java" import="java.util.*" pageencoding="utf-8"%>
    <%! int day = 3; %> <html> <head><title>if...else 示例</title></head> <body> <% if (day == 1 | day == 7) { %>
          <p> today is weekend</p> <% } else { %>
          <p> today is not weekend</p> <% } %></body> </html> 

    在浏览器中打开网址:http://localhost:8080/jsp-base/if-else.jsp, 产生结果如下:

     

    现在来看以下 switch...case 块,编写通过使用out.println()和内小脚本有一点不同,把下面代码保存到 switch-case.jsp文件中,代码详细如下:

    <%! int day = 3; %> 
    <html> 
    <head><title>switch...case 示例</title></head> 
    <body>
    <% 
    switch(day) {
    case 0:
       out.println("it's sunday.");
       break;
    case 1:
       out.println("it's monday.");
       break;
    case 2:
       out.println("it's tuesday.");
       break;
    case 3:
       out.println("it's wednesday.");
       break;
    case 4:
       out.println("it's thursday.");
       break;
    case 5:
       out.println("it's friday.");
       break;
    default:
       out.println("it's saturday.");
    }
    %>
    </body> 
    </html> 

    在浏览器中打开网址:http://localhost:8080/jsp-base/switch-case.jsp, 产生结果如下:

    循环语句

    还可以使用在java中三种基本循环类型块:for, while,and do.while 块在jsp编程中。

    让我们来看看下面的for循环示例,把下面代码保存到 loop-for.jsp 文件中,代码详细如下:

    <%@ page language="java" import="java.util.*" pageencoding="utf-8"%>
    <%! int fontsize; %> 
    <html> 
    <head><title>for 循环示例</title></head> 
    <body>
    <%for ( fontsize = 1; fontsize <= 3; fontsize++){ %>
       <font color="green" size="<%= fontsize %>">
        jsp tutorial
       </font><br />
    <%}%>
    </body> 
    </html> 

    在浏览器中打开网址:http://localhost:8080/jsp-base/loop-for.jsp, 产生结果如下:

    上面的示例可以使用 while 循环编写,把下面代码保存到 loop-while.jsp 文件中,代码详细如下:


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!