版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第10章Web应用入门10.1Web服务器与Web应用10.2TomcatWeb服务器10.3JSP简介10.4案例:网上书店查询页面
10.1Web服务器与Web应用
随着Internet技术的发展,基于Web的应用得到越来越广泛的应用,例如网上书店、博客、论坛等等。与普通应用程序不同,用户无需安装应用程序,只需要在Web浏览器(如IE、Firefox等)中输入URL即可访问Web应用。Web应用系统具有极强的可维护性和易用性,当新版本发布的时候,只需要更新Web服务器上的代码即可。前面介绍的JavaApplet虽然也可用于Web应用,但JavaApplet是下载到本地运行的,不适合大型的应用。
Web服务器是在网络中为实现信息发布、资料查询、数据处理等诸多应用搭建基本平台的服务器。Web服务器与浏览器之间通过HTTP协议进行通信,用于传输采用HTML
(HyperTextMarkupLanguage,超文本标记语言)创建的网页等内容。
Web服务器的基本工作原理如图10.1所示。Web浏览器首先向一个特定的服务器发出Web页面请求;Web服务器接收到Web页面请求后,寻找所请求的Web页面,并将所请求的Web页面传送给Web浏览器;Web浏览器接收到所请求的Web页面,并将它显示出来。图10.1Web服务器的工作原理标准的HTML语言只能编制静态的网页,仅仅使用HTML语言是无法开发出一个完整的应用系统的。我们可以使用Java开发Web应用程序。这些应用程序使用JSP(JavaServerPages)技术创建Web内容。JSP技术利用Java和HTML来开发动态Web页面。
要使用JSP技术,Web服务器端必须安装JSP引擎软件。当浏览器向Web服务器请求一个JSP页面时,该页面被服务器端的JSP引擎转换为被称为Servelet的Java程序,然后由JSP引擎调用Java编译器,将Servelet(.java)编译为Class文件(.class),并由Java虚拟机执行,执行结果为页面,返回给Web服务器,由Web服务器传递到浏览器。
10.2TomcatWeb服务器
自从JSP发布之后,推出了各式各样的JSP引擎。Tomcat是ApacheGroup推出的一个免费的开源项目,它可以作为Web服务器使用,也可以作为其他Web服务器的JSP引擎。
Tomcat目前的最新版本为6.0.14,可以从/中免费下载,安装Tomcat6.0之前首先要安装JRE5。如果使用JBuilder2006则无需再安装Tomcat即可调试JSP页面,因为JBuilder2006已经附带了Tomcat4.0及Tomcat5.5,可以直接使用。如果想使用最新的Tomcat版本,也可以按照下面的步骤安装后,再在JBuilder2006中配置使用新版本。
Tomcat可在Windows及Linux等多种操作系统下运行,下载时应根据操作系统选择合适的版本。下面以WindowsXP操作系统为例简要介绍Tomcat6.0的安装步骤。
适合Windows各版本的安装程序为一个EXE文件,例如Tomcat6.0.14安装程序的文件名为apache-tomcat-6.0.14.exe,执行该程序按照提示即可安装。
(1)运行安装程序,稍候片刻,显示如图10.2所示的画面,单击Next按钮,在图10.3所示的画面中点击IAgree按钮接受Tomcat许可协议。
(2)选择安装类型。如图10.4所示,通常只需接受默认安装类型Normal,直接点击Next按钮即可。图10.2安装程序启动画面图10.3接受Tomcat许可协议图10.4选择安装类型
(3)选择安装位置。在图10.5中指定安装位置,如果使用默认安装位置,只需直接点击Next按钮即可。如果需要选择安装位置,可点击Browse按钮,在弹出的对话框中选择安装目录。
(4)配置端口、用户名和密码。图10.6允许指定Tomcat服务器所使用的端口,默认端口设定为8080。如果你的计算机已安装了其他Web服务器或代理服务器使用了该端口,可以在图10.6中修改该端口(HTTP/1.1ConnectorPort)。图10.6还允许设定Tomcat服务器管理员账号和密码,如果修改了用户名和密码,则务必牢记。设定完毕后点击Next按钮。图10.5指定安装目录图10.6配置端口、用户名和密码
(5) Tomcat安装程序会自动查找Java虚拟机的安装位置,如果你的计算机安装了多个版本的Java虚拟机,可自行指定Java虚拟机所在目录。如果不需修改,则直接点击Install按钮开始安装,如图10.7所示。
(6)安装完毕显示如图10.8所示的画面,点击Finish按钮完成安装并启动Tomcat服务器。如果成功启动Tomcat服务器,将在任务栏上显示如图10.9所示的Tomcat图标。可以右击该图标,通过弹出式菜单配置、停止和启动Tomcat服务器。图10.7选择JRE安装位置图10.8安装完毕图10.9任务栏图标
(7)测试是否安装成功。安装完毕后,启动Tomcat服务器,打开Web浏览器,在地址栏中输入http://localhost:
8080/,出现如图10.10所示的画面,表示Tomcat安装成功。图10.10测试是否安装成功 10.3JSP简介
JSP是由Sun公司在Java语言的基础上开发出来的一种动态网页制作技术,提供在HTML代码中混合程序代码、由语言引擎解释执行程序代码的能力。
在JSP环境下,HTML代码主要负责描述信息的显示样式,而程序代码则用来描述处理逻辑。普通的HTML页面只依赖于Web服务器,而JSP页面需要附加的语言引擎分析和执行程序代码。程序代码的执行结果被重新嵌入到HTML代码中,然后一起发送给浏览器。JSP是面向Web服务器的技术,客户端浏览器不需要任何附加的软件支持。执行JSP代码需要在服务器上安装JSP引擎,JSP中的Java代码均在服务器端执行。在浏览器中使用“查看源文件”菜单是无法看到JSP源代码的,只能看到结果——HTML代码。JSP页面看起来像普通HTML页面,但它允许嵌入执行代码。
JSP技术使得程序员可以使用平常得心应手的工具并按照平常的方式来书写HTML语句,然后将动态部分用特殊的标记(或称为标签)嵌入即可,这些标记常常以“<%”开始并以“%>”结束。程序10.1是一个简单的JSP页面,在Tomcat安装目录下的webapps目录下创建一个子目录,例如hello,然后使用文本编辑程序输入该文件内容,保存到该目录下,文件的类型为jsp,例如可命名为hello.jsp。在浏览器地址栏中输入http://localhost:8080/hello/hello.jsp,即可看到该页面的执行结果,它将输出“helloworld”。该文件中的out.println(“helloworld”)将被解释为System.out.println(“helloworld”)。【程序10.1】一个简单的JSP页面。
<html>
<head>
<title>一个简单的JSP页面</title>
</head>
<body>
<I><%out.println("helloworld");%></I>
</body>
</html>通常,JSP文件应以“.jsp”为扩展名,并将它放置到任何你可以放置普通Web页面的路径下。
JSP使用标签和Scriplet(用标准Java语法写的一小段内嵌入JSP文件中的代码)编写页面动态内容,JSP可以通过标签和Scriplet引用JavaEE服务器端的Bean(可理解为符合JavaEE特定标准的Java类)。通常可以将一些不可见的商务逻辑放在这些Bean中实现,而JSP页面主要用于展现用户界面。限于篇幅,本章仅通过例子简单介绍JSP。
程序10.2是一个显示当前日期事件的JSP页面,其中使用了JSP的一个重要标签:
<%=表达式%>该标签在其所在位置输出表达式的值。
【程序10.2】显示当前日期时间JSP页面。
<html>
<head>
<title>FirstPage</title>
</head>
<body>
Todayis:
<%=newjava.util.Date()%>
</body>
</html>
10.4案例:网上书店查询页面
10.4.1功能需求
本节给出一个连接数据库的JSP页面的实例,本实例为一个网络书店应用系统的功能模块。该模块允许客户在线查询所有不同图书的信息,这些信息包括:图书的作者、封面照片、价格、ISBN、版本号、出版时间及该书的一些简介。
图10.11和图10.12是本案例的运行画面。图10.11使用一个选择列表框显示所有图书名的列表,用户选择图书,然后点击“查看详细信息”按钮显示如图10.12所示的详细信息。图10.11显示图书列表图10.12显示图书详细信息本案例采用Access数据库,数据库中有一个名为products的表,结构如表10.1所示。表10.1案例所用表结构10.4.2创建books.jsp页面
本节首先创建books.jsp页面,显示可选择的图书,其页面运行效果如图10.11所示。JSP页面是标准的文本文件,主体结构为HTML。程序10.3给出了books.jsp源文件,为了便于解释,每行加了一个行号。
books.jsp使用了很多标准的HTML标记来构造页面。第4行和第57行分别为HTML起始和结束标记;第5行到第7行为HTML文档头部;从第8行开始为HTML的主体(body)部分,该部分由一个表单(Form)构成,提交表单时,访问bookInf.jsp页面显示详细信息。表单主要由一个显示图书名列表的选择列表框(select标记)和一个按钮构成,列表框中显示的图书名需要通过Java代码从数据库中读取。除了标准的HTML标记,books.jsp中还用到部分JSP标签,下面简单解释一下其作用:
第1行指定本页面采用的编码为gb2312,主要是为了JSP引擎能正确处理中文信息。
第2行<%--开始,--%>结束为注释,解释第3行的作用。
第3行再由JSP引擎转换为Java代码importjava.sql.*,读者应能很容易看出其对应关系。第1行和第3行均为对整个页面的设置(<%page%>),应放在HTML标记开始前。
从第16行开始嵌入大段的Java代码,这部分代码用于连接数据库,采用了第9章介绍的访问数据库的过程,访问ODBC数据源bookstore中的products数据表,读取所有记录的title字段。第38行用表达式标签输出图书名。【程序10.3】books.jsp源文件。
1.<%@pagecontentType="text/html;charset=gb2312"%>
2.<%--importjava.sql.*fordatabaseclasses--%>
3.<%@pageimport="java.sql.*"%>
4.<html>
5.<head>
6.<title>图书列表</title>
7.</head>
8.<body>
9.<h1>可选择的图书</h1>
10.<!--createform-->11.<formmethod="post"action="bookInf.jsp">
12.<p>请从列表中选择图书名</p>
13.<!--createlistthatcontainsbooktitlesfromdatabase-->
14.<selectname="bookTitle">
15.<%--连接数据库--%>
16.<%
17.//setupdatabaseconnection
18.try
19.{
20.Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");21.//connecttodatabase
22.Connectionconnection=
23.DriverManager.getConnection(
24."jdbc:odbc:bookstore");
25.//obtainlistoftitles
26.if(connection!=null)
27.{
28.Statementstatement=
29.connection.createStatement();
30.ResultSetresults=statement.executeQuery(
31."SELECTtitleFROMproducts");32.while(results.next()==true)
33.{
34.StringcurrentTitle=
35.results.getString("title");
36.%>
37.<%--循环输出图书名--%>
38.<option><%=currentTitle%></option>
39.<%
40.}//循环结束
41.results.close();//关闭结果集
42.connection.close();//关闭数据库连接43.}//endif
44.}//endtry
45.//catchSQLException
46.catch(SQLExceptionexception)
47.{
48.out.println(
49."Exception:"+exception+"occurred.");
50.}
51.%>
52.</select>
53.<!--createViewInformationbutton-->
54.<p><inputtype=“submit”value=“查看详细信息”></p>
55.</form>
56.</body>
57.</html>
10.4.3创建bookInf.jsp页面
程序10.3中,当用户点击“查看详细信息”按钮时,由表单action属性指定的bookInf.jsp响应的源程序清单如程序10.4所示。通过books.jsp表单提交的图书名参数通过request对象获取,第13行指定表单参数使用gb2312编码,第15行通过request.
getParameter获取参数,该方法的参数为表单中该项的名字。【程序10.4】bookInf.jsp源代码。
1.<%@pagecontentType="text/html;charset=gb2312"%>
2.<%--importjava.sql.*fordatabaseclasses--%>
3.<%@pageimport="java.sql.*"%>
4.<!--beginHTMLdocument-->
5.<html>
6.<!--specifyheadelement-->
7.<head>
8.<!--specifypagetitle-->
9.<title>BookInformation</title>10.</head>
11.<!--beginbodyofdocument-->
12.<body>
13.<%request.setCharacterEncoding("gb2312");%>
14.<!--createaheadingforthebook'stitle-->
15.<h1><%=request.getParameter("bookTitle")%></h1>
16.<%--beginJSPscriptlettoconnecttoadatabase--%>
17.<%
18.//setupdatabaseconnection
19.try
20.{21.//specifydatabaselocation
22.
23.Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
24.//obtainconnectiontodatabase
25.Connectionconnection=DriverManager.getConnection(
26."jdbc:odbc:bookstore");
27.
28.//obtainlistoftitlesfromdatabase
29.if(connection!=null)
30.{
31.//createstatement32.Statementstatement=connection.createStatement();
33.
34.//executequerytogetbookinformation
35.ResultSetresults=statement.executeQuery(
36."SELECTcover,title,authors,price,isbn,"+
37."edition,copyrightYear,description"+
38."FROMproductsWHEREtitle='"+
39.request.getParameter("bookTitle")+"'");
40.
41.results.next();//movecursortothefirstrow
42.43.%><%--endscriptlettoinsertliteralXHTML--%>
44.
45.<!--displaybookcoverimage-->
46.<imgsrc="images/<%=results.getString(
47."cover")%>"alt="Bookcoverfor
48.<%=results.getString("title")%>.">
49.
50.<!--displayauthors-->
51.<p>作者:<%=results.getString(
52."authors")%></p>
53.54.<!--displayprice-->
55.<p>价格:<%=results.getString("price")%></p>
56.
57.<!--displayISBN-->
58.<p>ISBN:<%=results.getString("isbn")%></p>
59.
60.<!--displayeditionnumber-->
61.<p>版本:<%=results.getInt("edition")%></p>
62.
63.<!--displaycopyrightyear-->
64.<p>出版时间:<%=results.getString(65."copyrightYear")%></p>
66.
67.<!--displayauthors-->
68.<p>简介:<%=results.getString(
69."description")%></p>
70.
71.<!--createlinktoBookList-->
72.<p><ahref="books.jsp">图书列表</a></p>
73.
74.<%//continuescriptlet
75.76.results.close();//closeresultset
77.connection.close();//closedatabaseconnection
78.
79.}//endif
80.
81.}//endtry
82.
83.//catchSQLException
84.catch(SQLExceptionexception)
85.{
86.out.println("Exception:"+exception+"occurred.");87.}
88.
89.%><%--endscriptlet--%>
90.
91.</body>
92.</html>
实训十简易Web应用
一、实训目的
1.了解JSP的基本原理。
2.使用Tomcat运行JSP编写的Web应用。
二、实训内容
1.网上书店查询页面案例的运行。
(1)建立数据库。使用Access建立一个数据库文件,然后在该数据库中按照表10.1中的字段结构建立表products,productID作为该表主键,并在表中输入若干条记录。
(2)建立ODBC别名。参照实训九中介绍的方法建立一个ODBC别名bookstore,用于访问上面建立的数据库。
(3)输入源程序。
●不使用集成环境
①在Tomcat安装目录下的webapps目录下创建一个子目录bookstore,在该目录下创建images子目录,将products表中所有记录cover字段(图书封面图片文件名)代表的图片复制到images子目录中。
②使用记事本输入books.jsp和bookInf.jsp,保存到bookstore目录下。③启动Tomcat6.0。如果Tomcat6.0未自动启动,可通过单击“开始”菜单→程序→ApacheTomcat6.0启动“MonitorTomcat”,然后通过任务栏图标启动Tomcat6.0。
④启动IE
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年苗木种植与环保技术合作合同3篇
- 2024年远程监控设施安装协议3篇
- 仓库叉车租赁合同
- 水产品安全质量协议书
- 国际体育俱乐部租赁合约
- 城市轻轨监理招标文件样本
- 广东省加油站非油品业务拓展
- 工业园区临电施工合同
- 医疗行业专家顾问聘用合同模板
- 2024年配件更换与技术支持合同3篇
- 中国成人心肌炎临床诊断与治疗指南2024解读
- 2024年人教版八年级数学上册期末考试卷(附答案)
- 高效脱磷河钢集团李建新
- 电大本科《西方经济学》期末试题标准题库及答案(试卷号:1026)
- 口腔常见疾病课件
- 政府与非营利组织会计-复习题
- 专题07:回忆性散文阅读(考点串讲)
- 公司IT运维管理制度
- 护理带教课件教学课件
- 促进低空经济农林生产应用场景实施方案
- 24秋国家开放大学《当代中国政治制度》形考任务1-4参考答案
评论
0/150
提交评论