问题出在第53行: flag = mdcheckLogin(managerID);
根据log, 应该是md为null,
你在这句之前 加以下语句 就能验证:
if(md == null){
Systemoutprintln("-----------md is null ------------------");
}
目前, 国内外信息化建设已经进入基于Web应用为核心的阶段, Java作为应用于网络的最好语言,前景无限看好。然而,就算用Java建造一个不是很烦琐的web应用,也不是件轻松的事情。概括一下,实施Java的WEB项目需要掌握的技术如下:
lJava语言
l面向对象分析设计思想
l设计模式和框架结构
lXML语言
l网页脚本语言
l数据库
l应用服务器
l集成开发环境
下面我们具体地看每个技术
1、Java语言
Java语言体系比较庞大,包括多个模块。从WEB项目应用角度讲有JSP、Servlet、JDBC、JavaBean(Application)四部分技术。
(1)、Java Database Connectivity (JDBC)技术
在Java Web应用开发中,数据库管理系统(RDBMS)的使用是不可缺少的。JDBC(Java Database Connectivity) 是一种用于执行 SQL 语句的 Java API。它由一组用 Java 编程语言编写的类和接口组成。JDBC 为工具/数据库开发人员提供了一个标准的API,使他们能够用纯Java API 来编写数据库应用程序。
简单地说,JDBC 可做三件事:
l与数据库建立连接,
l发送 SQL 语句,
l处理结果。
(2)、Servlet技术
Servlet是运行在服务器端的程序,可以被认为是服务器端的applet。servlet被Web服务器(例如Tomcat)加载和执行,就如同applet被浏览器加载和执行一样。servlet从客户端(通过Web服务器)接收请求,执行某种 *** 作,然后返回结果。
Servlet的主要优点包括
lServlet是持久的。servlet只需Web服务器加载一次,而且可以在不同请求之间保持服务(例如一次数据库连接)。
lServlet是与平台无关的。如前所述,servlet是用Java编写的,它自然也继承了Java的平台无关性。
lServlet是可扩展的。由于servlet是用Java编写的,它就具备了Java所能带来的所有优点。Java是健壮的、面向对象的编程语言,它很容易扩展以适应你的需求。servlet自然也具备了这些特征。
lServlet是安全的。从外界调用一个servlet的惟一方法就是通过Web服务器。这提供了高水平的安全性保障,尤其是在你的Web服务器有防火墙保护的时候。
lServlet可以在多种多样的客户机上使用。由于servlet是用Java编写的,所以你可以很方便地在HTML中使用它们。
(3)、JavaServer Pages(JSP) 技术
JSP是从Servlet上分离出来的一小部分,简化了开发,加强了界面设计。JSP定位在交互网页的开发。运用Java语法,但功能较Servlet弱了很多,并且高级开发中只充当用户界面部分。JSP容器收到客户端发出的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式响应给客户端。其中程序片段可以是: *** 作数据库、重新定向网页以及发送 E-Mail 等等,这些都是建立动态网站所需要的功能。所有程序 *** 作都在服务器端执行,网络上传送给客户端的仅是得到的结果,与客户端的浏览器无关,因此,JSP 称为Server-Side Language。
JavaServer Pages的主要优点包括
●一次编写,各处执行(Write once, Run Anywhere)特性
作为Java 平台的一部分,JavaServer Pages 技术拥有Java语言“一次编写,各处执行”的特点。随着越来越多的供货商将JavaServer Pages 技术添加到他们的产品中,您可以针对自己公司的需求,做出审慎评估后,选择符合公司成本及规模的服务器,假若未来的需求有所变更时,更换服务器平台并不影响之前所投下的成本、人力所开发的应用程序。
● 搭配可重复使用的组件
JavaServer Pages技术可依赖于重复使用跨平台的组件(如:JavaBean或Enterprise JavaBean组件)来执行更复杂的运算、数据处理。开发人员能够共享开发完成的组件,或者能够加强这些组件的功能,让更多用户或是客户团体使用。基于善加利用组件的方法,可以加快整体开发过程,也大大降低公司的开发成本和人力。
● 采用标签化页面开发
Web 网页开发人员不一定都是熟悉Java 语言的程序员。因此,JSP 技术能够将许多功能封装起来,成为一个自定义的标签,这些功能是完全根据XML 的标准来制订的,即JSP 技术中的标签库(Tag Library)。因此,Web 页面开发人员可以运用自定义好的标签来达成工作需求,而无须再写复杂的Java 语法,让Web 页面开发人员亦能快速开发出一动态内容网页。
今后,第三方开发人员和其他人员可以为常用功能建立自己的标签库,让Web 网页开发人员能够使用熟悉的开发工具,如同HTML 一样的标签语法来执行特定功能的工作。
● N-tier 企业应用架构的支持
有鉴于网际网络的发展,为因应未来服务越来越繁杂的要求,且不再受地域的限制,因此,
必须放弃以往Client-Server的Two-tier 架构,进而转向更具威力、d性的分散性对象系统。由于JavaServer Page 技术是Java 2 Platform Enterprise Edition (J2EE)集成中的一部分,它主要是负责前端显示经过复杂运算后之结果内容,而分散性的对象系统则是主要依赖EJB ( Enterprise JavaBean )和JNDI ( Java Naming and Directory Interface )构建而成。
(4)、JavaBean(Application)应用组件技术
Application是Java应用程序,在WEB项目和一些开发中主要应用JavaBean。它就是Application的一部分,逻辑运算能力很强,能极大的发挥Java语言的优点。JavaBean 被称为是Java 组件技术的核心。JavaBean 的结构必须满足一定的命名约定。JavaBean能提供常用功能并且可以重复使用,这使得开发人员可以把某些关键功能和核心算法提取出来封装成为一个组件对象,这样就增加了代码的重用率和系统的安全性。
高级的WEB项目会应用到以上所有技术,它们之间联合使用和协作开发会提高开发的效率和系统的性能。
2、面向对象分析设计思想
Java语言是完全面向对象的语言,所以在项目设计时会有很大的帮助,在设计时应尽量舍弃以往的面向过程的设计方式。
在分析项目业务关系的时候,应用一些UML(Unified Modeling Language)图,例如常用的用例图(use case diagram),类图(class diagram),时序图(sequence diagram)等等,会有很大的帮助,这样能尽快找出业务逻辑主要面对的对象,然后对每个对象进行行为划分,最后再实现对象之间的集成和通信。
3、设计模式和框架结构
Java从语言角度来讲不是很难,但是从整体设计角度来讲我们还需要了解一些高级应用框架。如果要设计一个良好的框架结构,单单只掌握Java语言远远不够。这就涉及到一个设计模式,还有和设计模式相关的一些知识。
设计模式在Java项目实施过程更是重中之重。主要在与两层的设计模式、三层的设计模式和N层的设计模式。它直接决定着项目的应用、部署和实际开发设计。
在普通的WEB项目中很多采用两层的开发结构。JSP+Servlet或JSP+JavaBean。当对开发要求高的项目中使用很多的还是MVC的三层开发结构,也就是JSP+Servlet+JavaBean。它能分有效的分离逻辑开发,使开发人员能专注于各自的开发。同时也能时整个开发结构流程更清晰,但是需要比较高的开发配合度。
在项目中,我们经常使用著名的Model-View-Controller(MVC)架构。MVC架构是随着smalltalk language语言的发展提出的,它是一个著名的用户界面设计架构。经典的MVC架构把一个组件(可认为是整个应用程序的一个模块)划分成三部分组 Model管理这个模块中所用到的数据和业务逻辑。而View 管理模块如何显示给用户,Controller 决定如何处理用户和该模块交互式时候产生的事件 如用户点击一个按钮等。
4、XML语言
在服务器和设计模式结构中会应用到自定义文件,而且在应用高级设计时也会定义自用的标签,现在流行的是用XML去定义配置,所以XML语言应该有一定掌握。
当前,Java 2平台企业版(J2EE)架构在厂商市场和开发者社区中倍受推崇。作为一种工具,可扩展标记语言(XML)简化了数据交换、进程间消息交换这一类的事情,因而对开发者逐渐变得有吸引力,并开始流行起来。自然,在J2EE架构中访问或集成XML解决方案的想法也很诱人。因为这将是强大系统架构同高度灵活的数据管理方案的结合。
XML的应用似乎是无穷无尽的,但它们大致上可以分为三大类:
1、简单数据的表示和交换(针对XML的简单API(SAX)和文档对象模型(DOM)语法解析,不同的文档类型定义(DTDs)和概要(schemas))
2、用户界面相关、表示相关的上下文(可扩展样式表语言(XSL),可扩展样式表语言转换(XSLT))
3、面向消息的计算(XML-RPC(远程过程调用),基于SOAP协议的Web 服务(Web Services),电子化业务XML(ebXML))
5、网页脚本语言
为了提高WEB项目的整体性能,提高人机交互的友好界面,网页的脚本语言是很有用处的,有的时候可以解决很大的难题或提高程序的性能和应用性。
网页脚本语言的执行都是在客户端执行的,速度很很快,并且大多的 *** 作与服务器没有交互运算,所以在一些应用中非常理想。在设计WEB项目的应用中,网页的脚本语言起着不能忽视的作用,所以如果设计WEB项目的应用中,对JavaScript应有一定的了解。
JavaScript是一种基于对象(Object Based)和事件驱动(Event Driven)并具有安全性能(Secure)的脚本语言。使用它的目的是与HTML超文本标记语言、Java 脚本语言(Java小程序)一起实现在一个Web页面中链接多个对象,与Web客户交互作用。从而可以开发客户端的应用程序等。它是通过嵌入或调入在标准的HTML语言中实现的。它具有以下几个基本特点:
1它是一种脚本编写语言
JavaScript是一种脚本语言,它采用小程序段的方式实现编程。像其它脚本语言一样,JavaScript同样已是一种解释性语言,它提供了一个易的开发过程。
它的基本结构形式与C、C++、VB十分类似。但它不像这些语言一样,需要先编译,而是在程序运行过程中被逐行地解释。它与HTML标识结合在一起,从而方便用户的使用 *** 作。
2 基于对象的语言。
JavaScript是一种基于对象的语言,同时以可以看作一种面向对象的。这意味着它能运用自己已经创建的对象。因此,许多功能可以来自于脚本环境中对象的方法与脚本的相互作用。
3简单性
JavaScript的简单性主要体现在:首先它是一种基于Java基本语句和控制流之上的简单而紧凑的设计, 从而对于学习Java是一种非常好的过渡。其次它的变量类型是采用弱类型,并未使用严格的数据类型。
4安全性
JavaScript是一种安全性语言,它不允许访问本地的硬盘,并不能将数据存入到服务器上,不允许对网络文档进行修改和删除,只能通过浏览器实现信息浏览或动态交互。从而有效地防止数据的丢失。
5 动态性
JavaScript是动态的,它可以直接对用户或客户输入做出响应,无须经过Web服务程序。它对用户的响应,是采用以事件驱动的方式进行的。所谓事件驱动,就是指在主页(Home Page)中执行了某种 *** 作所产生的动作,就称为“事件”(Event)。比如按下鼠标、移动窗口、选择菜单等都可以视为事件。当事件发生后,可能会引起相应的事件响应。
6、开发工具
(1)、数据库
在主要的应用中,数据库相关的环节应用很多,所以对数据库应该有一定了解。不能单单只了解一种数据库,因为在很多实际开发中会提出很多数据库解决方案,所以只有在了解多种数据库的情况下才能有一个比较方案。
对于数据库应该了解他的性能和一些基本的 *** 作常识,还有该数据库的特点。而针对与Java语言WEB项目的数据库开发则主要是对JDBC的应用,还有数据库事务处理和连接池等高级概念的应用。
(2)、Web服务器
同数据库一样,应该了解该服务器的性能,特点和一些常识。
在应用方面,Web服务器主要是针对于配置和部署,对目录的配置,调试;对配置文件属性的修改;对访问权限和并发性的控制;Java类的部署等。
(3)、集成开发环境(IDE):
“公欲善其事, 必先利其器” 对于Web应用开发人员来讲,好的集成开发环境(IDE:Integrated Development Enviroment)是非常重要的。目前在市场上占主导位置的一个集成开发工具就是Eclipse
1php即写即用的。
也就是说每次只有一改动完成,用户立马看到效果,而java则慢多了,代码改动完成后,要重新编译,然后重启jvm,中间耗费的时间可是不少啊,而且重启jvm过程可是会造成用户响应中断的哦。
2php写东西快。
php可以说是非常敏捷的,一个需求给到,只要不考虑后期的性能和用户量问题,那是相当快速的,甚至你都可以不用框架,直接写也会非常快的,写一个增删改查功能,可能也就30-50行代码就搞定了。而java就慢多了,首先要想一下用什么框架,目前基本上就是spring了,然后就是配置各种数据库,过滤器,servlet,决定是用mybatis还是hibernate,然后考虑代码之间的传递,然后考虑事务。。。然后不停调试,一改代码可能就是几分钟的等待时间,可想而知。
3php的表面思路更清晰。
什么是表面思路,就是你看到的东西就是真正做出来的东西,比如echo"helloworld",就是输出helloworld,而java则不同,你可能是写response中,可能是写在modelattribute中,也可能就是return了该字符串,然后不知道怎么的,它就显示到页面上了。
4php占用内存少。
php是进程式处理问题的,占用内存相当少,可以说,你在一台机器部署50个项目没有任何问题,只要访问量不上来,搞得定。而java就不行了,java每启动一个项目,本身就得耗尽许多内存,比如在一台8g内存的机器上,一般跑上2个项目就差不多了。
说了这php的好处,难道java就没有好处吗?那是不可能的。
1java组件多。
我个人觉得单是这一点就盖过其他所有优点了,因为组件多,意味着用的人多,群众的眼睛是雪亮的。所以,java一定是好的,它已经积淀了太多的东西,不是一门新型语言能够随便替代的。你想要做什么,好好搜索java组件,可能都有你需要的功能,特别对于当下最流行的大数据产业,java更是占据一方。而php在这种场景就有点无能为力了。
2java线程池,连接池,异步化方便。
其实这一点和第一点也很相似,也是因为组件多,所以要使用线程池连接池都很方便,这对于高并发高性能的场景来说,是绝对必要的。因为java的运行原因就是多线程的,所以不用每次都去初始化很多基本的东西,这省去了太多的时间,也因此大家可以忍受服务器启动的缓慢过程,因为只有一次。而php则是多进程的,每次都需要重新加载所有需要的代码,也因此无法将一些常用数据保存在内存,连接池也不大好做,异步 *** 作更是一个大短板。
3java是真正意义上的逻辑清晰。
因为,java中,你可以从一个进入可以借助IDE工具分析到最深层次的逻辑 *** 作,对于每个字段,都可以清晰明了,这其实是接口和完全对象的一个使用优点。而php则做不了或者说很少有人费那劲去做这种事情,php可以说是半面向对象半面向过程开发,所以,在调用过程中插入几个自定义的函数调用是很正常的,那么你再想通过简单的IDE去分析调用链就不那么容易了。比如,对于第三方提供的接口,php就很难清楚的看出接口返回了什么,除非你把它打印出来,但是打印出来也不一定对,因为有些返回值的数据不一定有体现。这对于理解代码来说,增加了一个大大的门坎。
4虽说java编译比较烦,但是可以为你提前发现错误。
java的编译的确比较耗时,但是如果有明显的错误,编译是不会通过的,这就给你一个重新检查代码的机会。而php则不会,不管你写得多烂,都不会给你提示什么,而许多时候,往往就因为少写了个;分号,导致你排查数小时。
5java远程调用方便,rmi,hessian,bbo。
不管怎么样,远程和本地调用都很方便的知道相关的信息,而且java的同语言调用不是采用纯粹的>
其实没有问题是没有绝对的好坏的,存在即合理。只是应用场景不一样罢了。
开发基于Java技术的Web用户界面一直存在着开发难度较大 效率较低的问题 Sun公司提出的一种新标准框架Java Server Faces (JSF) 可以很好地解决上述问题 在第三方RAD开发工具支持下 可以实现Web应用实例的可视化开发 本文详细讨论了如何利用JSF 开发Web用户界面 最后分析了JSF 技术的优缺点及其应用前景
与微软Visual Studio NET程序开发有可视化工具的支持相比 人们在开发基于Java的Web用户界面时仍然需要手工书写大量的标签 同时还要考虑页面状态信息的保存 客户端事件处理等问题 开发难度比较大 效率较低 重用性差 Java Server Faces (JSF) 技术正是为了解决这一问题应运而生的 其最引人注目的特性之一是它与标记语言 协议 客户端设备无关 利用JSF提供的可重用 可扩展 基于组件的用户界面框架 在快速开发工具RAD的支持下实现可视化开发 现在JSF技术已经得到了许多大厂商的支持 如SUN公司的JSF Web UI IBM公司的JSF extension以及Oracle的 ADF Faces等 许多开源项目(典型的Apache Myfaces)也提供对JSF技术的支持 同时Oracle Sun Borland和IBM等公司都为JSF提供了开发环境
传统JSP开发存在的问题
实现表示层和业务层的分离 这是J EE Web应用一直以来的理想 可惜JSP 并没有真正实现这个目标 JSP是一个基于Java的Web用户界面开发标准技术 是一种 脚本式 开发的Web技术 在JSP 页面中混淆了大量用于显示逻辑的HTML 和用于业务逻辑的Java 代码 使得页面设计与程序开发无法分离;JSP另一个更大的缺陷是脚本不能重用 这常常导致开发者不得不在JSP页面之间进行复制 粘贴 *** 作 进而导致同一段代码出现多个版本 从而使得程序的调试和设计极其错综复杂 而标签库TagLib作为JSP的补充 将Java代码从JSP中剥离 也只是有限地实现了表现与逻辑的分离 始终没有摆脱代码和HTML页面揉和的问题 此外 JSP还存在着其他固有的缺陷 例如对应Servlet编译的出错信息很难在JSP 中找到准确的出错位置 由此给调试带来很大困难
JSF技术介绍
在Sun公司提出的J EE(Java Enterprise Edition)平台上 Java Server Faces (JSF) 是一种用于构建Web应用程序的新标准Java框架[ ] 它提供了一种以组件为中心来开发Java Web用户界面的方法 从而简化了开发 企业开发人员 和Web设计人员将发现JSF开发可以简单到只需将用户界面 (UI) 组件拖放到页面上 而 系统开发人员 将发现丰富而强健的JSF API为他们提供了无与伦比的功能和编程灵活性 JSF还通过将良好构建的模型 视图 控制器 (MVC)设计模式集成到它的体系结构中 确保了应用程序具有更高的可维护性
JSF是由Java Community Process (JCP)制定的一个Web应用框架标准 JSF具有良好定义的请求处理生命周期和丰富的组件层次结构 旨在推动基于Java的Web用户界面开发的简易性 利用JSF提供的可重用 可扩展 基于组件的用户界面框架 在快速开发工具RAD的支持下 可以通过拖放组件的方式对Web用户界面进行可视化编辑 将用户界面上的组件与一个数据源绑定 并将客户端用户界面产生的事件交给服务器端处理 从而大大降低基于Java的Web用户界面的开发难度 提高开发效率
Java Server Faces技术包括两个主要部分
( ) 一组用于表示用户界面组件并管理其状态 处理事件和验证输入的JavaAPI 这些API支持国际化和可访问性(accessibility);
( ) 一个用于在JSP页面中表示JSF 组件的自定义标签库
简而言之 JSF的主要部分是一个GUI组件框架和一个用于跨不同标记语言或客户端设备描述组件的灵活模型 JSF GUI组件框架使开发人员能够创建JSF应用程序的用户界面 JSF GUI组件包括标准的HTML表单控件(如按钮) 布局组件 以及更复杂的组件 如数据表 此外 第三方还可以扩展规范中定义的基本类 来开发额外的GUI组件
JSF 组件的体系结构是这样设计的 组件的功能由组件类定义 组件的呈现由一个单独的呈现器(renderer)定义 呈现器定义了组件类如何映射为适合特定客户的组件标签 JSF 参考实现中包含了一个标准的RenderKit 用于生成基于HTML 的标记 实现将组件类呈现给HTML客户
lishixinzhi/Article/program/Java/hx/201311/25609
以上就是关于java web servlet 调用 dao层方法 总出错 !!!!新手求解,多谢!!!全部的内容,包括:java web servlet 调用 dao层方法 总出错 !!!!新手求解,多谢!!!、java web的项目需求怎么写、现在开发网站,好像都是流行用php,那javaweb一般用在哪里呢它们之间的区别和优劣势在哪里呢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)