Java Web应用开发中的一些概念

Java Web应用开发中的一些概念,第1张

概念一直是学习计算机软件开发中经常遇到的问题 也是软件行业最喜欢创造的东西 很多时候 学习计算机软件开发遇到困难都是因为对某些概念的不理解 而不是因为技术本身有多么复杂 Java Web作为Java EE技术体系的一部分 应该是目前所有Web开发技术中最复杂的一种 很多初学者 或者是从ASP PHP转移过来的开发者都会遇到概念方面的困难

其实很多概念都是非产简单的 只是因为厂家为了宣传需要 将概念复杂化 学术化 导致学习者觉得这些概念非常深奥 难以理解 在这里 我们首先去澄清Java Web开发中几个常用的基本概念 当然理解这些概念的前提是需要你具备一定的计算机系统 面向对象等方面基础知识

Web容器

所有的程序运行都需要有一个必要的运行环境 这个环境可以是软件 也可以是硬件 或者是软件和硬件的结合 比如说Windows *** 作系统需要运行在硬件基础上 Office软件需要运行在 *** 作系统上 并且程序与运行环境之间会有一定的数据交换 比如 *** 作系统会将运行指令传递给硬件 硬件也会将指令运行结果传递给 *** 作系统 Java Web程序也需要一个运行环境才能够执行 这种运行Java Web程序的环境被称为Web容器 Java Web程序与Web容器之间存在数据交互 目前主要存在两种类型的Java Web容器 一种是独立的Java Web容器 在这种容器里面只能运行Web程序 这种容器一般也叫做Web服务器 如Tomcat等 另一种是与其他Java EE容器混合在一起的Web容器 Web容器负责运行Web程序 其他容器负责运行EJB等程序 如WebLogic等

当用户通过浏览器等Web客户端软件向服务器发出一个请求之后 首先接收到这个请求的是Web容器 Web容器会将请求信息封装到一个HttpServletRequest类型的Java对象中 并将对象传递给Java Web程序 对于每个请求 Web容器还会创建一个HttpServletResponse类型对象 该对象的作用是用来保存需要返回到浏览器等客户端的内容 Java Web程序可以从HttpServletRequest提取用户发出的请求信息 进行适当的处理之后 将处理结果放置到HttpServletResponse中 然或由Web容器解析HttpServletResponse对象内容 并将解析结果以浏览器能够识别的HTML等格式返回给浏览器等客户端 在这个过程中 HttpServletRequest和HttpServletResponse就如同两条渡船 负责在Web容器和Java Web程序之间传递信息 需要注意的是 这两个对象仅存在于Web容器和Java Web程序当中 与浏览器没有关系 下图是这个过程的示意图

Web应用

Web应用 可以认为是Web程序的另一个名称 缺的的定义就是运行在Web容器当中的 能够完成完整功能的应用程序 Java Web应用由一系列编译之后的Java类 静态图片 静态HTML文件 配置文件等构成 通过Java Web应用可以就收用户的输入和请求 并对请求信息进行加工处理 访问数据库 对用户的请求给出回应 开发Java Web应用程序处理需要遵守Web应用的一些特殊规范要求以外 与开发其他类型的应用程序并没有本质区别 目前Web应用主要有两种类型 一种是以展示为目的的Web应用 这种应用会以HTML等标记文本或者浏览器所能识别的媒体格式最为请求返回内容 用户可以通过浏览器等客户端 *** 作这类应用 另一类是以服务为目的的Web应用 这类应用不提供图形 *** 作界面 只提供方法调用结构 比如Web服务 该类应用一般只能被其他应用程序调用和访问

Web元件

Web元件是构成Web应用 能够对来自浏览器等客户端请求做出回应的基本单元 在Java Web应用中 所提供的Web元件有Servlet JavaServer Pages(JSP) JavaServer Faces(JSF)等 另外还可以使用其他类型Web应用同样使用的内容 比如HTML文件 静态图片等 事实上Java Web只提供了一种Web元件元件 就是Servlet JSP JSF等都是基于Servlet的衍生技术 Servlet实质就是一个有特殊继承关系要求的Java类 理解Servlet就基本上完全理解Java Web技术了

Web模块

