JSP WEB开发入门基础到高手进阶教程

-------开发入门

JSP与微软的Active Server Pages 兼容,但它是使用类似HTML的卷标以及Java程序代码段而不是VBScript。当你所使用的网站服务器没有提供本地ASP支持,也就是Apache或Netscape服务器时,你可以考虑使用JSP。虽然你可以取得这些服务器的ASP附加配备模块,但价格相当昂贵,而目前Sun并没有对你所需要的JSP组件收取费用(虽然Sun未来有可能会收费)。对于Solaris与Linux以及Windows,这些组件也都很容易取得。  
请不要将JSP与服务器端的JavaScript混为一谈。网站服务器会自动将以JSP写成的Java程序代码段转换成Java servlets。而许多先前必须以Perl手写程序或服务器特定的API(如ASP)控制的功能也都可透过JSP来自动化处理。
现在就让我们开始动手帮助你建立一个可执行JSP范例网站。
一、安装好你的机器来使用JSP
二、JSP语法的基本原理
三、JSP与JavaBean
四、JSP的内部对象
五、JSP其他相关资源
一、安装好你的机器来使用JSP 
你将会需要Java 2软件开发工具(JSDK),它原来的名称是Java发展工具(JDK)以及JavaServer网站发展工具(JSWDK),Tomcat,或是其它支持JSP的网络服务器。Sun免费提供JSDK与JSWDK来供Windows,Solaris,以及Linux平台使用。  
如果你想要在你目前的网络服务器上使用JSP,但服务器本身并不支持JSP与Java servlets,你可以试试看Allaire的Jrun,它的作用就像是针对Netscape企业版与FastTrack服务器、微软的网际网络信息服务器(IIS)与个人网络服务器(PWS)、Apache、以及其它服务器的网络服务器附加设备。你也可以使用Apache网络服务器的Java版本,最新的JSWDK里有提供。 
下载与安装你需要的组件 

目前发布的1.2.2-001,JSDK可下载的版本是以可安装的压缩形式。下载的文件大约是20MB,可提供完整的Java发展环境,让你能建立利用标准API为核心的Java解决之道。然而,你的网络服务器需要应用到JSP的唯一一件事是Java编译器。要让网络服务器知道编译器的位置,将环境变量JAVA.HOME设到JSDK的安装目录。如果你是在Windows上安装并且接受预设目录,将这行程序代码set JAVA.HOME=C:1.2.2加到你的autoexec.bat档案并且重新开机。

