




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中间件技术1课程内容概述J2EE架构基础Servlet、JSP、EJB开发J2EE应用部署J2EE应用开发架构实例2软件开发技术的发展基于主机的系统两层的Client/Server系统三层(n层)体系架构表示层业务逻辑层数据层基于Web的三层(n层)体系架构3中间件技术最早具有中间件技术思想及功能的软件是IBM在60年代开发的CICS(CustomerInformationControlSystem)。80年代初期,SunMicrosystems开发了一种最早的中间件,作为其开放网络体系结构的一部分,这种中间件是基于RPC协议的。但由于CICS不是分布式环境的产物,而SunMicrosystems开发的不是完整的中间件产品,因此人们一般把Tuxedo作为第一个严格意义上的中间件产品,Tuxedo是在1984年由AT&T的贝尔实验室开发完成的。到90年代,中间件技术得到了巨大的发展和广泛的应用,出现了大量具有广泛影响的中间件产品,如OMG的Corba、Microsoft的DCOM/COM+、IBM的MQS等。4中间件技术中间件是基础软件,处于操作系统(或网络协议)与分布式应用之间,从而屏蔽操作系统(或网络协议)的差异,实现分布式异构系统之间的互操作。目前,对中间件还没有形成一个统一的定义,比较公认的IDC的定义是:中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。5中间件技术分类:消息中间件(MOM:Message-OrientedMiddleware)数据库中间件(DatabaseMiddleware)远程过程调用中间件(RPC:RemoteProcessCall)对象请求代理中间件(ORB:ObjectRequestBroker)事务处理中间件(TPMonitor:TransactionProcessMonitor)J2EE中间件6企业级应用的要求分布式可移植面向Web体系满足企业计算要求一致性事务性安全性好的特性可伸缩可扩展易维护遗留系统集成以上要求需要一个良好的基础架构来支持7企业级应用环境8什么是J2EE?
Java2Platform,EnterpriseEdition(J2EE)Openandstandardbasedplatformfordeveloping,deployingandmanagingn-tier,Web-enabled,server-centric,andcomponent-basedenterpriseapplications运用Java技术开发企业应用的标准包括了多层应用开发模型开发平台-APIs和服务测试软件包参考实现将所有Sun的企业技术集合在一个体系结构下的平台特定版本下的EJB,Servlet,JSPJavaWebServerJNDI,JDBC,JTA,JMS,JavaMail,CORBA…9Java2Platform10J2EE可可以提提供什什么分布式式、可可移植植构件件的框框架简化服服务器器端中中间层层构件件的设设计为构件和应应用服务器器提供标准准API11J2EE可可以为开发发者和用户户带来更短的开发发时间可重用组件件JSPEJB自由的选择择基于开放的的标准简化的连接接XML,JDBC,,RMI-IIOP,WebService12J2EE技技术架构构任何平台Java虚拟机J2EEFramework安全组件组件组件组件JCAebXMLJTAJMS…13BrowserServletor
JSPContainersEJBServerBCHTTPEntity
BeanHOMEREMOTESession
BeanHOMEREMOTEDataADataJDBCRMI/IIOPJDBCAppServerJ2EE应应用体系系结构14J2EE是是端到端的的解决方案案15N层J2EE体系架架构16J2EE主主要技术概概览展示层––ServLet/JSP中间层––EJB中间层可用用的企业服服务事务服务JTA目录服务JNDI消息服务JMS异步组件Message-DrivenEJB数据层-JDBC远程调用––RMI/IIOP使用现有资资源-JCA17J2EE1.4Contents18.Net与与J2EE的比较较WS-IWindowsCLR.NET安全适配器编排服务企业服务消息队列LinuxJVMJ2EESecurityJCAebXMLJTAJMS……19Web架架构:J2EEvs.NET表示层业务逻辑层层数据层J2EECLR.NETAssemblyADO.NET(可使用COM+服务;比如事事务)Web表表单Server控件件Code-BehindASP.NETIISJavaBeansEJBsJSPServlets可运行于大大多数主要要应用及Web服务务器支持大多数数数据库(通过JDBC驱动程程序)J2SE/EEJDBC(事务使使用JTA).NETSQLServerOracleDB/2,etc.SQLServerOracleDB/2,etc.状态:ASP.NETSession,
.NET数据据缓存状态:封封装于EJB中中,也可可在在WebSessions中中20J2EE/.NET主主要要技技术术比比较较JDBCJTAJNDIJMSJavaMailRMI/IIOPJAFADO.NET.NETTransactionActiveDirectory.NETMessagingSmtpMailWebService/Remoting.NETJIT21技术的成熟熟性MicrosoftJ2EE199619971998199920002001MSXMLJAXPASPJSPMTS/COM+EJBODBCJDBCMar1992ADSIJNDIQCMDBLCEMMCWinDNAJ2EEMSMQJMSVS.Net.Net22J2EE的移植植性与互互操作性性理论上J2EE应用可可以采用用多个厂厂商的产产品只要符合合J2EE的标标准实际情况况J2EE标准不不完整,,如WebServiceJ2EE的技术术需改进进,如EJB各厂商发发展各自自的技术术不同产品品很难协协同和移移植J2EE可选择择同一厂厂商支持持的不同同操作系系统23.Net的移植植性与互互操作性性理论上.Net应用可可移植到到任何平平台CLS提交给给标准化组织织只要支持CLR实际情况只有Windows/FreeBSD.Net支持持WebService可以使用任何何平台运行的的WebService任何平台可使使用.NetWebService24技术比较结论论.Net和J2EE应用用有着相似的的架构.Net和J2EE有相相应的主要技技术.Net所有有技术来自MicrosoftJ2EE的技技术有多个厂厂商的实现.Net和J2EE可以以满足大多数数应用的需求求主要的差别不不在技术的可可行性上开发效率性能成本稳定性25开发工具JBuilder商用功能完备EclipseOpenSource插件丰富myEclipse版本管理CVS26J2EE应应用开发编写和编译组组件代码Servlet,JSP,EJB编写组件的部部署描述符把组件装配成成可部署的软软件包将软件包部署署到J2EE应用服务器器上27部署描述符提供容器如何何管理和控制制J2EE组组件行为的操操作指令事务性安全性持久性通过配置实现现组件行为的的定制(不不需要通过代代码进行定制制)XML文件使代码具有可可移植性2829应用服务器介介绍应用服务器是是非常重要的的企业软件,,为现代业务务系统提供了了应用基础结结构。应用服务器源源自支持与其其它系统共享享数据和资源源的应用,以以及为Web页面和其其它用户界面面生成动态信信息的需求。。它在在Web服服务务器器与与底底层层应应用用和和数数据据库库之之间间形形成成了了新新的的功功能能和和服服务务层层30应用服务务器实现现的功能能负载均衡衡故障容错错Web服服务网络透明明遗留集成成事务管理理安全性消息多线程持久性数据库连连接资源合并并开发、测测试和封封装功能能……31J2EEContainers&Components32容器与组组件容器处理理组件处理理一致性安全性可获得性性可伸缩性性事务性分布性生命周期期管理(持久性性)表示JSP,Servlet,Applet业务逻辑EJB数据访问逻辑辑EJB应用系统访问问Webservice33应用服务器器产品BEAWebLogicIBMWebSphereSunJavaSystemApplicationServerOracle9i/ASJBossTomcat(不支支持EJB)Resin34Web服务务器模型/CGI/ServletWeb服务务器模型CGI/ServletServersidemoduleisapimod_perlServersidescriptphpaspjsp35ServletServlet是Java技技术对CGI编程的的回答。Servlet程序序在服务器器端运行,,动态地生生成Web页面。与与传统的CGI和许许多其他类类似CGI的技术相相比,JavaServlet具有有更高的效效率,更容容易使用,,功能更强强大,具有有更好的可可移植性,,更节省投投资。高效方便可移植性好好节省投资36Servlet开发发如果某个类类要成为Servlet,则则它应该从从HttpServlet继继承,根根据数数据是通过过GET还还是POST发送,,重载doGet、、doPost方法法之一或全全部。doGet和doPost方方法都有两两个参数,,分别为HttpServletRequest类型型和HttpServletResponse类型。。HttpServletRequest提供访访问有关请请求的信息息的方法,,例如表单单数据、HTTP请请求头等等等。HttpServletResponse除了了提供用于于指定HTTP应答答状态(200,404等))、应答头头(Content-Type,Set-Cookie等)的方方法之外,,最重要的的是它提供供了一个用用于向客户户端发送数数据的PrintWriter。对于简单的的Servlet来来说,它的的大部分工工作是通过过println语语句生成向向客户端发发送的页面面。必须导入java.io包((要用到PrintWriter等类类)、javax.servlet包包(要用到到HttpServlet等等类)以及及javax.servlet.http包((要用到HttpServletRequest类和HttpServletResponse类))。doGet和doPost这这两个方法法是由service方法调调用的,有有时你可能能需要直接接重载service方法,,比如Servlet要处理理GET和和POST两种请求求时37JSPTechnologyJavaServerPages((JSP))是一种实实现普通静静态HTML和动态态HTML混合编码码的技术。。JSP并没没有增加任任何本质上上不能用Servlet实现现的功能。。但是,在在JSP中中编写静态态HTML更加方便便,不必再再用println语句来来输出每一一行HTML代码。。更重要的的是,借助助内容和外外观的分离离,页面制制作中不同同性质的任任务可以方方便地分开开:比如,,由页面设设计专家进进行HTML设计,,同时留出出供Servlet程序员插插入动态内内容的空间间。JSP一般般在Web服务器端端被编译成成Servlet后后执行通过定制的的Tag实实现扩展38JSPConstructs1JSP文件件有固定的的文件名后后缀.jsp注释<%--注注释--%>Declaration<%!intx=0;%>Expression<%=expression%>向Response流中输出出数据类似于在浏浏览器中执执行print在表达式语语句后面不不能有分号号Scriplets–包包含java代码<%代码码片段%>39JSPConstructs2<%if(value.getName().length!=0){%><H2>Thevalueis:<%=value.getName()%></H2><%}else{%><H2>Valueisempty</H2><%}%>所有JSP页面中都都隐含存在在几个固有有的对象“request””–Browser’sRequestObjectUsetogetHTTPheaders,lengthetc..“response”-HttpResponseObject40JSPConstructs3“session””–internalHttpSessionObject“pageContext””“application””“out””,sameas<%=%>“config”––servletconfiguration“page”“exception”JSPDirectives是针对JSP的指示示41JSPConstructs4不会产生任任何输出“page”directive<%@pageimport=““java.io.*”%>通常用来引引入java类的路路径“include””directive<%@includefile=“header.htm””%>用来包含一一些静态文文件“taglib”––列出出标签库描描述文件的的位置在使用特定定标签库的的时候需要要42在Web应应用中使用用JavaBeans一般用来实实现数据传传递和业务务组件与JavaBeans在Swing和AWT中的用法法相似必须没有构构造函数或或者构造函函数没有参参数每个Bean属性都都必须有setter和getter方法JSP标签签也使用JavaBean43JSPActionsJSPactions是一一些会影响响输出流的的特殊标签签,通常用用在JavaBean上常用的JSPaction<jsp:useBean>,<jsp:getProperty>,<jsp:setProperty>以下代码用用来在输出出流中显示示studentbean的lastName属性<jsp:useBeanid="student"scope="request"class="StudentValue"/><jsp:getPropertyname="student"property="lastName"/>44JDBC提供访问关关系型数据据库的标准准JavaAPI使用SQL对于Java编程API的实实现由各厂厂商实现,,针对不同同数据库编编写不同的的驱动程序序。45JDBC的的目标SQL-Level100%纯纯Java简单高效利用现有有的数据据库技术术提供多种种方法简简化不同同功能需需求的代代码46JDBC体系系架构ApplicationJDBCDriverJava代码码调用JDBC库JDBC装载驱驱动驱动与特特定数据据库连接接可以使用用多个驱驱动,也也可以使使用多个个数据库库可以在不不修改程程序代码码的情况况下更换换要使用用的数据据库47JDBCDriversTypeI:“Bridge””TypeII:““Native”TypeIII:““Middleware””TypeIV:““Pure”48JDBCAPIJDBC的实实现类在在java.sql包包中,需需要在程程序中通通过import语句句引入49DriverManagerDriverManager试用用各种驱动使用第一个可可以正确使用用的驱动一个驱动类装装载时,自动动在DriverManager中中注册Class.forName(“org.gjt.mm.mysql.Driver”);Connectionc=DriverManager.getConnection(...);50JDBC对象象类DriverManager装载载、、选选择择驱驱动动Driver连接接实实际际数数据据库库Connection连接接数数据据库库的的对对象象Statement执行行独独立立的的SQL语语句句ResultSetStatement返返回回的的结结果果集集51JDBC类类的的使使用用DriverManagerDriverConnectionStatementResultSet52JDBCURLjdbc:subprotocol:source不同的驱动有有不同的URL写法jdbc:odbc:DataSource例如jdbc:odbc:Northwindjdbc:mysql://host[:port]/database例如jdbc:mysql://localhost/accounting53DriverManagerConnectiongetConnection(Stringurl,Stringuser,Stringpassword)与给定的JDBCURL连接,并并使用user和password参数可能产产生java.sql.SQLException返回一一个Connection对象象54ConnectionConnection对对象表表示和和一个个特定定数据据的连连接会会话SQL语句句在Connection环环境里里执行行并得得到返返回结结果可以创创建到到一个个数据据库的的多个个Connection连接接在Connection中有有一些些方法法能够够得到到数据据库的的metadata信息息,如如数据据库中中表结结构和和字段段属性性在Connection还有有保证证数据据库事事务的的方法法55获得一一个ConnectionStringurl=““jdbc:mysql://localhost/test";try{Class.forName("org.gjt.mm.mysql.Driver");Connectioncon=DriverManager.getConnection(url,”root””,””root”);}catch(ClassNotFoundExceptione){e.printStackTrace();}catch(SQLExceptione){e.printStackTrace();}56StatementStatement对对象象用用来来执执行行SQL命命令令并并获获取取相相应应的的结结果果Statement对对象象的的主主要要方方法法ResultSetexecuteQuery(String)ExecuteaSQLstatementthatreturnsasingleResultSexecuteUpdate(String)ExecuteaSQLINSERT,UPDATEorDELETEstatement.Returnsthenumberofrowschanged.booleanexecute(String)ExecuteaSQLstatementthatmayreturnmultipleresults.57ResultSetResultSet用用来来访访问问Statement对对象象执执行行后后得得到到的的数数据据结结果果集集每个Statement每次只能打打开一个ResultSet数据库表中的的记录按顺序序获取ResultSet对象象维护一个指指向当前记录录的游标Next方法法把游标指向向下一个记录录新的JDBC中允许游标标指向上一个个记录,有部部分支持高版版本JDBC规范的驱动动程序可以支支持这个功能能58JDBC类图图59EnterpriseJavaBeans(EJB)是是:Java服务务器端服务框框架的规范,,软件厂商根根据它来实现现EJB服务务器。应用程程序开发者可可以专注于支支持应用所需需的商业逻辑辑,而不用担担心周围框架架的实现问题题。EJB容器是是:一个管理一个个或多个EJB类/实例例的抽象。它它通过规范中中定义的接口口使EJB类类访问所需的的服务。容器器厂商也可以以在容器或服服务器中提供供额外服务的的接口。EJB服务器器是:管理EJB容容器的高端进进程或应用程程序,并提供供对系统服务务的访问。EJB服务器器也可以提供供厂商自己的的特性,如优优化的数据库库访问接口,,对其他服务务(如CORBA服务))的访问。一一个EJB服服务器必须提提供对可访问问JNDI的的名字服务和和事务服务支支持。什么是EJB60EJB架构61EnterpriseJavaBeans有有三种类型:EntityBeans代表数据在服务器重启启后仍然存在在可以通过EJBcontainer(“CMP”)或或者程序(“BMP”)持续续化到数据库库SessionBeans执行动作等价于‘一般般’的Javaobject,只不过是是在远程可以是stateless(是是原子操作),或stateful(在在一个context中执行一系系列的操作)MessageDrivenBeanEJB介绍62EnterpriseJavaBeans63EJB介绍EJB服务器器和容器64EJB介绍EJB容器的的责任65业务数据模型型对业务概念的的反映,也称称为领域类((domainclass)在持久存储中中业务实体的的对象视图提供访问和操操作数据的对对象封装支持多用户共共享的数据可以从数据库库中存储的属属性重新实例例化EJB服务务器崩溃后仍仍可重构与数据库中的的数据有一样样长的生命EJB介绍实体bean(EntityBean)66Bean-ManagedPersistence(自自管理的持久久性)优点:开发者有完全全的控制无需复杂的提提供商支持缺点:编码复杂在在改变时需要要重新编码和和部署影响可移植性性Container-ManagedPersistence(容容器管理的持持久性)优点点::提供供商商解解决决,,可可能能会会有有更更好好的的缓缓冲冲和和性性能能在部部署署描描述述符符中中进进行行改改变变即即可可可可移移植植性性好好缺点点::对容容器器提提供供商商的的工工具具依依赖赖性性强强可能能不不易易反反映映复复杂杂的的数数据据关关系系EJB介介绍绍实体体bean的的持持久久性性67会话话bean经经常常用用于于涉涉及及多多个个实实体体bean的的业业务务处处理理和和控控制制逻逻辑辑SessionEntityEntityEntityEJB介介绍绍会话话bean(SessionBean)(1)68相对对生生命命较较短短((一一般般与与客客户户同同步步))在EJB服服务务器器崩崩溃溃时时被被删删除除不表表示示数数据据库库中中的的数数据据,,但但可可以以访访问问数数据据作为为一一个个客客户户的的代代表表执执行行功功能能可以以加加入入事事务务EJB介介绍绍会话话bean(SessionBean)(2)69使用用会会话话bean对对针针对对于于某某一一客客户户的的处处理理或或控控制制对对象象建建模模对工工作作流流、、任任务务和和管管理理活活动动等等建建模模((如如订订房房、、购购物物车车等等))协调调多多个个实实体体bean,,控控制制实实体体bean之之间间的的交交互互将业业务务应应用用逻逻辑辑从从客客户户端端转转移移到到服服务务器器端端EJB介介绍绍何时时使使用用会会话话Bean70会话话bean表示示一一个个业业务务过过程程每一一客客户户一一个个实实例例Short-lived::与与客客户户生生命命同同步步暂态态的的服务务器器崩崩溃溃后后丢丢失失可以以是是事事务务性性的的实体体bean表示示业业务务数数据据在多多个个客客户户间间共共享享实实例例Long-lived::与与数数据据库库中中数数据据同同步步持久久的的服务务器器崩崩溃溃后后可可重重构构总是是事事务务性性的的EJB介介绍绍会话话Bean??实实体体Bean??71无状状态态((Stateless))bean表达达一一个个无无状状态态的的服服务务((如如列列表表,,mail))不存存储储用用户户相相关关信信息息,,进进行行对对请请求求的的响响应应暂态态的的可用用来来构构造造响响应应频频繁繁而而简简单单的的访访问问的的bean池池有状状态态((Stateful))bean维护护客客户户状状态态EJB介介绍绍两种种类类型型的的会会话话bean72JNDIJavaNamingandDirectoryInterfaceJ2EE应用用利用JNDI来定位资资源和对象,,使软件更容容易移植应用程序通过过JNDI用用符号名称查查找关联资源源的对象符号名称和对对象之间的关关联由系统管管理人员在应应用程序部署署时配置JNDI的使使用InitialContextic=newInitialContext()ic.lookup(““resourcename”)73J2EEWeb目录结结构顶层目录通常常是上下文路路径如:应用目录录/tomcat/webapps/servletdemo通常情况下URL应为http://localhost:8080/servletdemo包含JSP、、其他静态内内容和WEB-INF目目录/WEB-INF目录这是一个受保保护的目录,,不能浏览这这个目录下的的文件/classes–未未打包的java类,,会自动加到到CLASS_PATH中/lib––web应应用中的jar文件74Web应用部部署结构ProjectFolderWEB-INFclassespackage1package2libJSPfilesHTMLfilespicturesweb.xmlDeploymentdescriptor75部署结构说明明*.html,*.jsp等Html、jsp和其他他需要被客户户端访问的文文件WEB-INF/web.xmlWeb应用部部署描述符WEB-INF/classes编译后的java类文件件(包括servlet和非servlet)WEB-INF/libWeb应用需需要的JAR文件,包括括JDBC驱驱动程序等第第三方模块76Web部署署描述符/WEB-INF/web.xmlJ2EE标准准的一部分定义一个web应用中的的servlet给servlet和URL之间作映映射一个servlet可以以映射到多个个URL上定义web应应用中可以使使用的资源定义安全定义其他内容容设定Welcomefile列表表设定会话超时时错误页面映射射77Web应用打打包(WAR)J2EE规范范定义了如何何把一个web应用归档档成一个webapplicationarchive(WAR)WAR文件后缀为.war的Java归档文件件用zip格式式打包符合J2EE规范的应用用服务器都可可以正确识别别WAR文件直直接部署在Tomcat等应用服务务器上78J2EE应应用结构EJBsWebcomponentEJBDDEJBclassRemoteclassHomeclassWebDDJSPfilesServletClassPictures(GIF/JPG)HTMLfilesJ2EEApplicationJ2EEDD.warfile.earfile.jarfile79J2EE标标准部署描描述符EnterpriseArchive(ear)fileApplication.xml在META-INF目目录下JavaArchive(jar)fileejb-jar.xml在META-INF目目录下WebArchive(war)fileweb.xml在WEB-INF目录录下80J2EE设设计模式(JSP为为中心)优点非常容易结结合业务逻逻辑(JSP:UseBean)、服服务器处理理过程和HTML(<html>),,在JSP页面中同同时实现显显示、业务务逻辑和流流程控制,,从而快速速完成应用用开发缺点应用的实现现一般是基基于过程的的,一组JSP页面面完成一个个业务流程程,如果要要进行改动动,必须在在多个地方方进行修改改。这样非非常不利于于应用扩展展和更新。。由于应用不不是建立在在模块上,,业务逻辑辑和表示逻逻辑混合在在JSP页页面中,没没有进行抽抽象和分离离。不利于于应用系统统业务的重重用和改动动。81J2EE设设计模式(MVC框框架)表示与逻辑辑分开View––表示示:显示输输入输出数数据(可可以是HTML,,jsp,,也可以是是一个windows应应用)Model–业业务逻辑和和数据:基基于输入和和定义的业业务流程执执行计算或或其它操操作(javabeanorejb)Controller–协协调view和和model,在在它们之间间交换数据据(actionorservlet)databasesViewControllerModel82J2EE设设计模式MVC的的隐含式J2EE实现View由由JSP和HTML页面组组成Servlet可可以同时是是controller和和model直接存取数数据MVC实实现方法183J2EE设设计模式将业务逻辑辑处理放在在Servlet之外HttpServlet的的子类应该该仅做servlet份份内的工作作管理request、response及及HttpSession对象将业务逻辑辑写在传统统的Java类仅传送普普通的Java类类,不是是servlet相相关的的类(例例如request,response或或session))比servlet容易开发发、测试试和重用用MVC实实现方方法2databaseJSPsservletsobjects84典型的J2EE方方案View由JSP和和静态态HTML组组成Controller是servletModel是是EJB很象使用用传统的的Java对对象––只只是运行行在远程程J2EE设计模模式MVC实实现方方法3databasesJSPsservletsEJBs85典型的Struts方方案View由JSP和和静态态HTML组组成Controller是StrutsModel是是EJB或javabeanJ2EE设计模模式MVC实实现方方法4databasesJSPsstrutsEJBsJavaBean86应用实例例SunBlueprintPetStoremyPetStore-EJBversionJPetStore––struts+iBatis87大多数J2EE应用共共享许多多任务:日志,数数据库库存取,数据据校验,属性性管理,异常常操作,生成成HTML…不要在每每一个项项目中重重写这些些不要在同同一个项项目用不不同的方方法做这这些!一个““framework”设设定通用用的方式式去做这这些工作作–通通过重重用代码码(和和技能!)可能是内内部框架架(通通过以前前的项目目)可能是外外部框架架(e.g.JADE)技巧使用框架架88可以被缓缓存并可可以被所所有用户户共享InitialContextobjectJNDIEJBHomeinterfaces所有用用户都都一样样可以被被单独独的用用户缓缓存Databaseresultsets例如,,当你你一次次只显显示部部分数数据时时,缓缓存查查询结结果可以在在servlet中中缓存存,可可以以在sessionbean中中缓存存技巧尽可能能缓存存对象象89init()做做尽可可能多多的工工作只在初初始化化是执执行一一次尽可能能少地地使用用Synchronize确保不不要synchronize整整个个类不要用用任何何实例例变量量将被所所有在在线的的用户户使用用不要使使用SingleThreadModel虽然是是thread-safe,但但性性能太太差……对于非非Java群群体体:不不要要在cookies中中存存对象象使用HttpSession代替技巧Servlet技技巧90保持尽尽量少少的Java代代码JSP中的的Java代码码很难难维护护和测测试绝对不不要将将业务务逻辑辑放在在JSP中中编写h
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 生物化学分子基础概念题库及解析
- 珠宝首饰行业设计大赛试题
- 药品进口代理协议
- 2025年经济师备考方法分享试题及答案
- 人员管理与绩效考核试题及答案
- 项目扩展及合作策略试题及答案
- 信阳市学法用法考试试题及答案
- 防钓鱼测试题及答案
- 急诊精神科的合作模式计划
- 购房贷款协议书
- 食堂员工培训管理制度
- 2025第四届全国节约用水知识大赛题库附答案(105题)
- 跨学科实践;自行车-2024-2025学年教科版物理八年级下册教学同步课件
- 辅助运输管理规定
- 超星尔雅学习通《新媒体概论(浙江传媒学院)》2025章节测试附答案
- 2025-2030中国光芯片行业市场发展现状及竞争格局研究报告
- 《工业机器人仿真技术应用》课件-项目四 工业机器人涂胶工作站的仿真应用
- 高++中语文++高考复习+语言文字运用之错别字
- 企业法律诉讼应急预案
- 中医养生学沐浴养生讲解
- CNAS-GL040-2019 仪器验证实施指南
评论
0/150
提交评论