在Java EE技术体系中 除了Java Web以外 还包括EJB等其他技术 每个技术体系会运行在各自的容器当中 不同的部分组合在一起构成完整的Java EE应用 每个部分根据自己的特点被称为Java Web模块或者EJB模块 之所以把他们称为模块 是因为希望Java EE应用不同部分能像积木一样组合出更大 更复杂的应用出来 并且每个部分保证其独立性 不同的模块都有自己特定的目录结构要求 Java Web模块的目录结构要求如下

◆应用文档根目录 改目录是Java Web模块的最上层目录 组成Web模块的所有Web元件以及配置文件等都包含在该目录或者子目录下 在改目录下可以直接存放HTML文件 图片文件等

◆WEB INF目录 改目录位于应用文档根目录下 用来保存那些不希望被浏览器等客户端访问的文件 比如发布描述文件 编译之后的类文件 因为这些文件是由由Web容器进行解释或者执行的 浏览器不可以直接看到这些文件 只能看到这些文件的执行结果

◆web xml文件 该文件位于WEB INF目录下 是Web应用的部署描述文件 用来与定义Web应用运行相关的信息 比如执行逻辑 Servlet等Web元件的访问路径等 改文件的格式必须符合所使用的Servlet版本的规格要求

◆classes目录 该目录位于WEB INF目录下 用来保存编译之后的Java类文件 比如Servlet 辅助类 其他业务处理类等

◆tags目录 该目录位于WEB INF目录下 用来保存那些标签库的标签描述文件

◆lib目录 该目录位于WEB INF目录下 用来保存Web应用运行所依赖的 经过打包之后的Java类文件 打包格式一般是 jar格式

对于Java Web模块目录中WEB INF web xml classes tags lib这些内容以外 用户可以根据自己的需要在Web应用文档根目录下创建其他目录 比如可以为图片 不同用途的HTML或者JSP单独创建目录 还可以为不用的Java类在classes下创建包目录 如果在你的Web应用中没有使用到Servlet 过滤器 监听器等Java Web元件 可以没有web xml文件 如果没有使用到标签 则可以没有tags目录

Web模块的发布工作 可以直接以目录的形式发布 也可以打包成jar格式文件进行发布 因为用途和内容的特殊性 打包文件的扩展名会采用 war而不是 jar 另外如果不是发布到独立的Web服务器上 而是发布到与其他Java EE一起使用的企业应用服务器上 还需要编写一个与企业应用服务器相关的配置文件 这个文件对于不同的企业应用服务器也不同 比如发布到glassfish服务器上 需要编写的文件时sun web xml

lishixinzhi/Article/program/Java/hx/201311/26761

