保存在此Domain的config.xml文件中,它是服务器的核心配置文件。 120.说说weblogic中一个Domain的缺省目录结构?比如要将一个简单的helloWorld.jsp放入何目录下,然的在浏览器上就可打入http://主机:端口号//helloword.jsp就可以看到运行结果了?又比如这其中用到了一个自己写的javaBean该如何办? Domain目录\\服务器目录\\applications,将应用目录放在此目录下将可以作为应用访问,如果是Web应用,应用目录需要满足Web应用目录要求,jsp文件可以直接放在应用目录中,Javabean需要放在应用目录的WEB-INF目录的classes目录中,设置服务器的缺省应用将可以实现在浏览器上无需输入应用名。 121.如何查看在weblogic中已经发布的EJB? 可以使用管理控制台,在它的Deployment中可以查看所有已发布的EJB 122.如何在weblogic中进行ssl配置与客户端的认证配置或说说j2ee(标准)进行ssl的配置 缺省安装中使用DemoIdentity.jks和DemoTrust.jksKeyStore实现SSL,需要配置服务器使用EnableSSL,配置其端口,在产品模式下需要从CA获取私有密钥和数字证书,创建identity和trustkeystore,装载获得的密钥和数字证书。可以配置此SSL连接是单向还是双向的。 123.在weblogic中发布ejb需涉及到哪些配置文件 不同类型的EJB涉及的配置文件不同,都涉及到的配置文件包括ejb-jar.xml,weblogic-ejb-jar.xmlCMP实体Bean一般还需要weblogic-cmp-rdbms-jar.xml 124.EJB需直接实现它的业务接口或Home接口吗,请简述理由. 远程接口和Home接口不需要直接实现,他们的实现代码是由服务器产生的,程序运行中对应实现类会作为对应接口类型的实例被使用。 125.说说在weblogic中开发消息Bean时的persistent与non-persisten的差别 persistent方式的MDB可以保证消息传递的可靠性,也就是如果EJB容器出现问题而JMS服务器依然会将消息在此MDB可用的时候发送过来,而non-persistent方式的消息将被丢弃。 126.说说你所熟悉或听说过的j2ee中的几种常用模式?及对设计模式的一些看法 SessionFacadePattern:使用SessionBean访问EntityBean MessageFacadePattern:实现异步调用 EJBCommandPattern:使用CommandJavaBeans取代SessionBean,实现轻量级访问 DataTransferObjectFactory:通过DTOFactory简化EntityBean数据提供特性 GenericAttributeAccess:通过AttibuteAccess接口简化EntityBean数据提供特性 BusinessInterface:通过远程(本地)接口和Bean类实现相同接口规范业务逻辑一致性 EJB架构的设计好坏将直接影响系统的性能、可扩展性、可维护性、组件可重用性及开发效率。项目越复杂,项目队伍越庞大则越能体现良好设计的重要性
JAVA方面 1.Java I/O中字符流和字节流的区别? 字符流:抽象父类是Reader和Writer 字节流:抽象父类是InputStream和OutputStream(通常用于读取二进制数据,如图象和声音) 2int和Integer有什么区别 3.HTTP协议是特区办公室攔这是短连接?
短连接 4说出一些常用的类,包,接口,请各举5个 5.JAVA的基本数据类型有哪些?String 是不是基本类型? int boolean char short long float及double String 不是基本的数据类型 整数类型的取值范围 类型 缺省值 长度 范围 Byte 0 8 -128~127 Short 0 16 -32,768~32767
Int 0 32 -2,147,483,648~2,147,483,647
long 0 64 -9,223,372,036,854,775,808~9,223,372,036,854,775,807 6.MVC的概念和在项目中的应用 模型、视图、控制器模式,基本原理是将复杂性分解为三个组件 这种模式利用了两个技术,JSP生成表示层,Servlet起到了控制器的作用,负责请求处理以及创建JSP使用的任何BEAN或对象。 7说出ArrayList,Vector,LinkedList的存储性能和特性 ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList差,而LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。 8、对数组对象x,该数组的长度如何表示? 通过该数组的length属性得到。 9.设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。 以下程序使用内部类实现线程,对j增减的时候没有考虑顺序问题。 publicclassThreadTest1{ privateintj; publicstaticvoidmain(Stringargs[]){ ThreadTest1tt=newThreadTest1(); Incinc=tt.newInc(); Decdec=tt.newDec(); for(inti=0;i<2;i++){ Threadt=newThread(inc); t.start(); t=newThread(dec); t.start(); } } privatesynchronizedvoidinc(){ j++; System.out.println(Thread.currentThread().getName()+\ }
privatesynchronizedvoiddec(){ j--; System.out.println(Thread.currentThread().getName()+\ } classIncimplementsRunnable{ publicvoidrun(){ for(inti=0;i<100;i++){ inc(); } } } classDecimplementsRunnable{ publicvoidrun(){ for(inti=0;i<100;i++){ dec(); } } } } 10.用socket通讯写出客户端和服务器端的通讯,要求客户发送数据后能够回显相同的数据。 参见课程中socket通讯例子。 11说出Servlet的生命周期,并说出Servlet和CGI的区别。 Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。 与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。 12.EJB是基于哪些技术实现的?并说出SessionBean和EntityBean的区别,StatefulBean和StatelessBean的区别。 13.EJB包括(SessionBean,EntityBean)说出他们的生命周期,及如何管理事务的? 14.说出数据连接池的工作机制是什么? 15同步和异步有何异同,在什么情况下分别使用他们?举例说明。 如果数据将在线程间共享发,例如:正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个纯种写过了,那么这些数据就是共享数据,必须进行同步存取。 当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望记程序等待方法的返回里,就应该用异步编程,在很多情况下采用异步途径往往更有效率, 16应用服务器有那些? 17你所知道的集合类都有哪些?主要方法? 18给你一个:驱动程序A,数据源名称为B,用户名称为C,密码为D,数据库表为T,请用JDBC检索出表T的所有数据。 19.说出在JSP页面里是怎么分页的?
页面需要保存以下参数: 总行数:根据sql语句得到总行数 每页显示行数:设定值 当前页数:请求参数 页面根据当前页数和每页行数计算出当前页第一行行数,定位结果集到此行,对结果集取出每页显示行数的行即可。 20、如果一个变量的值为NULL,观察以下程序: IF 变量=NULL THEN 分支1; ELSE 分支2; END IF 程序最终哪一个分支? 答案:分支2。 数据库方面: 1.存储过程和函数的区别 存储过程是用户定义的一系列sql语句的集合,涉及特定表或其它对象的任务,用户可以调用存储过程,而函数通常是数据库已定义的方法,它接收参数并返回某种类型的值并且不涉及特定用户表。 2.事务是什么? 事务是作为一个逻辑单元执行的一系列操作,一个逻辑工作单元必须有四个属性,称为ACID(原子性、一致性、隔离性和持久性)属性,只有这样才能成为一个事务: 原子性 事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行。 一致性 事务在完成时,必须使所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。事务结束时,所有的内部数据结构(如B树索引或双向链表)都必须是正确的。 隔离性 由并发事务所作的修改必须与任何其它并发事务所作的修改隔离。事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看中间状态的数据。这称为可串行性,因为它能够重新装载起始数据,并且重播一系列事务,以使数据结束时的状态与原始事务执行的状态相同。 持久性 事务完成之后,它对于系统的影响是永久性的。该修改即使出现系统故障也将一直保持。 3.游标的作用?如何知道游标已经到了最后? 游标用于定位结果集的行,通过判断全局变量@@FETCH_STATUS可以判断是否到了最后,通常此变量不等于0表示出错或到了最后。 4.触发器分为事前触发和事后触发,这两种触发有和区别。语句级触发和行级触发有何区别。 事前触发器运行于触发事件发生之前,而事后触发器运行于触发事件发生之后。通常事前触发器可以获取事件之前和新的字段值。
语句级触发器可以在语句执行前或后执行,而行级触发在触发器所影响的每一行触发一次。 测试题目: 1、闰年的判断标准是:所有的闰年都能被4整除,但能被100整除不能被400整除的不是闰年、请编写Java代码,来实现该算法。 2、请完成如下的排序算法:尽可能使用你所知道的最快的算法。 public class SortTool{ /*the vertor contains a lot of integer objects,mabe contains more inters which have *the same value. *@return void but the input vector have bean sorted in ascend order */ public void sortIntegers(java.util.Vector vector){ //add your code here } } 01 10 11 12 20 21 22 23 3、编写Java代码,打印如下的杨辉三角。注意该三角形是居中对齐的。 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 public class PrintYangHui{ /*usage:java PrintYangHui 10 –print a YangHui triangle of 10 lines */ public static void main(String args[]){ //add your code here } } 4、编写一段生产者/消费者的Java代码,其中生产者每次生产1个0到1000之间的随机数,消费者则把该随机数打印出来。如果产生的随机数为0,则生产者、消费者?退出运行。要求生产者、消费者均用线程来实现。 5、使用junit框架,设计对上述算法的单元测试代码,检查算法的正确性。 6、JMS编程具体步骤 7、事务模式 8、JAVA宣传品管理事务的事务属性为REQUIRESNEW的意义 9、事务失败时会话BEAN的重新初始化方法 10、WEBLOGIC SERVER中开发JDBC应用通常遵循的步骤 11、现有订单、订单项、客户、产品四个数据库表: 订单:(OrderID,CustomerID,OrderTime,OrderStatus,……) 客户:(CustomerID,Name,Address,Telephone,……)