MySQL和JSP的Web应用程序
JSP开发人员构建Web应用程序时遇到需要强大的数据库连接的特殊问题。 MySQL和JSP的Web应用程序解决了构建数据驱动的应用程序JavaServer页面上的发展模式为基础的挑战。 MySQL和JSP的Web应用程序开始一个对JSP数据库开发 - JavaServer页面,JDBC和数据库模式所需的核心技术概述。该书然后概述并提出了互联网商业应用演示,如接收和处理用户输入,设计和实施业务规则,并平衡服务器上的用户负载的概念。通过JDBC(Java数据库连接),开发人员能够与大多数商业数据库如Oracle进行沟通。在MySQL和JSP的Web应用中心提交了一份关于开源工具MySQL和Tomcat的解决方案,使读者一个经济实惠的方式来测试书中的例子的应用程序和试验。
那么JSP是怎么一回事呢?
如果您符合上述要求的,你对这个问题的答案应该已经有一个相当不错的理解。 JSP是所有关于做高度面向对象的网站,可以利用所有的现代软件工程最佳实践。这些做法包括诸如SQL数据库和基于UML设计的东西。这并不是说JSP是万能的而且使用它会自动将您的网站上的工程艺术的典范。这只是尽可能地用其他任何技术用JSP设计不良网站。这就是为什么,当你详细
检查文本的时候,你会看到如何合并最佳方法以及项目得到的压力时候如何避免方便的陷阱。JSP它本身就是从第一个静态Web服务器开始的一个沿路径循序渐进的步骤,通过CGI移动功能的服务器,最后脚本功能的服务器的第一代。 JSP是一个比Java引擎能够熟悉网页的的少了一个Java组件的Web服务器。
JSP是由Java servlet发展演变而来的。servlet允许开发人员处理传入使用Java程序能够访问的所有正常的信息,一个共同的网关接口(CGI)程序将Web请求。此外,该servlet可以访问会话持久对象。这是Java的都与一个特定的用户会话,可用于存储请求之间的状态对象。 Servlet编程是一个允许开发人员编写结构良好的模块化的Web应用程序使用面向对象语言的重要一步。它还解决了状态持久性的问题,用户和应用程序执行的一个动作或一系列动作期间让更多的信息驻留在服务器上而且较少的反复在用户和服务器之间传递。 Servlet还遭受一大问题。因为他们最终需要输出HTML中,HTML编码必须被嵌入在servlet代码中。导致如下所示的一段代码片段:
Out.println("<HTML>\n<HEAD>\n<TITLE>Thank you for
Registering</TITLE></HEAD>\n");
Out.println("<IMG SRC=\"thanks.jpg\" WIDTH=200 HEIGHT=100 ALIGN=\"LEFT\”>");
当你编码很多网页时,这种嵌入式是非常古老非常快的。此外,必须避免所有引号会导致的很多混乱和如果你遗漏了一个反斜杠带来难以发现的错误。最终,一个较好的方法出现。假设你能结合最好的静态HTML页面和servlet的交互能力。其结果是JavaServer页面(在微软方面,结果是活动服务器页面)。JSP是非常复杂强大的。在接下来的章节中,你会通过这个细节流程,但就目前而言,这里是主要的步骤:
1、接到请求时从使用普通的HTTP请求格式的浏览器。
2、WEB服务器切换到JSP的请求,JSP着眼于到合适的JSP文件。
3、.jsp文件转换成.Java文件,包含Java代码,将创建一个类,它的名称是从.jsp的文件名而得。
4、JSP然后用javac编译.java文件产生一个.class文件。注意如果一个.class文件已经存在而且比.jsp文件新则可以跳过先前的两步。
5、一个新创建的类实例被实例化,并发送_jspService消息。
6、新的实例看看是否已经有一个被称为user的stuff.User对象实例在当前连接的用户会话对象的空间存在。如果没有,一个实例被实例化。
7、作为服务stuff.jsp的一部分,user实例将被GetUserName()方法调用。
8、如果JSP处理需要访问数据库中的信息,它将使用JDBC来进行连接和处理SQL请求。
正如你可以看到,巨大的能量是在现有的JSP世界里。开发者可以自由编写大多数看起来像HTML的Web页面,除非到Java标注是要求最喜欢看的HTML。但是,在同一时间,他们可以自由地充分发展充实面向对象的应用程序使用Java会带来负担的所有功能。他们也得到servlet的所有优点,包括会话持久性。
为什么我们需要的数据库?
好,一个原因就是为了让拉里埃里森想到比尔盖茨的时候,他的Oracle有能力保持自己百忧解。更严重的回答是相同的原因也就是驾驶人先按下针对一块湿粘泥:因为把事情记下来是好的。 Web服务器是了不起的创造,但他们是一个有点像白痴专家。请他们为一个网页或运行Java的一段,他们表演的像一个冠军。但开始要求他们记住他们五分钟前做了什么,和他
们显露的比一个肥皂剧里的人物失忆还快。
第一个也是最重要的原因是你使用的数据库是有大量的数据在电子商务交易里,你必须记住并跟踪:
•一个用户的姓名,地址,信用卡和其他信息以前进入了一个注册页面
•帽子的用户可能把以前留下交易放进购物车
•哪些物品有存货,以及它们的价格,描述等等
mysql数据库损坏修复•订单需要履行,订单已发货,并已待补物品。
现在,你可以存储所有这些信息在服务器上的硬盘平面文件中,但也有你想保存的数据的其他重要属性:
•如果交易部分失败,您希望能够收回交易。
•您希望能够到Web服务器安全的地方定位数据,这可能是完全在DMZ或外部的防火墙。
•您希望能够如用户数据或产品快速访问数据,即使有数千或上百万数据。
当你添加这些项目的购物清单,只有一个关系数据库才会真正的影响工作效率。
MySQL
许多网站不需要Oracle的历史优势(和价格标签)。 MySQL是一个开源SQL数据库可供任何人使用,拥有许多(尽管不是全部)的先前数据库的功能,如Oracle。
MySQL是可用于几乎所有的电脑上有相当好的能力是相当轻量级的处理器,安装方便(10分钟,而不像Oracle需要多个小时)。
所以,也许你想知道,有什么收获?没有得到什么,你在MySQL中,使人们把目光转向到Oracle?那么,MySQL是一个不错的小程序包,但它缺少一些东西,不然会是不错的一个完美的世界。
一个主要特点就是MySQL不提供数据库一致性检查。您可以使用您的模式外键的标签,但MySQL会忽略它们。据我所知许多数据库管理员会认为这是一个很糟糕的事情。
外键约束防止你创建数据不一致。例如,假设你有一个像这样的数据库表:
CREATE TABLE USER (
USERID INTEGER,
FIRST_NAME VARCHAR(80),
LAST_NAME VARCHAR(80));
CREATE TABLE PURCHASE (
USERID FOREIGN KEY USER(USERID),
ITEM INTEGER,
QUANTITY INTEGER);
在诸如Oracle的数据库里,如果你创建了一个在PURCHASE 表ID为3的用户输入数据库,在USER表里可能已经有一个ID为3的用户或错误会发生。同样,如果它在PURCHASE理是作
为参考,你就不能从表USER里删除ID为3的用户,MySQL的人们做了一个漂亮慷慨激昂的论点关于在各自的文档进行数据的完整性取决于外键是无论如何都是一个坏主意,但是说服你的这种哲学的DBA是很可能沦为一个宗教辩论,
此外,其他一些功能缺失,如子查询和SELECT INTO。但可能是其他主要功能,你会漏掉回滚/提交的功能。 MySQL不会执行回滚和为某些特殊类型的表提交,但他们并不全是。同样,MySQL的人提供他们自己的难题为什么MySQL是好的,但能够回滚事务是(在我看来)重要以确保您有可用。
回滚可以在开始做一系列交易之前在数据库设置一个保存点,并能要么回滚到原来的状态或提交在结束时候的改变。例如,当记录一次购买,你需要记录一个针对用户的帐户扣款,并输入到shipping表记录,让你知道后来ship的项目。比方说,第二部分失败。你不会要收取用户,但没有ship的项目。因此,你要回滚到事务开始之前的状态。
因此,MySQL不是一个成熟的数据库产品,至少,还不是。它对于世界上90% 的电子商务网仍然是相当好的,但是,4.0版本在撰写本文时最初的版本,解决了这些问题,包括行级锁定和事务控制数量。
把Tomcat和MySQL的结合
Tomcat和MySQL的结合为你用它来学习、开发和部署JSP应用程序提供了一个强大的、可靠的和免费的平台。而且,最好的是,您开发的代码将使用这个平台很好地运行使用iPlanet和Oracle或WebSphere和SQL Server。
作为一个学习工具,两者的结合几乎是“参考实现“他们(JSP和SQL)各自的协议。因此,当你熟悉了解项目的详细情况时,你不会接到任何恶劣的厂商专有的坏习惯。
此外,你可以享受你正在支持开源软件活动的知识。开放源码软件是根据多个公共许可证的编码,往往是GNU通用公共许可证(GPL)的人免费提供。
关于GPL的实际情况和虚构
GNU通用公共许可证可能是现存最被歪曲的文件之一,基础知识分解如下:
1.如果您在GPL下放置一个软件作品,任何人都可以免费复制它,无论以源码或可执行形式或者把它交给其他任何人。
2.如果你在GPL下一个软件,并以此作为你的作品的一部分,你不能收取费用超出复制的产
品。
许多人解释这意味着他们不能使用GPL软件用于商业目的。没有什么是更远离真理。你不能做的是对大量的来源于GPL产品作为你的产品的部分收取费用。
你可以在一个网站开发免费地使用GPL代码,因为你不卖自己的网站作为一个产品给第三方。 (咨询公司陷入一个不可思议的空间,但至今没有人以便使用GPL而追逐它们。)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论