开发JSP项目所需要的技能包括: Java 在使用JSP的时候,任何程序员都不可能不和Java打交道。JSP本身就是用一套Java对象编写的。更重要的是,JSP的缺省脚本语言就是Java。所以,一个JSP程序员必须理解Java的基础概念。我建议程序员在开发JSP之前至少得有一个月开发Java的经验。 HTML/XHTML 不管你怎么看JSP,反正你最后要产生的结果中超过95%的比例将是HTML文件。因此,JSP程序员还得全面理解HTML技术。我建议程序员在考虑学习JSP之前应该有至少一个月的HTML/XHTML编程经验。 了解Web服务器 因为JSP是一种用以建立网络站点的编程技术,所以在某种程度上你应该了解一点你的站点所采用的Web服务器的相关知识。Web服务器处理HTML页面,所以,它通常要与其它软件联合起来共同运行才可以处理JSP页。这也是我们所遇到JSP难题之一。 了解运行JSP的容器 所谓容器(container)其实就是JSP服务器。这是一种解释软件,负责解释向JSP页提出的请求,同时,把输出结果送回向JSP页提出请求的用户。容器很象Web服务器,只不过后者处理HTML网页而容器则为JSP页提供服务。要学习JSP容器的细节所消耗的时间取决于你最后选择的容器。某些容器很简单,学习起来也很容易。而另一些容器则功能强大但学习和维护的时间很长。要了解更多的相关内容请参看有关JSP工具的FAQ。 JavaScript JSP产生的数据会被发送给客户机,通常就是某种浏览器,也就是我们所说的逗客户端地。当前的大多数JSP输出结果都建立在HTML基础之上。JavaScript则是针对HTML的脚本语言。JavaScript允许程序员在客户端执行条件逻辑。这就意味着客户机和服务器之间的联系会少一些,客户机的性能也就大大增强了。还有,JavaScript允许程序员修改HTML被显示的方式以增加HTML的功能。JavaScript可不是Java。实际上,JavaScript仅仅在能看到HTML输出的浏览器上运行。 有一点要特别注意:尽管JavaScript还是这种脚本语言所普遍接受的名字,但是JavaScript实际上拥有好多种具有不同名称的不同版本(微软推出的JavaScript就叫Jscript)。比如,现在欧洲推出的新型JavaScript标准就叫ECMAScript。所以如果有人把JavaScript称作Jscript或者ECMAScript你可别犯糊涂啊! 学习JSP JSP并不是一种真正的编程语言而是: ¨—用Java编写的一组对象的集合。 ¨—采用简单的脚本语法用来在对象和JSP容器之间通信。 学习JSP技术需要你掌握一些简单地脚本规范和组成JSP标准的对象。在程序员熟悉和了解Java之后,学习JSP的基础知识就相当简单了。 按JSP的思想进行思考 JSP是一种分布式的、基于Web的应用程序。这就是说,其逻辑处理被划分在许多机器上进行。大多数处理过程发生在装有JSP应用程序的服务器上。还有一些时间则花在处理客户机上的HTML页面上,而这些客户机就是察看Web应用程序的客户机。还有许多项目会和数据库服务器一道协同工作来处理数据。更大的项目可能采用组件服务器运行集中的EnterpriseJavaBean对象。如果一个Web应用程序足够大,核心的JSP部分还可能实际上分布在若干JSP服务器运行。所有这一切都意味着,你必须了解JSP应用程序的逻辑处理在许多机器上被恰当分布运行的原理。更重要的是,理解混合客户端和服务器端逻辑的Web应用程序这种双重性是很关键的。所以,按JSP的思想进行思考在我看来绝对算得上是一门真正的艺术。 学习JSP语法和对象是最基础的第一步。同时我们还采取其他一些重要的工作来完成掌握JSP这一过程,这些工作有: —了解这些不同技术之间是如何相互交流、协同运行的。 —了解这些逻辑处理过程在什么时候、在什么场合下发生。 分布式应用程序的平衡是最难掌握的技术之一。把这问题搞清楚了可以大大提高学习过程的速度。否则你可能在这一主题上花费大量的时间和精力。 开发JSP项目所需要的其他一些技能还包括: DHTML和层叠样式表 我现在建立的的每个Web应用程序都使用了DHTML(动态HTML)和层叠样式表CSS(CascadingStyleSheet)。这些工具对HTML页面的功能而言是个极大的扩展。它们可以让用户建立模仿客户机—服务器结构的Web应用程序。我个人认为这些工具完全是我们必须掌握的技能,不过,很多简单的项目或许并不需要这些工具。 Servlet 你不需要学习过多的servlet知识。当Sun开发了JSP的时候JSP曾被认为逗servlet的简化版地。其目标就是在提供简便的编程环境时实现servlet的大多数功能。而使JSP易于使用的代价则是servlet的力量蒙受了细微的损失。有时你就不得不编写servlet来完成一些特定的任务。 J2EE(针对大型项目) 更大的JSP项目同时也要求服务器更强大而项目的可重用性则更高。在这种情况下就要采用Java2EnterpriseEdition解决方案了。J2EE服务器可以让JSP项目获得满足大流量需求的许多特性。J2EE还使用了EnterpriseJavaBean以实现代码的高度重用性。最后,J2EE服务器更为稳固,提供更好的系统失败支持和诸如对象缓冲(一种加快访问的技术)这类特性。J2EE方案代价不菲并且要求开发人员具有很高的经验。 以上技能的重要性 在JSP论坛上粘贴的问题大多是,或者说严格地讲都并不是关于JSP的。其中有3分之2的问题其实都是针对Java、JavaScript、JSP容器和HTML的。在启动JSP项目前学习以上的技能将为你避免很多不必要的挫折、混乱和各种错误,最后还可以节省你的时间和金钱。

一、 HTML CSS Javascript