在安装好JSDK之后,下载并且安装JSWDK或beta版的Tomcat,以Java为主的Apache网络服务器。安装在哪里并不重要,重要的是你可以找到它。一般而言,它会放在上层目录,这种方式可以让你取代JSWDK或 JSDK的网络服务器,不需要移动其它的网络服务器。在你安装好这个档案之后,你就可以准备发展JSP了。 
在你正确的安装JSWDK之后,执行startserver指令文件来激活网络服务器,预设通讯端口 为 8080。要看你在激活服务器之后是均C有正确的安装工具,你可以加载范例JSP档案中的任何一个(http://localhost:8080/examples/jsp/)。如果你能够成功的执行一个范例档案,你可以知道你已经正确的设定好软件了。如果你在激活服务器的控制台窗口看到错误讯息,那么你需要解决这个问题。最常发生的问题是没有设定(或者不正确设定)环境变量JAVA.HOME。要检视目前的环境设定,在DOS模式下键入set。 
开始 
解释JSP语法之前,先建立一个显示目前日期与时间的快速网页并且将它储存成sample.jsp: 

<html>

<head> 
    <title>First Page</title> 
</head>
<body> 
 Today is:
   <%= new java.util.Date() %>   
   </body>
</html>

将这个档案与你所有的HTML与JSP网页放在你JSWDK安装目录下的网页目录里. 你可以在http://localhost:8080/sample.jsp下载此页.当你第一次参观这个网页时,网站服务器会将JSP翻译成Java servlet程序代码,那你就会看到目前的日期与时间.

现在你已经下载,安装,并且架构好发展环境,你已经准备好要了解JSP语法与建立你自己的JSP为主的解决之道. 
二、JSP语法的基本原理
安装之后,接下来我们要讨论JSP的语法.如果要偷懒,你可以下载语法卡而如果你不熟悉 Java的程序设计,你可能会想要参考Sun的使用手册;然而,网站建立者不应该做太多的Java发展。除了几个函式呼叫之外,出现在你JSP网页上的Java程序代码应该将它减到最少; 
记住这点之后,现在让我们先来看看JSP的编译器指引与指令组件,之后我们将解释JavaBeans与内部对象. JSP编译器指引与指令组件有五种型态.JSP 1.0之后,大部分的JSP是包含在以<% 作为开始%>作为结束的单一卷标里.新的 JSP 1.1规格已经发表了,它同时也与XML兼容. 
JSP的编译器指引与指令组件 
编译器指示       <%@ 编译器指示 %> 
声明          <%! 声明 %> 
表达式         <%= 表达式 %> 
程序代码段/小型指令   <% 程序代码片段 %> 
注释          <%-- 注释 --%> 
编译器指示 
JSP的编译器指示是针对JSP引擎。它们并不会直接产生任何看得见的输出;相反的,它们是在告诉引擎如何处理其它的JSP网页。它们永远包含在 <%@ ?%>卷标里。两个主要的指引是 page与include。我们不会讨论taglib编译器指引但它可以在JSP1.1里用来建立自订卷标。 
你几乎可以在你所有的JSP网页最上面找到page编译器指示。虽然这不是必须的,但它可以让你指定到哪里可以找到支持的Java类别这类的事: 
<%@ page import="java.util.Date" %>,  
当发生Java问题的事件时应该将讯息传送到哪里: 
<%@ page errorPage="errorPage.jsp" %>,  
以及你是?需要为使用者管理通话期的信息,可能存取多个网页(稍后在JavaBeans里会有更多通话期的讨论): 
<%@ page session="true" %>。  
include编译器指示让你将你的内容分成几个可管理的组件,就像那些有表头或脚注的网页。所包含的网页可以是固定格式的HTML网页或者是JSP内容的网页: 
<%@ include file="filename.jsp" %>。 
声明(宣告 
JSP声明让你定义网页层的变量,来储存信息或定义支持的函式,让JSP网页的其余部分能够使用。如果你发现自己有太多的程序代码,你最好将它们放在不同的Java类别里。你可以在 <%! ?%>卷标里找到声明。记住要在变量声明的后面加上分号,就跟任何有效的Java叙述的形式一样: <%! int i=0; %>。 
表达式 
JSP里有表达式,评估表达式的结果可以转换成字符串并且直接使用在输出网页上。JSP运算是属于 <%= ?%> 卷标里,并不包含分号,加引号字符串的无用部分。 
<%= i %> 
<%= "Hello" %> 。 
程序代码段/小型指令文件 
JSP程序代码片段或小型指令文件是包含在<% ?%> 卷标里。当网络服务器接受这段请求时,这段Java程序代码会执行。小型指令文件可以是原始的HTML或XML,其内部的程序代码片段可以让你建立有条件的执行程序代码,或者只是一些使用另一块程序代码的东西。举例来说,下列的程序代码结合了表达式与小型指令文件,在H1,H2,H3,以及H4卷标里显示字符串"Hello"。小型指令文件不限于一行的原始程序代码 : 
<% for (int i=1; i<=4; i++) { %> 
<H<%=i%>>Hello</H<%=i%>> 
<% } %>。 
注释 
最后一个主要JSP组件是嵌入式注释。虽然你可以在你的档案里包含HTML注释,如果使用者检视网页的原始码,他们也会看到这些注释。如果你不要让使用者看到你的批注,你可以将它放在<%-- ?--%>卷标里: 
<%-- 针对服务器端的注释 --%>。 
三、JSP与JavaBean
虽然你可以在小型指令文件里放入一大块的程序代码,但是大多数的Java程序代码是属于可以重复使用的组件,称为JavaBean。JavaBean就跟ActiveX控件一样:它们提供已知的功能,并且是为了可随时重复使用的目的而设计的。 
JavaBean的价值在于它可以经由一组特性来使用,而这些特性则提供对JavaBean设定的存取。以人来作范例,此人就是JavaBean,而他的姓名,社会福利安全号码,以及住址可以是特性。对于JSP网站,基本上你是将"JavaBean"动态的连接到你的网站。 
假设JavaBean是在建立网站之前建好的,你要做的第一件事是告诉JSP网页它所需要使用JavaBean.这工作可以用<jsp:useBean>卷标来完成:<jsp:useBean id="localName" class="com.jguru.Person" scope="application" />. 
<jsp:useBean>卷标需要你以id 属性来辨识豆子.在这里,你提供一个名称让JSP网页来辨识豆子,除了id 属性之外,你也必须告诉网页要到哪里去找这个豆子,或者是它的Java类别名称。类别属性提供如何在各式方法之中找到它,最后一个需要的组件是scope 属性.有了范围属性的帮助,你可以告诉豆子,要它为单一网页(预设)[scope="page"];为一个被请求的网页[scope="request"];为通话期[scope="session"];或为整个应用程序[scope="application"]来维护它自己的信息.对于通话期范围,你可以很容易的维护JSP网页里的项目,例如购物车。 
一但你宣告了JavaBean之后,你就可以存取它的特性来订定它。要取得一特性的值,使用<jsp:getProperty>卷标。有了<jsp:getProperty>卷标,你可以指定要使用的豆子名称(从useBean的id字段),以及你要取得值的特性。接着,真正的值就会放在输出里:<jsp:getProperty id="localName" property="name" />. 
要更改JavaBean的特性,你需要使用<jsp:setProperty>卷标.对这个卷标,你也需要辨认豆子以及要修正的特性,除此之外,你还需要提供新值.如果命名正确,这些可以直接经由规定的格式取得:<jsp:setProperty id="localName" property="*" />;  
要从一参数取得,你必须直接命名此特性以及参数: <jsp:setProperty id="localName" property="address" param="parameterName" />;  
或是直接以名称与值来设定: <jsp:setProperty id="localName" property="serialNumber" value="string" /> or <jsp:setProperty id="localName" property="serialNumber" value= <%= expression %> />. 
有关JavaBean的最后一点:要让网络服务器可以找到JavaBean,你需要将它们的类别档案放在特别位置。对JSWDK而言,最简单的地方是在安装目录里的类别目录,例如 jswdk-1.0.1classes. 
四、JSP的内部对象 
最后一个与JSP语法有关的组件叫做内部对象.在JSP小型指令文件内,你可以存取这些内部对象来与执行JSP网页的servlet环境相互作用。许多对内部对象的存取应该要简化。然而,这些是范例,它们的存取都是可接受的,要完整的利用内部对象设定则需要对最新的Java Servlet API有所了解。 
下表列出你可以使用的内部对象。 
内部对象说明 
request   客户端请求,此请求会包含来自GET/POST请求的参数 
response  网页传回客户端的响应 
pageContext 网页的属性是在这里管理 
session   与请求有关的会话 
application servlet正在执行的内容 
out     用来传送响应的输出流 
config   servlet的架构对象 
page    JSP网页本身 
exception  针对错误网页,未捕捉的例外 
那么,这些是做什么的,而你应该如何使用它们呢?基本上,在你的小型指令文件里,你可以使用它们来存取执行JSP程序代码的servlet。为了避免谈论到太多Servlet API 的细节,让我们来检视一些你可以利用它们来做的事:  
不必使用表达式,你可以直接存取内部out对象来打印一些东西到response: 
<% out.println("Hello"); %>.  
不必直接传送参数到JavaBean,你可以藉由请求对象来取得参数的值: 
<% String name=request.getParameter("name"); out.println(name); %>。 
当你以JSP写了许多的应用程序之后,如果你建立了JavaBeans或者发现你自己将太多的Java原始码放入你的JSP档案,你需要建立支持的Java类别,这样可以鼓励重复使用并且降低JSP网页转换时所需要的时间。当你需要建立Java类别时,你必须: 
将JDSWK的安装目录bin目录加到你的PATH。在你的autoexec.bat档案的PATH行的最后,加入C:1.2.2in; 。 
以下面的指令将JAR档案复制到jrelibext目录: 
copy c:jswdk-1.0.1libservlet.jar c:jdk1.2.2jrelibext.

转载于:https://www.cnblogs.com/taoqianbao/archive/2012/09/05/jspweb002.html

JSP WEB开发入门基础到高手进阶教程002相关推荐

  1. 移动web开发入门—基础知识、自适应布局、调试

    之前没做过移动端web开发,最近接手的一个小项目是做微信公众号,需要考虑手机适配.UI给出的设计稿是一般是基于iphone手机做的(15年之后是基于ipone6),我们的UI是基于iphone6来做的 ...

  2. 《Java Web开发入门很简单》学习笔记

    <Java Web开发入门很简单>学习笔记 1123 第1章 了解Java Web开发领域 Java Web主要涉及技术包括:HTML.JavaScript.CSS.JSP.Servlet ...

  3. python开发web教学视频_Python快速Web开发入门与实践视频课程

    Python快速Web开发入门与实践欢迎来到KK的<Python快速Web开发入门与实践>捧场!下面请允许我为这套课程做一点介绍. <Python快速Web开发入门与实践>是一 ...

  4. JAVA Web开发入门

    课程目标 熟悉B/S与C/S体系之间区别 熟悉Tomcat服务器 熟悉整个Http请求DNS解析过程 一.Web开发入门 1.1 引入 之前的程序: java桌面程序,控制台控制,socket gui ...

  5. 好程序员web前端教程分享web前端入门基础知识

    好程序员web前端教程分享web前端入门基础知识,作为合格的Web前端工程师必须得掌握HTML.CSS和JavaScript.只懂其中一两个还不行,必须对这三门语言都要熟悉.下面我们一起来看一看吧! ...

  6. 《Web前端开发精品课 HTML与CSS进阶教程》——1.4 id和class

    本节书摘来自异步社区<Web前端开发精品课 HTML与CSS进阶教程>一书中的第1章,第1.4节,作者: 莫振杰 更多章节内容可以访问云栖社区"异步社区"公众号查看. ...

  7. 【python】 web开发入门

    进入Web开发 现在你完成了Python忍者训练,准备深入Ptyhon的Web开发,但现在的问题是有很多的框架,从中选择最好的框架非常困难,但从初学者的角度出发,Flask基本Web框架将非常适合We ...

  8. 《PHP和MySQL Web开发从新手到高手(第5版)》一2.9 删除存储的数据

    本节书摘来自异步社区<PHP和MySQL Web开发从新手到高手(第5版)>一书中的第2章,第2.9节,作者[澳]Kevin Yank,更多章节内容可以访问云栖社区"异步社区&q ...

  9. Flask Web开发入门

    Flask Web开发入门(八)之文件上传 https://blog.csdn.net/kangkanglou/article/details/79027425 前端:详情见上面的链接/也可以直接用f ...

最新文章

  1. 二叉搜索树-创建最小高度树(递归)
  2. 如何使对话框中接收到WM_CHAR消息(Windows编程)
  3. legend2---开发常用语句
  4. 根据文件路径检测文件大小并检测是否正在被占用
  5. 开机未发现nvidia控制面板_修改这几个选项,就能提升你的开机速度
  6. 二维vector容器读取txt坐标
  7. 微盟CEO孙涛上市致辞:曾豪言30岁前不敲一次钟 人生都不完整
  8. docker gogs安装
  9. (CSDN迁移) 输入一个链表,从尾到头打印链表每个节点的值
  10. 《Spring Cloud Netflix》 -- 服务注册和服务发现-Eureka的常用配置
  11. 机器学习第3周:算法学习
  12. suse mysql完全卸载_SUSE Linux下通过RPM方式卸载MySQL 5过程笔记
  13. 华为radius服务器配置
  14. 医用计算机app,‎App Store 上的“金融-计算器”
  15. 微信小程序倒计时组件开发
  16. 如何写好小论文论文摘要
  17. MySQL数据库W版与L版转换_mysql博文总结
  18. 数仓可视化,低代码开发平台
  19. BootStrap框架模块:BootStrap4基础
  20. ruby_对象的比较_等于号_3个等于号_equal_eql

热门文章

  1. Linux初学(Linux命令行的使用)
  2. mqtt android简书,iOS MQTT协议笔记
  3. Docker运行sonarqube-(代码质量检测平台)
  4. 开发工具之Android Studio快捷键
  5. 中小学教师职称计算机考试软件,中小学教师职称计算机考试大纲--2012年
  6. vue 循环tabs 标签页 组件_vue学习笔记--v-for循环标签页label并实现根据不同label表格切换...
  7. Linux网卡图形化,Linux系统无线网络图形化软件(LinSSID)使用方法
  8. java 无锁缓存_如何在高并发环境下设计出无锁的数据库操作(Java版本)
  9. mantelhean.test r语言_R语言基础-检验与分析函数
  10. c语言嵌入式开发单片机,嵌入式开发|单片机基础