基于JEE的软件开发讲义.ppt_第1页
基于JEE的软件开发讲义.ppt_第2页
基于JEE的软件开发讲义.ppt_第3页
基于JEE的软件开发讲义.ppt_第4页
基于JEE的软件开发讲义.ppt_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于J2EE的软件开发讲义,四川华迪信息技术有限公司Version1.0,2019/11/21,Hwadee,2,Overview,课程介绍J2SE基础及开发简介J2EE基础相关IDE简介JDBC简介Web开发-基于Servlet、JSP和Bean的B/S架构的软件系统实现设计模式框架的应用,课程介绍,2019/11/21,Hwadee,4,关于本次课程,课程目标预备知识目标听众日程表词汇表,2019/11/21,Hwadee,5,课程目标,了解J2EE平台及其多层体系结构;明确Web层和业务层中servlet、JSP和bean的技术概念及JDBC数据库技术;掌握基于java的Web开发技术。,Hwadee,6,预备知识,了解J2SE知识了解Html、Xml及Javascript等Web知识了解设计模式,2019/11/21,Hwadee,7,目标听众,高等院校和软件学院计算机专业同学有一定经验的Java程序员,2019/11/21,Hwadee,8,日程表,共计:1.5天详细安排,2019/11/21,Hwadee,9,词汇表,Java、J2SE、J2EEServlet、JSP、Bean、XML分布式计算、B/S架构、Web、框架、设计模式,J2SE基础及开发简介,J2EE基础,j2EE概述j2EE的结构、术语和特性j2EE的核心技术,2019/11/21,Hwadee,12,j2EE概述,1999年SunMicrosystems公司最先推出j2EE中以“企业”作为目标J2EE在J2SE平台之上增加大量企业级特性。而J2SE平台的重点则放在传统的桌面应用开发与部署上a,定义“企业”b,企业应用开发的考验和困难,2019/11/21,Hwadee,13,j2EE概述,j2EE如何解决企业开发中的难点a、简单而统一的基于组件的结构b、内建的可伸缩性与安全性支持c、提供稳定和可靠的基础d、与企业信息系统和遗留系统的集成e、Web服务的内建支持f、独立于厂家和平台的可移植应用,2019/11/21,Hwadee,14,j2EE的结构、术语和特性,j2EE的分布式多层应用模型,客户层,Web层,中间层,Web层,业务层,EIS层,遗留系统,EIS系统,数据库,2019/11/21,Hwadee,15,j2EE的结构、术语和特性,客户,组件,模块,容器和服务a,客户b,组件与模块c,容器与服务平台角色j2EE不同版本的演进,2019/11/21,Hwadee,16,j2EE的核心技术,JDBC:JavaDataBaseConnectivityJNDI:JAVANAMINGANDDIRECTORYINTERFACEEJBS:ENTERPRISEJAVABEANSRMI:REMOTEMETHODINVOCATIONJSP:JAVASERVERPAGESJAVASERVLETSXML:EXTENSIBLEMARKUPLANGUAGEJMS:JAVAMESSAGINGSERVICEJAVAIDL:InterfaceDifinitionLanguageJTS:JAVATRANSACTIONSERVICEJTA:JAVATRANSACTIONARCHITECTUREJAVAMAILJAF:JAVABEANSACTIVATIONFRAMEWORK,2019/11/21,Hwadee,17,j2EE的核心技术,JNDI:JAVANAMINGANDDIRECTORYINTERFACEJNDIAPI被用于执行命名和目录服务。它提供了一致的模型来存取和操作企业级的资源如DNS和LDAP,本地文件系统。命名服务为人类可读的名字与其对应的软件实体(如对象或组件)之间的关联提供灵活的机制。目录服务是命名服务的一个补充,它允许对象基于其属性来进行查找。前者允许对象按名称进行查找,后者允许对象基于其功能来进行查找。JNDIAPI由两部分组成:应用级接口和服务提供者接口(ServiceProviderInterface,SPI),前者用于应用组件访问命名服务和目录服务,后者用于将命名服务和目录服务提供者插入平台中。在JNDI中,在目录结构中的每一个结点称为CONTEXT。每一个JNDI名字都是相对于CONTEXT的。这里没有绝对名字的概念存在。对一个应用来说,它可以通过使用INITIALCONTEXT类来得到其第一个CONTEXT:CONTEXTCTX=NEWINITIALCONTEXT();,2019/11/21,Hwadee,18,j2EE的核心技术,应用可以通过这个初始化的CONTEXT经有这个目录树来定位它所需要的资源或对象。例如,假设你在WEBLOGIC服务器中展开了一个EJB并将HOME接口绑定到名字MYAPP.MYEJB,那么该EJB的某个客户在取得一个初始化CONTEXT以后,可以通过以下语句定位HOME接口:MYEJBHOMEHOME=CTX.LOOKUP(MYAPP.MYEJB);在这个例子中,一旦你有了对被请求对象的参考,EJB的HOME接口就可以在它上面调用方法。以上关于JNDI的讨论只是冰山之一角而已。如果要更进一步地在CONTEXT中查找对象,JNDI也提供了一些方法来进行以下操作:将一个对象插入或绑定到CONTEXT。这在你展开一个EJB的时候是很有效的。从CONTEXT中移去对象。列出CONTEXT中的所有对象。创建或删除子一级的CONTEXT。,2019/11/21,Hwadee,19,j2EE的核心技术,EJB:ENTERPRISEJAVABEANSJ2EE技术之所以赢得广泛重视的原因之一就是EJB。它们提供了一个框架来开发和实施分布式商务逻辑,由此很显著地简化了具有可伸缩性和高度复杂的企业级应用的开发。EJB规范定义了EJB组件在何时如何与它们的容器进行交互作用。容器负责提供公用的服务,例如目录服务、事务管理、安全性、资源缓冲池以及容错性。EJB规范定义了3种基本的BEAN类型:STATELESSSESSIONBEANS:提供某种单一的服务,不维持任何状态,在服务器故障发生时无法继续存在,生命期相对较短。例如,一个STATELESSSESSIONBEAN可能被用于执行温度转换计算。STATEFULSESSIONBEANS:提供了与客户端的会话交互,可以存储状态从而代表一个客户。典型例子是购物车。STATEFULSESSIONBEAN在服务器故障时无法继续生存,生命期相对较短。每一个实例只用于一个单个的线程。ENTITYBEANS:提供了一致性数据的表示-通常存放在数据库中-在服务器故障发生后能继续存在。多用户情况下可以使用EJB来表示相同的数据。ENTITYEJB的一个典型例子是客户的帐号信息。,2019/11/21,Hwadee,20,j2EE的核心技术,尽管有以上的区别,所有的EJB还是有许多的共同之处。它们都处理HOMEINTERFACE。它定义了一个客户端是如何创建与消亡EJB的。可以在BEAN中对定义了客户端方法的远程接口进行调用;BEAN类则执行了主要的商务逻辑。如果一个EJB已经被开发了或者从第三方进行了购买,它就必须在应用服务器中进行发布。例如,WEBLOGICSERVER5.1带有一个EJBEPLOYERTOOL来协助处理EJB的发布。当你使用EJBDEPLOYERTOOL的时候,你要定义客户端所用的JNDI名字来定位EJB。DEPLOYERTOOL将生成WRAPPER类来处理和容器的通信以及在一个JAR文件中把被请求的JAVA类绑定在一起。一旦EJB被发布,客户端就可以使用它的JNDI名字来定位EJB。首先,它必须得到一个到HOME接口的REFERENCE。然后,客户端可以使用该接口,调用一个CREATE()方法来得到服务器上运行的某个BEAN实例的句柄;最后,客户端可以使用该句柄在BEAN中调用方法。,2019/11/21,Hwadee,21,j2EE的核心技术,RMI:REMOTEMETHODINVOCATIONRMI协议是在远程对象上调用一些方法。它使用了连续序列方式在客户端和服务器端传递数据。RMI是一种被EJB使用的更下层的协议。,2019/11/21,Hwadee,22,j2EE的核心技术,JAVAIDL/CORBAIDL:InterfaceDifinitionLanguage接口定义语言CORBA(公共对象请求代理机构)技术是一种异构型计算标准,他定义独立于平台和语言的分布式对象框架以及在该框架上运行的相关服务,与RMI编程规则兼容。IIOP:InternetInter-ORBProtocol互联网互联对象请求代理协议?在JAVAIDL的支持下,通过使用RMI-IIOP,开发人员可以将JAVA和CORBA集成在一起。他们可以创建JAVA对象并使之可在CORBAORB中展开,或者他们还可以创建JAVA类并作为和其它ORB一起展开的CORBA对象的客户。后一种方法提供了另外一种途径,通过它JAVA可以被用于将你的新的应用和LEGACY系统相集成。,2019/11/21,Hwadee,23,j2EE的核心技术,JAVATRANSACTIONARCHITECTURE(JTAJava事务API)/JAVATRANSACTIONSERVICE(JTSJava事务服务)JTA定义了一种标准的API,应用系统由此可以存取各种事务监控。JTS是CORBAOTS(ObjectTRANSACTIONSERVICE对象事务服务)事务监控的基本的实现。JTS规定了事务管理器的实现方式。该事务管理器是在高层支持JAVATRANSACTIONAPI(JTA)规范,并且在较底层实现OMGOTSSPECIFICATION的JAVA映像。JTS事务管理器为应用服务器、资源管理器、独立的应用以及通信资源管理器提供了事务服务。,2019/11/21,Hwadee,24,j2EE的核心技术,AVAMAILANDJAVABEANSACTIVATIONFRAMEWORKJAVAMAIL是用于存取邮件服务器的API,它提供了一套邮件服务器的抽象类。不仅支持SMTP服务器,也支持IMAP服务器。JAVAMAIL利用JAVABEANSACTIVATIONFRAMEWORK(JAF)来处理MIME-编码的邮件附件。MIME的字节流可以被转换成JAVA对象,或者转换自JAVA对象。由此大多数应用都可以不需要直接使用JAF。,2019/11/21,Hwadee,25,j2EE的核心技术,JMS:JAVAMESSAGINGSERVICEJMS是用于和面向消息的中间件相互通信的应用程序接口(API)。它既支持点对点的域,有支持发布/订阅(PUBLISH/SUBSCRIBE)类型的域,并且提供对下列类型的支持:经认可的消息传递,事务型消息的传递,一致性消息和具有持久性的订阅者支持。JMS还提供了另一种方式来对您的应用与LEGACYBACKEND系统相集成。,2019/11/21,Hwadee,26,j2EE的核心技术,XML:EXTENSIBLEMARKUPLANGUAGEXML是一种可以用来定义其它标记语言的语言。它被用来在不同的商务过程中共享数据。XML的发展和JAVA是相互独立的,但是,它和AVA具有的相同目标正是平台独立性。通过将JAVA和XML的组合,您可以得到一个完美的具有平台独立性的解决方案。目前正有许多不同的公司在为JAVA和XML的组合而努力。,相关IDE简介,Eclipse与MyEclipse的结合早期主流的JavaIDE-JBuilder基于Eclipse平台的JBuilder2007,2019/11/21,Hwadee,28,早期主流的JavaIDE-JBuilder,UML可视化展示程序代码程序代码重构(Refatoring)功能单元测试(UnitTest)功能强大的程序调试器高效率的WebServices开发环境支持团队开发机制使用ApacheStruts,Servlets,JSP和XML快速建制和调试Web应用程序,JDBC简介,JDBC定义的4种不同的驱动程序java.sql包中的接口和类编写访问数据库程序的步骤通过JDBC访问数据库的JSP案例数据源简介处理中文编码JAVA中通过JDBC访问MSSQLServer2000的常见问题,2019/11/21,Hwadee,30,JDBC简介,JDBC是JavaDataBaseConnectivity的缩写。java.sql包提供了JDBCAPI,程序员可以通过它编写访问数据库的程序。在java.sql包里定义了访问数据库的接口和类。JDBCAPI并不能直接访问数据库,它依赖于数据库厂商提供的JDBCDriver(JDBC驱动程序)。java程序和JDBC驱动程序的关系图。JDBCAPIJDBCDriverAPI,Java程序JDBCDriverManagerJDBCDriverDBMS,数据库,2019/11/21,Hwadee,31,JDBC定义的4种不同的驱动程序,类型1:JDBC-ODBCBRIDGE在JDBC出现的初期,JDBC-ODBC桥显然是非常有实用意义的,通过JDBC-ODBC桥,开发人员可以使用JDBC来存取ODBC数据源。不足的是,他需要在客户端安装ODBC驱动程序,换句话说,必须安装MICROSOFTWINDOWS的某个版本。使用这一类型你需要牺牲JDBC的平台独立性。另外,ODBC驱动程序还需要具有客户端的控制权限。类型2:JDBC-NATIVEDRIVERBRIDGEJDBC本地驱动程序桥提供了一种JDBC接口,它建立在本地数据库驱动程序的顶层,而不需要使用ODBC。JDBC驱动程序将对数据库的API从标准的JDBC调用转换为本地调用。使用此类型需要牺牲JDBC的平台独立性,还要求在客户端安装一些本地代码。,2019/11/21,Hwadee,32,JDBC定义的4种不同的驱动程序,类型3:JDBC-NETWORKBRIDGEJDBC网络桥驱动程序不再需要客户端数据库驱动程序。它使用网络上的中间服务器来存取数据库。这种应用使得以下技术的实现有了可能,这些技术包括负载均衡、连接缓冲池和数据缓存等。由于第3种类型往往只需要相对更少的下载时间,具有平台独立性,而且不需要在客户端安装并取得控制权,所以很适合于INTERNET上的应用。类型4:PUREJAVADRIVER第4种类型通过使用一个纯JAVA数据库驱动程序来执行数据库的直接访问。此类型实际上在客户端实现了2层结构。要在N-层结构中应用,一个更好的做法是编写一个EJB,让它包含存取代码并提供一个对客户端具有数据库独立性的服务。,2019/11/21,Hwadee,33,java.sql包中的接口和类,Driver接口和DriverManager类ConnectionStatementPreparedStatementResultSet,2019/11/21,Hwadee,34,JDBC简介,编写访问数据库程序的步骤通过JDBC访问数据库的JSP案例数据源简介处理中文编码,2019/11/21,Hwadee,35,JAVA中通过JDBC访问MSSQLServer2000的常见问题,代码:Connectionconn=null;tryClass.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver);conn=DriverManager.getConnection(jdbc:microsoft:sqlserver:/:1433;databasename=dbname,username,password)catch(Exceptione)e.printStackTrace();,2019/11/21,Hwadee,36,JAVA中通过JDBC访问MSSQLServer2000的常见问题,Nosuitabledriver或者找不到class通常是找不到那3个jar文件如果是JBuidler或者其它IDE工具,通过配置将3个jar加入工程即可。如果是命令行编译,加入classpath环境变量或者javac-classpath3个jar如果是WEB服务器,通常放在web-inf下的lib下。也可以放在通用目录下,如tomcat的commonlib下。,2019/11/21,Hwadee,37,JAVA中通过JDBC访问MSSQLServer2000的常见问题,java.sql.SQLException:MicrosoftSQLServer2000DriverforJDBCErrorestablishingsocket.可能的问题是(a).数据库根本没启动。(b).端口错误有个常用工具,可以很方便查看端口情况。cmd下执行netstat-an查看指定的TCP端口是否在Listening。(c).由于没有打SQLServerSP3补丁(现在已经有SP4了),导致数据库启动了,企业管理器可能也能访问,但端口并没用在服务(缺省是1433端口)。,Web开发-基于Servlet、JSP和Bean的B/S架构的软件系统实现,Servlet开发Jsp、bean的开发Web开发中javascript的应用相关IDE的Jsp开发环境JSP中文乱码问题的解决,2019/11/21,Hwadee,39,Servlet开发,内容简介探讨Srvlet基本概念和生命周期,利用相关IDE建立Servlet,并存取MSSQLServer2000数据库。通过学习可以运用相关IDE的开发特性实现一个小型Web应用程序。,2019/11/21,Hwadee,40,Servlet开发,Servlet概念在以java为基础的Web应用程序中,Servlet是一项极为重要的技术。与传统CGI程序相比,Servlet不受限于某种通信协议或开发平台,拥有许多开发有点。Servlet是一种小型服务器端应用程序,必须运行于Servlet容器(container)内。当Servlet运行时,它能够处理客户端传送的请求(request),并作出适当响应(response)。这种request/response机制使得Web应用程序的基本运行方式之一B/S模式得以实现。B/S与C/S两种Web应用程序运行方式的简单比较。,2019/11/21,Hwadee,41,Servlet开发,Servlet运行环境根据Servlet规范所定义,Servlet必须在特殊的环境下才能正常运行,我们称之为“Servlet容器”(ServletContainer),或是Servlet引擎。只要遵循Servlet标准规范所开发的Servlet容器或是应用程序服务器,就可以运行servlet或jsp。Tomcat服务器:开源软件,IDE以此作为Servlet/Jsp的运行环境。ServletAPIjavax.servlet套件包含所有的ServletAPI,所有Servlet都必须实现avax.servlet.Servlet接口。,2019/11/21,Hwadee,42,Servlet开发,常用的ServletAPI接口与类RequestDispatcher实现此接口的对象可以从用户端接收请求,并传送给服务器上其他资源(如Servlet,HTML文件,Jsp文件)Servlet定义所有Servlet都必须实现的方法ServletConfigServlet容器初始化Servlet时可利用ServletConfig对象传递某些配置信息ServletContext定义Servlet与Servlet容器之间互相沟通的方法,如取得文件的MIME类型,转送请求或是写入记录文件ServletRequest通过此接口定义的方法可以在Servlet内读取客户端请求内容ServletResponse通过此接口定义的方法可以将Servlet所产生的回应传送给客户SingleThreadModel实现此接口的Servlet每次只能服务一个客户端请求GenericServlet定义一个通用(不限于某个通信协议)的servletServletException定义当servlet发生问题时可以抛出的异常一整行数据ServletOutputStream以二进位数据流(binarystream)形式将回应信息传送给客户端UnavailableException当Servlet暂时或永久无法运行时将会抛出此异常,2019/11/21,Hwadee,43,Servlet开发,javax.servlet.Servlet接口所定义的方法voidinit(ServletConfigconfig):在Servlet初始化过程中,Servlet容器将会调用此方法ServletConfiggetServletConfig():回传一个ServletConfig对象,此对象包含Servlet的初始化信息,如起始参数与安装信息voidservice(ServletRequestreq,ServletResponseres):客户端请求送达时,Servlet容器调用此方法提供服务StringgetServletInfo():传回一个内含Servlet信息的字符串,如Servlet的作者或版本Voiddestroy():当Servlet容器判断某个Servlet不再提供服务时,将调用其destroy()方法,并释放其占用的系统资源,2019/11/21,Hwadee,44,Servlet开发,HTTPServlet位于ServletAPI提供的javax.servlet.http套件中。该套件用于开发以http通信协议为基础的Servlet。javax.servlet.http套件内重要的类与接口:Cookie用来建立cookie对象。Cookie可以储存Servlet传送给客户端浏览器的少量信息,稍后可以再传送回Web服务器。经由Cookie所储存的信息将可唯一辨识每个客户端,因此常用来“会话管理”(sessionmanagement)HTTPServlet继承自GenericServlet接口。继承此类的Servlet将成为HTTPServletHTTPServletRequest继承自ServletRequest接口,可提供HTTP请求信息HTTPServletResponse继承自ServletResponse接口,可以将HTTP回应信息传送给客户端HTTPSession提供一个可识别网站用户身份并储存信息的方法HttpSessionBindingEvent如某个对象实现HttpSessionBindingListener接口,当该对象绑定(或取消绑定)某个会话(session)时,将会收到此事件HttpSessionBindingListener如某个对象实现HttpSessionBindingListener接口,当该对象绑定(或取消绑定)某个会话(session)时,将会收到一个HttpSessionBindingEvent事件,2019/11/21,Hwadee,45,Servlet开发,Servlet的生命周期三个阶段初始阶段init()服务阶段service()卸载阶段destroy()Servlet的建构和初始化当servlet容器接收到客户端请求时,首先调用init()方法运行Servlet初始化程序,同一个Servlet的初始化程序只会运行一次。要设置Servlet的初始信息,只要覆写init()方法即可。处理用户端请求在Service()方法内写适当的代码,以处理客户端的请求publicvoidservice(ServletResquestreq,ServletResponseres)可以从传入的ServletResquest对象内取得用户传入的请求内容,然后将Servlet的处理结果置于ServletResponse对象中。卸载Servlet调用destroy()方法,结束Servlet的生命周期。,2019/11/21,Hwadee,46,Servlet开发,Servlet的部署方式Servlet必须部署在提供servlet容器的Web服务器的适当目录下才能运行。在开发与部署Servlet时如果想简化其运行方式,通常要在web.xml内定义各种Servlet相关元素(如,)。IDE的ServletWizard自动建立或编辑web.xml文件,并定义各种Servlet元素。用相关IDE开发Servlet开发例子,2019/11/21,Hwadee,47,Jsp、bean的开发,内容简介介绍Jsp与Servlet的主要差异,以及Jsp的基本开发方式。实例开发一个基本的Jsp,并存取JavaBean的内容。Jsp技术概览在以java为主的Web开发技术中,jsp占有举足轻重的地位。由于jsp是由HTML标签与java程序代码组成,所以他和Servlet一样具有跨平台的优势。与Servlet相较之下,jsp对于“展示逻辑”(presentationlogic)的定制能力更强。因此在大部分的JavaWeb应用程序中通常会同时使用Servlet与jsp技术。其中,Servlet可以包含较复杂的数据处理方法,而jsp则负责如何呈现数据。,2019/11/21,Hwadee,48,Jsp、bean的开发,JSP与Servlet的比较顾名思义,JavaServerPage是在Web服务器端运行的网页程序。事实上,jsp在运行前会先编译成Servlet,所以可将jsp视为Servlet的延伸技术。不过两者的写法有很大不同,Servlet为了呈现一个简单的HTML网页,必须以PrintWriter对象out.println()逐行打印出HTML网页内所有标签。而JSP的基本写法几乎和HTML网页完全相同,可以先利用HTML标签来建构网页的基本结构,然后在适当位置“插入”Java程序代码。这样网页设计和程序设计的工作可以分开来做,提高了开发和维护的效率。,2019/11/21,Hwadee,49,Jsp、bean的开发,jsp标签(Tag)在HTML网页内插入Java程序代码,必须使用JSP的专属标签(Tag)。程序代码标签ScriptletTag可以在JSP内插入某段Java程序代码声明标签DeclarationTag声明方法或变量注解标签CommentTagjsp的标准注解方式表达式标签ExpressionTag在jsp内插入合法的java表达式命令标签DirectiveTag设置jsp网页的属性。page命令最常用的属性为import,可以在jsp内汇入某个java套件或类,例如:设置jsp网页所使用的标签库设置jsp网页欲包含的网页其他“标准动作”(JSPStandardAction)在jsp内建立一个JavaBean实体/存取JavaBean的属性值,2019/11/21,Hwadee,50,Jsp、bean的开发,JSP标签库与开发框架jsp开发过程中,“标签库”是不可或缺的应用程序组件,JSP1.1版以后加入了“自定义标签库”的支持。只要开发人员将常用的Java程序代码写成“标签处理类”(TagHandlerClass),并且声明于“标签库描述文件”(TagLibraryDescriptor,TLD),以后就可在JSP内直接使用。“开发框架”(framework)则是定义应用程序的开发准则。只要在开发过程遵循某种开发框架,就能写出简洁/标准化的应用程序。每种开发框架可能包含一个以上的JSP标签库。针对JSP的开发,不同的IDE内建不同的框架。,2019/11/21,Hwadee,51,Web开发,Web开发中javascript的应用相关IDE的Jsp开发环境JSP中文乱码问题的解决,2019/11/21,Hwadee,52,JSP中文乱码问题的解决,(1),字符内码每个国家(或区域)都规定了计算机信息交换用的字符编码集,如美国的扩展ASCII码、中国的GB2312-80、日本的JIS等,作为该国家(区域)信息处理的基础,有着统一编码的重要作用。由于各本地字符集代码范围重叠,相互间信息交换困难,软件本地化版本独立维护成本较高。因此有必要将本地化工作中的共性抽取出来,做一致性处理,将特殊的本地化处理内容降低到最少,这就是所谓的国际化(I18N)。各种语言信息被规范为本地信息,而底层字符集采用包含了所有字符的Unicode。字符内码(charactercode)指的是用来代表字符的内码。我们在输入和存储文档时都要使用内码,内码分为单字节内码和双字节内码。单字节内码的英文全称是Single-ByteCharacterSets(SBCS),可以支持256个字符编码;双字节内码的英文全称是Double-ByteCharacterSets(DBCS),可以支持65000个字符编码,主要用来对大字符集的东方文字进行编码。CodePage指的是一个经过挑选的以特定顺序排列的字符内码列表,对于早期的单字节内码的语种,CodePage中的内码顺序使得系统可以按照此列表来根据键盘的输入值给出一个对应的内码。对于双字节内码,给出的是MultiByte到Unicode的对应表,这样就可以把以Unicode形式存放的字符转化为相应的字符内码。引入对CodePage的支持主要是为了访问多语种文件名,目前在NTFS和FAT32/VFAT下的文件系统上都使用Unicode,这需要系统在读取这些文件名时动态地将其转换为相应的语言编码。,2019/11/21,Hwadee,53,JSP中文乱码问题的解决,相信了解JSP代码的同学对ISO8859-1一定不陌生,ISO8859-1是我们平时使用比较多的一个CodePage,它属于西欧语系。GB2312-80是在国内计算机汉字信息技术发展初始阶段制订的,其中包含了大部分常用的一、二级汉字和9区的符号。该字符集是几乎所有的中文系统和国际化的软件都支持的中文字符集,这也是最基本的中文字符集。GBK是GB2312-80的扩展,是向上兼容的。它包含了20902个汉字,其编码范围是0 x81400 xFEFE,剔除高位0 x80的字位,其所有字符都可以一对一映射到Unicode2.0,也就是说Java实际上提供了对GB

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论