正如严老师所说:“Java Web 的基础是建立在HTML这套标签的地基之上的”。所以学习Java Web 就要学习HTML的标签,开始对HTML的理解并不是很深,本以为作为程序员对HTML的重点掌握无非就是From表单,哦,对了,还有Table,<a herf=””>,文档的格式<head><body>等等等等,而对于CSS,更觉得这对于作为程序员的我们没有什么太大的必要,那些事情完全是由美工来做的,而对于Javascript则觉得他应当是与vbscript一个时代的脚本语言,其作用无非是给页面添加一些花哨的动态效果没有什么实际意义,但是当我接触到更多的新技术如AJAX的时候便觉得我所掌握的远远不够,对于AJAX而言你学要知道每个细节从而能够设计出既美观又具有人性化的用户界面。而AJAX所以依托的基础便是Javascript、CSS、HTML、XML,其思想在于使用XMLHttpRequest实现异步调用把数据偷偷的下载到客户端从而使得用户无需刷新界面从而得到更好的上网体验,此三种技术在AJAX中发挥的淋漓尽致。这才知道那本OReilly的 “Javascript犀牛书”并不是盖的。这三个基础性的东西还是学要好好的学习,老的技术相结合也能焕发出新的光彩。

二、 TomCat

总觉的这是一个让人头疼的东西,学习的时候常需要给他进行很多项配置,首先是虚拟路径,在server.xml文件夹下加上<Context path=”/test” docBase=”F:\dwb”>,有一次给同学安装Tomcat6.0把Tomcat5.5里面老师写好的server.xml直接粘贴到了Tomcat6.0的cong文件夹下竟不能运行,这才知道版本不同随便粘贴后果是很可怕的,还是老老实实的把<Context path=”/test” docBase=”F:\dwb”>这句话粘贴上才是。东西有时命名目录里的东西已经更改了,TomCat也已经重新启动了,但网页上显示的依旧是以前的东西,还得把C:\Program Files\Apache Software Foundation\Tomcat 5.5\work\Catalina\localhost\这个目录下的虚拟路径删掉(如经典的test目录)。在做第9、10、11章的例子的时候还要把WEB-INF文件夹放到虚拟目录的根目录下否则会找不到WEB-INF文件夹,总之问题多多,问题越多,自己的经验也就越多。

三、 JSP基本语法

1、 <% %>在jsp页面中插入Java代码,<%= %>表达式输出语句

2、 JSP指令和动作:指令主要是<%@page %>、<%@include %>;动作主要是<jsp:forward>、<jsp:include>、<jsp:usebean>、<jsp:setProperty>、<jsp:getProperty>

3、 四种属性的作用域page、request、session、appliction,一个比一个大,page只对当前页面有效,request是在两个页面跳转的时候包括服务器端的跳转,seesion只要浏览器不关闭,属性一直存在。Appliction只要服务器(如Tomcat)不关闭它一直都存在

总之我感觉JSP的基本语法还是很简单的无非就是几个标签指令什么的,稍需要注意的是<jsp:forward>是服务器端的跳转URL地址不变,<%@include %>、<jsp:include>主要是包含静态和动态的区别。

四、 JSP内置对象

Request:主要作用接受表单传来的数据,

Response:主要是可以像客户端发送头部信息和重定向sendRedirect

Out:输出一些东西

Exception:一些异常信息

Config:这个对象比较厉害,它能获得web.xml中的许多信息,如<application>中的值,<servlet>中的parm值等

Session和applicition对象主要是用他们的setAttribute和getAttribute方法存取一些属性值,不同之处在于他们的作用域

五、 JDBC

与数据库进行连接,这是学习程序的重头戏,但也不是很难,主要是记住连接数据库的一些流程

1、 Class.forName(驱动程序字符串)

主要有四种驱动方式,字符串也各不相同,我们常用的是连接access的jdbc odbc bridge字符串为sun.jdbc.odbc.jdbcodbcdriver

2、 DirverManger.getConnection(DBURL)

DBURL字符串为 Jdbc:odbc:数据源名称

3、新建statement对象

4、执行exectuQuery或exectuUpdata方法

5、逆序关闭数据库

六、结语:设计模式 与开发框架

DAO模式已经过时了,现在的主流模式是MVC;其中主要用了servlet充当控制层, 还需要在web.xml中配置servlet映射,它主要是起到数据控制流向的作用,现在说有主流的框架都是使用MVC模式,如SSH,但是这些框架都没有想微软vasual Studio那样的可是控件(虽然JavaBen是一些可复用的类),2005年推出的JSF开发框架弥补了这一缺陷,相信在未来作为SUN官方标准推出的JSF开发框架可能会成为主流框架,因为ESRI的ArcGIS Server就是依托于JSF框架开发的产品,相信JSF会成为以后开发框架的主流!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12011501.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存