JavaEE练习题(附答案)

合集下载

JavaEE期末考试题及答案桂电三院

JavaEE期末考试题及答案桂电三院

Java EE期末考试•填空题:•Java EE为满足开发多层体系构造企业级应用需求,提出_组件-容器________编程思想。

Java EE应用根本软件单元是_Java EE 组件_______. 根本软件单元运行环境被称为___容器________.•两层体系构造应用程序分为__客户层_____与____效劳器层_____.•所谓企业级应用程序,并不是特指为企业开发应用软件,而是泛指那些为_大型组织部门__创立应用程序。

•在三层分布式企业应用程序中,包括_客户层____,__应用效劳器层_____,____数据效劳器层______三层。

•Java EE客户端组件既可以是__一个Web浏览器__________、___一个Applet________,也可以是一个__应用程序______.•Servlet组件在进展重定向时,需要使用ServletResponse接口方法是__sendRedirect()______.•ServletRequest提供了两个方法用于从请求中解析出上传文件:___Part getPart〔String name〕___________与__Collection<Part>getParts()___________。

•Java EE 6提供组件主要包括三类:_客户端组件____,__Web组件____,_业务组件____.•Servlet配置参数保存在__ServletConfig()______________对象中,一个Servlet该配置对象〔能/否〕___否〔不能〕__________被其他Servlet访问。

•Servlet支持两种格式输入/输出流:__字符输入/输出流______与__字节输入/输出流_。

•MIME全称是_多媒体Internet邮件扩展____, ServletResponse 中响应正文默认MIME类型为_text/plain______________, 而ServetResponse中响应正文默认MIME类型为__text/html_________________.•PDF文件MIME类型是__application/pdf________________, Microsoft Word文档类型是__application/msword___________。

JavaEE测试题带答案(仅供借鉴)

JavaEE测试题带答案(仅供借鉴)

1.在Java中的变量命名规范中,下面命名正确两项的是( ) (选择两项)a)¥moneyb)$intc)intd)*i2.绘制流程图时,下面()代表判断和分支。

(选择一项)a)矩形b)椭圆c)菱形d)圆形3.在Java环境中给出如下代码,编译运行的输出结果是()。

public class Test{intx=1;inty=2;public int cal(intx,inty){int z=x+y;return z;}public static void main(String args[]){Test d = newTest();z=d.cal(d.x,d.y);System.out.println(z);}}(选择一项)A) 3B) 0C) 编译错误D) 编译通过,但运行时出错4.下列选项中关于枚举说法错误的是()。

(选择一项)a)枚举类型是从JavaSE5.0开始引入的一种新类型b)枚举类型使用关键字enum定义c)枚举是指由一组固定的常量组成的类型d)在枚举中,除了可以定义枚举常量以外不能出现其他成员5. 在Java中,以下关于多态说法错误的是()。

(选择一项)a)实现多态的一个前提是要有继承关系b)将一个父类的引用指向一个子类对象,要进行强制类型转换c)父类引用变量指向其子类对象是实现多态的一个条件d)使用多态可以提高代码的可扩展性和可维护性6. 在Java中,如下代码段的输出结果为()。

Strings="hello";s.substring(2,4);System.out.println(s.length());(选择一项)a) 5b) 2c) 4d) 37. 在Java中,如下代码的输出结果是()。

public static void main(String[]args){char c[]={'1','2','3','4'};for(inti=0;i<c.length/2;i++){char d=c[i];c[i]=c[c.length-(i+1)];c[c.length-(i+1)]=d;}for(inti=0;i<c.length;i++){System.out.print(c[i]);}}(选择一项)a)1234b)3412c)1324d)43218. 关于Java中static关键字的说法错误的是()。

javaee 结项考试试卷(含答案)

javaee 结项考试试卷(含答案)

JavaEE结项考试试卷(后附答案)一、单选题(共15小题,每小题2分,满分30分)1、Java是从()语言改进重新设计。

A. AdaB. C++C. PasacalD. BASIC2、下列语句哪一个正确()A. Java程序经编译后会产生machine codeB. Java程序经编译后会产生byte codeC. Java程序经编译后会产生DLLD. 以上都不正确3、已知如下定义:String s = "story"; 下面哪个表达式是合法的?()A. s += "books";B. char c = s[1];C. int len = s.length;D. String t = 100;4、执行如下程序代码a=0;c=0;do{--c;a=a-1;}while(a>0);后,C的值是()A.0B.1C.-1D.死循环5、String s=new String(“xyz”); 创建了几个String对象?()A. 1个B. 2个C.3个D.4个6、当你执行以下查询语句:SELECT empno,ename FROM emp WHERE empno=7782 OR empno=7876;在WHERE语句中,以下哪个操作符可以取代OR?()A. INB. BETWEEN ……C. LIKED. <=E. >=7、下面关于Spring的说法中错误的是()?A. Spring是一系列轻量级Java EE框架的集合B. Spring中包含一个“依赖注入”模式的实现C. 使用Spring可以实现声明式事务D. Spring提供了AOP方式的日志系统8、下列语句正确的是()A.形式参数可被视为local variableB.形式参数可被字段修饰符修饰C.形式参数为方法被调用时,真正被传递的参数D.形式参数不可以是对象9、下列哪种说法是正确的()A.实例方法可直接调用超类的实例方法B.实例方法可直接调用超类的类方法C.实例方法可直接调用其他类的实例方法D.实例方法可直接调用本类的类方法10、下面关于AOP的说法错误的是?()A. AOP将散落在系统中的“方面”代码集中实现B. AOP有助于提高系统的可维护性C. AOP已经表现出了将要替代面向对象的趋势D. AOP是一种设计模式,Spring提供了一种实现11、关于以下application的说明,正确的是()class StaticStuff{static int x=10;static { x+=5;}Public static void main(String args[ ]){System.out.println(“x=”+ x);}static { x/=3;}}A. 4行与9行不能通过编译,因为缺少方法名和返回类型B. 9行不能通过编译,因为只能有一个静态初始化器C. 编译通过,执行结果为:x=5D. 编译通过,执行结果为:x=312、下列哪些语句关于Java内存回收的说明是正确的? ()A. 程序员必须创建一个线程来释放内存B. 内存回收程序负责释放无用内存C. 内存回收程序允许程序员直接释放内存D. 内存回收程序可以在指定的时间释放内存对象13、有如下代码段:1)2){ if(unsafe()){//do something…}3) else if(safe()){//do the other…}4) }其中,方法unsafe() 将抛出IOException, 请问可将以下哪项填入第1行?()A. public IOException methodName()B. public void methodName()C. public void methodName() throw IOExceptionD. public void methodName() throws IOException14、在使用了Hibernate的系统中,要想在删除某个客户数据的同时删除该客户对应的所有订单数据,下面方法可行的是( )A.配置客户和订单关联的cascade属性为save-updateB. 配置客户和订单关联的cascade属性为allC. 设置多对一关联的inverse属性为trueD. 设置多对一关联的inverse属性为false15、下列哪一种叙述是正确的()A.abstract修饰符可修饰字段、方法和类B.抽象方法的body部分必须用一对大括号{ }包住C.声明抽象方法,大括号可有可无D.声明抽象方法不可写出大括号二、不定项多选题(共10小题,每小题2分,满分20分)1.Java程序的种类有()A.类(Class)B.AppletC.ApplicationD.Servlet2.下列说法正确的有()A.环境变量可在编译source code时指定B.在编译程序时,所能指定的环境变量不包括class pathC.javac一次可同时编译数个Java源文件D.javac.exe能指定编译结果要置于哪个目录(directory)3.下列标识符不合法的有()A.newB.$UsdollarsC.1234D.car.taxi4.下列说法错误的有()A.数组是一种对象B.数组属于一种原生类C.int number=[]={31,23,33,43,35,63}D.数组的大小可以任意改变5.不能用来修饰interface的有()A.privateB.publicC.protectedD.static6、在EL表达式中,与范围有关的EL隐含对象有()?A. pageScopeB. requestScopeC. sessionScopeD. applicationScopeE. pageContextScope7.下列说法错误的有()A.在类方法中可用this来调用本类的类方法B.在类方法中调用本类的类方法时可直接调用C.在类方法中只能调用本类中的类方法D.在类方法中绝对不能调用实例方法8. Stust2 Action类得到request\session对象的方式( )A. 与servlet无关的非IOCB. 与servlet相关的非IOCC. 与serlvet相关的IOCD. 与servlet无关的IOC9.下列说法错误的有()A.能被java.exe成功运行的java class文件必须有main()方法B.J2SDK就是Java APIC.Appletviewer.exe可利用jar选项运行.jar文件D.能被Appletviewer成功运行的java class文件必须有main()方法10. 编译并运行下面的程序,运行结果为( )public class Example{public static void main(String args[] ){int l=0;do{System.out.println(“ Doing it for l is:” +l);}while(--l>0)System.out.println(“ Finish” );}}A. Doing it for l is 3B. Doing it for l is 1C. Doing it for l is 2D. Doing it for l is 0E. Doing it for l is –1F. Finish三、填空题(本大题共20空,每空 1 分,共 20分)1.一个Java源程序是由若干个组成。

javaee大学考试题及答案

javaee大学考试题及答案

javaee大学考试题及答案一、选择题(每题2分,共20分)1. 在Java EE中,以下哪个不是EJB的类型?A. 会话BeanB. 实体BeanC. 消息驱动BeanD. 数据访问Bean答案:D2. 下列哪个不是Servlet的生命周期方法?A. init()B. service()C. destroy()D. start()答案:D3. 在Java EE中,以下哪个不是JPA实体的注解?A. @EntityB. @TableC. @ColumnD. @Database答案:D4. JSF框架中,以下哪个不是UI组件的属性?A. valueB. bindingC. idD. action答案:D5. 在Java EE中,以下哪个不是JSP的隐式对象?A. requestB. responseC. sessionD. application答案:B6. 在Java EE中,以下哪个不是JAX-RS的注解?A. @PathB. @GETC. @ProducesD. @RequestMapping答案:D7. 在Java EE中,以下哪个不是CDI的注解?A. @InjectB. @NamedC. @ScopeD. @Autowired答案:D8. 在Java EE中,以下哪个不是JPA的查询类型?A. JPQLB. SQLC. Criteria APID. Native SQL答案:B9. 在Java EE中,以下哪个不是JSF的组件?A. UIInputB. UIOutputC. UICommandD. UIAction答案:D10. 在Java EE中,以下哪个不是EJB的事务管理类型?A. Bean-managedB. Container-managedC. LocalD. Distributed答案:C二、填空题(每空1分,共20分)1. 在Java EE中,________是用来处理HTTP请求和响应的。

JavaEE课程考试试卷与答案

JavaEE课程考试试卷与答案

JavaEE课程考试试卷专业:考试日期:时间:总分:100 分闭卷一大题:单选题(共7小题,每小题2分,共14分)1、为了实现在Java的程序中调用带参数的SQL语句,应该采用那个类来完成。

(A)Connection类(B)PreparedStatement类(C)CallableStatement类(D)Statement类2、在JDBC连接数据库编程应用开发中,利用那个类可以实现连接数据库。

(A)Connection类(B)PreparedStatement类(C)CallableStatement类(D)Statement类3、下面哪个语句能实现对图片加链接的功能。

(A) <a href=”index.html”><img src=”a.gif”></a>(B) <a page=”index.html”><img src=”a.gif”></a>(C) <a forward=”index.html”><img src=”a.gif”></a>(D) <a redirect=”index.html”><img src=”a.gif”></a>4、假设在studentmgr应用中有一个RegisterServlet类,它在web.xml文件中的配置如下: <servlet><servlet-name> RegisterServlet </servlet-name><servlet-class>servlet.HelloServlet</servlet-class></servlet><servlet-mapping><servlet-name> RegisterServlet </servlet-name><url-pattern>/servlet/register</url-pattern></servlet-mapping>那么在浏览器端访问HelloServlet的URL是什么?(A) http://localhost:8080/RegisterServlet(B) http://localhost:8080/studetnmgr/RegisterServlet(C) http://localhost:8080/studentmgr/servlet/register(D) http://localhost:8080/studetnmgr/register5、欲从配置文件中获得ServletContext的参数值,应该调用下面的哪个方法?(A)调用HttpServletRequest对象的getAttribute()方法(B)调用ServletContext对象的getAttribute()方法(C)调用Servlet的getServletConfig().getInitParameter()方法(D)调用Servlet的getServletContext().getInitParameter()方法6、下面哪个标签能把表单中的参数接收到JavaBean的属性里。

JavaEE练习答案

JavaEE练习答案

一、选择题1.下列关于JavaEE叙述错误的是(D )。

A)JavaEE是一个标准中间件体系结构B)JavaEE是企业分布式应用开发标准C)JavaEE的编程思想是:组件-容器D)JavaEE是一门编程语言2.JavaEE技术框架包括(D)。

A)组件技术B)服务技术C)通信技术D)以上三种3.JavaEE Web组件包括( A )。

A) Servlet和JSP B) Servlet和JDBC C) JSP和JNDI D) EJB和JDBC4.JavaEE提供的组件主要包括( C)。

A) 客户端组件、Web组件和JDBC组件B) Web组件、EJB组件和JDBC组件C) 客户端组件、Web组件和EJB组件D) Web组件、EJB组件和JNDI组件5.下列组件属于客户端组件的是( A )。

A) Applet B) EJB C) JSP D) Servlet6.以下关于JavaEE体系架构的优点正确的是( C)。

A) 独立于硬件配置但需要操作系统支持B) 坚持面向过程的设计原则C) 兼具灵活性、可移植性和互操作性D) 能进行企业信息系统集成,但并不轻松7.( C )是用于构建发布在Java平台上的组件和应用程序的开发环境,是一切Java应用程序的基础。

A)NetBeans B)JBuilder C)JDK D)JSP8.JDK是用于构建发布在Java平台上的组件和应用程序的( A )环境,是一切Java应用程序的基础。

A) 开发B) 运行C) 测试D) 部署9.JavaEE编程属于服务器端应用的编程,因此JavaEE程序的运行需要一个( B )应用服务器的支持。

A)客户B)中间件C)商业D)数据库10.JavaEE编程属于( B )应用的编程,因此JavaEE程序的运行需要一个中间件应用服务器的支持。

A) 客户端B) 服务器端C) JSP D) Servlet11.目前JavaEE应用开发环境分为两大类,基于命令行的开发环境和( A )开发环境。

javaee基础教程习题答案

javaee基础教程习题答案

JAVAEE基础教程课后部分编程题答案2-14 public class aa {public static void main(String[] args) {// TODO Auto-generated method stubdouble x=34.5;double y=68.4;double z=x+y;System.out.println("x+y="+x+"+"+y+"="+z);}}3-19(一)从大到小插入排序法public class Sort {public static void main(String[] args) {int[] A={30,1,-9,70,25};for(int i=1;i<A.length-1;i++){for(int j=i;j>0;j--){if(A[j]>A[j-1]){int temp;temp=A[j-1];A[j-1]=A[j];A[j]=temp;}}}System.out.println("利用插入排序方法的结果是:");for(int i=0;i<A.length ;i++){System.out.print(A[i]+",");}}}选择排序法public class S_sort {public static void main(String[] args) {int[] A={30,1,-9,70,25};int max,temp;for(int i=A.length-1;i>0;i--){max=0;for(int j=1;j<=i;j++){if(A[max]>A[j])max=j;}temp=A[max];A[max]=A[i];A[i]=temp;}System.out.println("利用选择排序方法的结果是:");for(int i=0;i<A.length ;i++){System.out.print(A[i]+",");}}}(二)从小到大import java.util.*;public class rr {public static void main(String[] args){int A[]={30,1,-9,70,25};Arrays.sort(A);for(int i=0;i<5;i++){System.out.print(A[i]+",");}}}3-11 public class pp {public static void main(String[] args) {int i,j,count=0;for(j=2;j<=1000;j++){for(i=2;i<=j/2;i++){if(j%i==0)break;}if(i>j/2){count++;System.out.print(j+"\t");if(count%5==0)System.out.println(""); }}}}3-12 import java.util.Random;public class rr {public static void main(String[] args){int count1=0,count2=0,count3=0,count4=0,count5=0,count6=0;int temp;Random r =new Random();for(int i=1;i<=100;i++){temp=r.nextInt()%6+1;switch(temp){case 1:count1++;break;case 2:count2++;break;case 3:count3++;break;case 4:count4++;break;case 5:count5++;break;case 6:count6++;break;}}System.out.println("count1="+count1);System.out.println("count2="+count2);System.out.println("count3="+count3);System.out.println("count4="+count4);System.out.println("count5="+count5);System.out.println("count6="+count6);}}3-13 public class rr {public static void main(String[] args){int sum=0,a=1;for(int i=1;i<16;i++){a=a*i;sum+=a;}System.out.println("1!+2!+3!+...+15!="+sum);}}3-16 public class r {public static void main(String[] args) {int[] prime=new int[30];int i,j,m=0,count=0;for(j=2;count<30;j++){for(i=2;i<=j/2;i++){if(j%i==0)break;}if(i>j/2){count++;prime[m]=j;System.out.print(prime[m]+",");}}}}3-18 import java.util.Scanner;import java.util.*;public class yy {/*** @param args*/public static void main(String[] args) { // TODO Auto-generated method stubint[] d=new int[100];int i=-1;do{System.out.println("输入整数(-2结束):");Scanner input=new Scanner(System.in);i++;d[i]=input.nextInt();}while(d[i]!=-2);int[] dd=new int[i];for(int j=0;j<i;j++){dd[j]=d[j];}Arrays.sort(dd);System.out.print("输入值按从小到大的顺序排序是 ");for(int a:dd)System.out.print(a+" ");}}6-12 import java.util.Calendar;public class CalendarExample {public static void main(String[] args) {Calendar cal = Calendar.getInstance();cal.add(Calendar.DATE, 10);System.out.println("十天后的日期和时间:");System.out.println(cal.get(Calendar.YEAR) + "年"+ (cal.get(Calendar.MONTH)+1) + "月"+ cal.get(Calendar.DATE) + "日"+ cal.get(Calendar.HOUR) + ":"+ cal.get(Calendar.MINUTE) + ":"+ cal.get(Calendar.SECOND));}}6-15 import java.util.HashMap;import java.util.Map;public class pp{public static void main(String args[]){Map<String,String> map=new HashMap<String,String>();map.put("张三","90分");map.put("李四", "83分");System.out.println("所查的学生有:"+map.keySet());System.out.println("张三的成绩为:"+map.get("张三"));System.out.println("李四的成绩为:"+map.get("李四"));System.out.println();map.put("李四","100分");System.out.println("修改后李四的成绩为:"+map.get("李四")); System.out.println();System.out.println("两人最终成绩为:");System.out.println("张三:"+map.get("张三"));System.out.println("李四:"+map.get("李四"));}}6-17public class e {public static void main(String[] args) {long x=987654;String str1=String.valueOf(x);//使用String类的valueOf()方法实现数值到字符串的转换int y=365;String str2=Integer.toString(y,16);//转换为十六进制System.out.println("987654转换成字符串为:"+str1+"\n");System.out.println("十进制365转换为十六进制为:"+str2);}}6-21 import java.io.IOException;import java.util.Scanner;import java.util.List;import java.util.ArrayList;import java.util.InputMismatchException;class Person{private String name;private int phone;public String getName(){return name;}public int getPhone(){return phone;}public Person(String name,int phone){=name;this.phone=phone;}public String toString(){return name+"的电话号码为:"+phone;}}public class pp {public static void main(String args[])throws IOException{ char m;do{List<Person> list=new ArrayList<Person>();Scanner input=new Scanner(System.in);System.out.println("请输入同学的姓名和联系方式:");try { String Pname=input.next();int Phone=input.nextInt();Person LX=new Person(Pname,Phone);list.add(LX);for(Person p:list){System.out.println(p); }}catch (InputMismatchException e1){System.out.println("警告:您输入的值不合理!");}catch (Exception e2){System.out.println("警告:其它异常!");}System.out.println("是否继续输入? Y/N");m = (char) System.in.read();} while (m == 'y' || m == 'Y');}}6-22 import java.util.HashMap;import java.util.Map;import java.util.Scanner;public class pp {public static void main(String[] args) {Map<String,String>map=new HashMap<String,String>();map.put("ample","足够的、宽敞的");map.put("brisk", "轻快的、兴隆的");map.put("deem","认为、视为");map.put("doom","注定、劫数");map.put("gossip","流言飞语");map.put("lame","蹩脚的");map.put("oath","誓言");map.put("reap","收割、收获");map.put("shabby","破旧的、不公正的");map.put("ecology","生态、生态学");while (true) {Scanner sc = new Scanner(System.in);System.out.println("请输入单词");String str = sc.next();System.out.println("你输入的单词的中文含义是:"+"\t"+map.get(str));}}}8-10 import java.io.BufferedReader;import java.io.IOException;import java.io.FileReader;import java.io.FileNotFoundException;public class rr {public String readfile() {String str1 = "";BufferedReader fr;try {fr = new BufferedReader(new FileReader("java.txt"));String m = fr.readLine();while (m != null) {str1 += m + "\n";m = fr.readLine();StringBuffer s1=new StringBuffer(str1);System.out.println(s1);}fr.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}return str1;}public static void main(String[] args) {rr r= new rr();String str1 = r.readfile();StringBuffer str2=new StringBuffer(str1);str2.reverse();System.out.println(str2);}}8-14 import java.io.BufferedReader;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.util.Arrays;import java.util.Scanner;class s {public static void main(String[] args) {try {File f1=new File("file1.txt");File f2=new File("file2.txt");FileReader fr1=new FileReader(f1);FileReader fr2=new FileReader(f2);BufferedReader br1=new BufferedReader(fr1) ;BufferedReader br2=new BufferedReader(fr2) ;String len1=br1.readLine();String len2=br2.readLine();Scanner scan1=new Scanner(len1);Scanner scan2=new Scanner(len2);eDelimiter(",");eDelimiter(",");int[] I=new int[9];for (int j=0; j <=4; j++) {I[j] =scan1.nextInt();}for (int j=0; j <=3; j++) {I[j+5] = scan2.nextInt();}Arrays.sort(I);System.out.print(Arrays.toString(I));fr1.close();fr2.close();File f3=new File("file3.text");FileWriter fw=new FileWriter(f3);for (int a : I){fw.write(a+",");}fw.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}}9-6法一 class tt{public static synchronized void ttt() {int i=10;while(true){System.out.print(i++);try{Thread.sleep(500);}catch (InterruptedException e) {e.printStackTrace();}if (i==16){System.out.println();break;}System.out.print(",");}}}public class t implements Runnable {public void run() {tt.ttt();}public static void main(String[] args) {Thread t1=new Thread(new t(),"xiancheng1"); Thread t2=new Thread(new t(),"xiancheng2"); t1.start();t2.start();}}法二 class Printnum {public void shownum() {int i = 10;while (true) {try {System.out.print(i);if (i == 15) {System.out.println();break;}System.out.print(",");Thread.sleep(500);} catch (InterruptedException e) {e.printStackTrace();}i++;}}}public class Test9_6 implements Runnable {private static Printnum myprint = new Printnum();public void run() {synchronized (myprint) {myprint.shownum();}}public static void main(String[] args) {Thread t1 = new Thread(new Test9_6(), "线程1");t1.start();Thread t2 = new Thread(new Test9_6(), "线程2");t2.start();}}法三 class Print{public static synchronized void print() {for(int i=10;i<16;i++){System.out.print(i+",");try {Thread.sleep(500);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}public class t implements Runnable{public static void main(String[] args) {// TODO Auto-generated method stubThread t1=new Thread(new t());Thread t2=new Thread(new t());t1.start();t2.start();}public void run() {// TODO Auto-generated method stubPrint.print();System.out.println("\n");}}9-8(1)public class MyThread extends Thread{public static void main(String[] args) {Thread t1 = new Thread();Thread t2 = new MyThread();Thread t3 = new MyThread();t1.start();t2.start();t3.start();}public void run(){for(char i=97;i<123;i++){System.out.println(this.getName()+":"+i);}}}(2) //继承Thread类class myshow extends Thread {void show() {for (char i = 97; i < 123; i++) {System.out.print(this.getName() + ":" + i+"\t");//System.out.print(Thread.currentThread().getName()+ ":" + c+"\t");}}public void run() {show();}}public class myThread {public static void main(String[] args) {Thread t1 = new myshow();Thread t2 = new myshow();Thread t3 = new myshow();t1.setName("线程1");t2.setName("线程2");t3.setName("线程3");t1.start();t2.start();t3.start();}}(3) //实现Runnable接口class myshow implements Runnable {void show() {for (char i = 97; i < 123; i++) {System.out.print(Thread.currentThread().getName()+ ":" + c+"\t");}}public void run() {show();}}public class myThread {public static void main(String[] args) {Thread t1 = new myshow();Thread t2 = new myshow();Thread t3 = new myshow();Thread t1 = new Thread(new myshow(), "线程1");Thread t2 = new Thread(new myshow(), "线程2");Thread t3 = new Thread(new myshow(), "线程3");t1.start();t2.start();t3.start();}}。

JavaEE练习题(附答案)

JavaEE练习题(附答案)

一、名词解释(共5小题每题3分,共15分)1、MVC :Model、View和Controller,是一个设计模式,它强制性地使应用程序的输入、处理和输出分开,三个部分以最小的耦合协同工作,以增加程序的可扩展性和可维护性;2、OGNL:Object Graphic Navigation Language(对象图导航语言),是一个开源项目,是一种功能强大的EL(表达式语言),可通过简单的表达式来访问Java对象中的属性;3、持久化:即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘),是将程序数据在持久状态和瞬时状态间转换的机制;4、ORM:对象关系映射,是用于将对象与对象之间的关系对应到数据库表与表之间关系的一种模式;5、通知(Advice):定义了切面中的实现类型是指在定义好的切入点处所有执行的程序代码;6、事务:是工作中的基本逻辑单位,可以用于确保数据库能够被正确修改,避免数据只修改了一部分而导致数据不完整,或者在修改时受到用户干扰;7、POJO类:POJO(Plain Old Java Objects)简单的Java对象,实际就是普通JavaBeans,是为了避免和EJB混淆所创造的简称,它通指没有使用Entity Beans的普通java对象,可以把POJO作为支持业务逻辑的协助类。

8、AOP:面向切面编程,可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术;9、IoC:Inversion of Control(控制反转),是一个重要的面向对象编程的法则来削减计算机程序的耦合问题,IoC的基本概念是不创建对象,但是描述创建它们的方式,在代码中不直接与对象和服务连接,但在配置文件中描述哪一个组件需要哪一项服务。

容器负责将这些联系在一起;10、HQL:Hibernate Query Language的缩写,HQL的语法很像SQL,但HQL是一种面向对象的查询语言,操作的对象是类、实例、属性等。

“JavaEE编程技术”习题.doc

“JavaEE编程技术”习题.doc

一、选择题1、下面对于JNDI的描述正确的足A、J NDI是Java极用程序述接各种数据库的标准API;B、J NDI是Java应川程序连接各种命名R录服务的标准API;C、J NDI是连接邮件服务器的标准API;D、J NDI是编写网页的技术。

2、下Ifti的服务哪个不是H录服务A、N etwork Information Service (NIS);B、S un Java Directory Server;C、D NSD、N ovell Directory Service (NDS)3、要通过JNDI修改命名0录服务上绑定的倍息,使川下面的哪个方法?A、l ookupB、b indC、r ebindD、u nbind4、要删除服务器上的资源,使川下面的InitialContext的哪个方法?A、d eleteB、r ebindC、u nbindD、r emove5、J NDI接口中的Context和InitialContcxt位于哪个包中?A、j avax.sqlB、j avax.namingC、j ava.sqlD、j ava.naming6、下面关于JNDI树的描述正确的足A、J NDI树是用于访M命名H录服务的标准API;B、J NDI树是WebLogic提供的命名目录服务;C、J NDI树是Sim公司提供的命名鬥录服务;C、JNDI 树就是JNDI。

7、简答题1、简述命名服务和FI录服务的区别?2、简述JNDI的作用。

3、使用JNDI访问命名目录服务的基本过程足什么?4、通过InitialContext对命名0录服务上的资源进行增删改查的方法分别足什么?写出每个方法以及方法中参数的含义。

5、要连接到命名FI录服务耑要知道什么信息?一、选择题1、使用JDBC开发应用,创建数裾库连接的时候不需要知道哪个信息?A、数据库所在服务器的IP地址和服务所在的端口;B、连接数据库所需要的用户名口令;C、要连接的数据库的名字;D、要访问的数裾库屮的表的名字。

javaee期末试题及答案

javaee期末试题及答案

javaee期末试题及答案正文:一、选择题1. 在JavaEE中,以下哪个是用于创建Web应用程序的基础组件?A. ServletB. JDBCC. JSPD. Spring答案:A. Servlet2. 在JavaEE中,以下哪个是用于连接数据库的标准API?A. JDBCB. JSPC. JavaBeansD. JNDI答案:A. JDBC3. JavaEE的三层体系结构中,以下哪一层主要负责处理业务逻辑?A. 表现层B. 控制层C. 持久层D. 业务逻辑层答案:D. 业务逻辑层4. 在JavaEE中,以下哪个是用于展示动态内容的技术?A. ServletB. JSPC. JDBCD. JNDI答案:B. JSP5. 在JavaEE中,以下哪个是用于管理事务的技术?A. JDBCB. JNDIC. JTAD. JSP答案:C. JTA二、填空题1. 在JavaEE中,______是用于管理JavaBean的容器。

答案:JNDI2. 在JavaEE中,______是用于实现面向切面编程的框架。

答案:Spring3. 在JavaEE中,______是用于创建数据访问层的组件。

答案:JDBC4. 在JavaEE中,______是用于处理请求和响应的Web组件。

答案:Servlet5. 在JavaEE中,______是用于将Java代码嵌入HTML页面的技术。

答案:JSP三、问答题1. 请简要介绍JavaEE的三层体系结构。

答:JavaEE的三层体系结构包括表现层、业务逻辑层和持久层。

表现层负责处理用户请求和响应,通常使用Servlet和JSP等技术实现,用于展示动态内容和与用户进行交互。

业务逻辑层负责处理业务逻辑,包括处理用户请求、调用持久层组件进行数据操作等。

通常使用JavaBean等组件实现业务逻辑。

持久层负责与数据库进行交互,包括对数据的增删改查。

通常使用JDBC等标准API实现数据库的连接和操作。

JavaEE基础实用教程试题答案

JavaEE基础实用教程试题答案

JA V A EE 基础实用教‎程——2012年‎试题答案大‎全收录By:BYZ03‎‎3一、简答(1)1.Sprin‎‎g框架的优‎点都有什么‎?Sprin‎‎g是分层的‎架构,你可以选择‎使用你需要‎的层而不用‎管不需要的‎部分Sprin‎‎g是POJ‎‎O编程,POJO编‎程使得可持‎续构建和可‎测试能力提‎高依赖注入和‎I oC使得‎J DBC操‎作简单化Sprin‎‎g是开源的‎免费的Sprin‎‎g使得对象‎管理集中化‎合简单化2.描述一下S‎‎p ring‎‎中实现DI‎‎(Depen‎‎d ency‎‎Injec‎‎t ion)的几种方式‎方式一:接口注入,在实际中得‎到了普遍应‎用,即使在IO‎‎C的概念尚‎未确立时,这样的方法‎也已经频繁‎出现在我们‎的代码中。

方式二:Type2‎‎ IoC: Sette‎‎r injec‎‎t ion对‎象创建之后‎,将被依赖对‎象通过se‎‎t方法设置‎进去方式三:Type3‎‎ IoC: Const‎‎r u cto‎‎r injec‎‎t ion对‎象创建时,被依赖对象‎以构造方法‎参数的方式‎注入Sprin‎‎g的方式3.简述你对I‎‎o C(Inver‎‎s i on of Contr‎‎o l)的理解一个类需要‎用到某个接‎口的方法,我们需要将‎类A和接口‎B的实现关‎联起来,最简单的方‎法是类A中‎创建一个对‎于接口B的‎实现C的实‎例,但这种方法‎显然两者的‎依赖(Depen‎‎d ency‎‎)太大了。

而IoC的‎方法是只在‎类A中定义‎好用于关联‎接口B的实‎现的方法,将类A,接口B和接‎口B的实现‎C放入Io‎‎C的容器(Conta‎‎i ner)中,通过一定的‎配置由容器‎(C onta‎‎i ner)来实现类A‎‎与接口B的‎实现C的关‎联。

4. 简述AOP‎‎核心?1)Aspec‎‎t(切面)切面,是对交叉业‎务逻辑的统‎称。

JavaEE上篇期末考试题及答案

JavaEE上篇期末考试题及答案

JavaEE上篇期末考试题及答案一、选择题(每题2分,共20分)1. JavaEE中用于表示HTTP请求和响应的接口是:A. HttpServletRequestB. HttpServletResponseC. HttpSessionD. ServletContext答案:A2. 下列哪个不是JavaEE中的EJB类型?A. Session BeanB. Entity BeanC. Message Driven BeanD. Data Access Object答案:D3. 在JavaEE中,用于管理事务的注解是:A. @TransactionalB. @StatelessC. @EntityD. @PersistenceContext答案:A4. JavaEE中,用于声明式事务管理的接口是:A. UserTransactionB. EntityManagerC. DataSourceD. Connection答案:A5. 在JavaEE中,以下哪个注解用于声明一个类为Servlet?A. @WebServletB. @ControllerC. @ServiceD. @Component答案:A6. JavaEE中,用于配置Servlet映射的注解是:A. @GetMappingB. @PostMappingC. @RequestMappingD. @ServletComponent答案:C7. 在JavaEE中,以下哪个是用于声明一个类为JSP页面的注解?A. @JspViewB. @JspTagC. @JspPageD. @JspFragment答案:C8. JavaEE中,用于声明一个类为过滤器的注解是:A. @FilterB. @ServletC. @WebListenerD. @Controller答案:A9. 在JavaEE中,用于声明监听器的注解是:A. @ListenerB. @ObserverC. @WebListenerD. @Component答案:C10. JavaEE中,用于声明一个类为监听器的注解是:A. @ApplicationScopedB. @SessionScopedC. @RequestScopedD. @ConversationScoped答案:A二、填空题(每空2分,共20分)1. JavaEE中的______注解用于声明一个类为JAX-RS资源。

JavaEE企业级开发SSM框架题库及答案

JavaEE企业级开发SSM框架题库及答案

JavaEE企业级开发SSM框架题库及答案1、以下哪个方法可以定义Spring MVC中的拦截器()∙ A、继承HandlerInterceptor∙ B、实现WebRequestInterceptor∙ C、实现HandlerInterceptorAdapter∙ D、继承WebRequestInterceptor参考答案 : B2、下列有关AOP专业术语中,用于指那些被拦截到的点的是()。

∙ A、Joinpoint∙ B、Pointcut∙ C、Aspect∙ D、Advice参考答案 : A3、针对GET方式RESTful风格的请求http://localhost:8080/chapter14/user/1,后台方法接收参数的路径映射写法可行的是()。

∙ A、@RequestMapping("/user/{id}",method=RequestMethod.GET)∙ B、@RequestMapping(value="/user/ids")∙ C、@GetMapping(value="/user/{ids}")∙ D、@GetMapping(value="/user/{id}",method=RequestMethod.GET)参考答案 : C4、下面描述中,关于query()方法说法错误的是()∙ A、List query(String sql, RowMapper rowMapper)会执行String类型参数提供的SQL语句,并通过RowMapper返回一个List类型的结果∙ B、List query(String sql, PreparedStatementSetter pss, RowMapper rowMapper)会根据String类型参数提供的SQL语句创建PreparedStatement对象,通过RowMapper将结果返回到List中∙ C、List query(String sql, Object[] args, RowMapper rowMapper)会将args参数绑定到SQL语句中,并通过RowMapper返回一个Object类型的单行记录∙ D、queryForList(String sql,Object[] args, class<T> elementType)可以返回多行数据的结果,但必须是返回列表,elementType参数返回的是List元素类型参考答案 : C5、下面关于<collection>元素的描述正确的是()∙ A、MyBatis就是通过<collection>元素来处理一对多关联关系的∙ B、<collection>元素的属性与<association>元素完全相同∙ C、ofType属性与javaType属性对应,它用于指定实体对象中所有属性所包含的元素类型∙ D、<collection >元素只能使用嵌套查询方式参考答案 : A6、以下有关采用传统DAO开发方式进行MyBatis与Spring框架的整合的说法错误的是()∙ A、采用传统DAO开发方式进行MyBatis与Spring框架的整合时,只需要编写DAO接口∙ B、采用传统DAO开发方式进行MyBatis与Spring框架的整合时,需要向DAO实现类中注入SqlSessionFactory,然后在方法体内通过SqlSessionFactory创建SqlSession∙ C、可以使用mybatis-spring包中所提供的SqlSessionTemplate类或SqlSessionDaoSupport类来实现在类中注入SqlSessionFactory∙ D、SqlSessionDaoSupport是一个抽象支持类,它继承了DaoSupport类,主要是作为DAO的基类来使用。

JAVA-EE考试复习重点(带答案)

JAVA-EE考试复习重点(带答案)

一、判断题(每题1分,共16分)()1.程序中的语法错误可以在编译时立即发现。

()2.Servlet程序运行在服务器Web容器中。

()3.Glassfish是一款免费、开源、全面支持Java EE规范的应用服务器。

()4.include动作标记用于执行动态文件包含。

()5.taglib指令用于在JSP页面中引入JSP扩展标记库。

()6.<jsp:plugin>加载的JavaBean会下载到客户端运行。

()7.JSP注释内容会返回到客户端浏览器,但不会显示出来。

()8.JSTL的SQL标记库引用指令的prefix属性取值必须是sql。

()9.页面表单/参数可以通过response对象的相应方法取得。

()10.使用response的sendRedirect()方法页面跳转会重建request对象。

()11.使用RequestDispatcher的forward()方法页面跳转会导致地址栏改变。

()12.JSF实现库(JAR包)的消息文件优先于JSF本地消息文件.()13.消息驱动Bean不需要客户端程序主动调用。

()14.执行实体管理器的contains()方法后实体将成为被管理的。

()15.执行实体管理器的clear()方法会改变实体的被管理状态。

()16.JSF Converter接口的getAsObject方法执行String至Object的类型转换。

()17.JSP程序运行在客户端浏览器中。

×()18.Tomcat是一款免费、开源且全面支持Java EE规范的应用服务器。

×()19.include指令用于执行静态文件包含。

()20.page指令用于设置JSP页面的属性,但不包括导入Java类库。

×()21.〈jsp:forward〉页面跳转后的标题栏不会改变.×()22.HTML注释内容会返回到客户端浏览器,但不会显示出来。

()23.标准JavaBean必须是一个public类。

《JavaEE基础》课程考试试卷及答案解析

《JavaEE基础》课程考试试卷及答案解析

《JavaEE 基础》课程考试试卷(学生考试用)第 1 页 共 2 页课程名称: JavaEE基础 学分: 4 大纲编号试卷编号: A 考试方式: 开卷 满分分值: 100 考试时间: 100 分钟 组卷日期: 2021年6月5 日 组卷教师(签字): 审定人(签字): 学生班级: 学生学号: 学生姓名:图3 login.html3.完成JavaBean 程序设计题。

使用JSP 和JavaBean 来实现一个存款计算器。

要求:如图3所示,编写rate.jsp 调用JavaBean(RateCalculater.java)计算当输入金额和存款周期后,点击计算得出存款的本息合计,注意:假设一年利率1%,两年利率2%,三年利率3%,如图4所示。

(公式:本息合=本金*(1+利率)^年数)图3 rate.jsp 图4 rate.jsp二、综合题(本大题共4小题,每题10分,共40分)新建数据库StudentDB ,新建表student ,表结构如下: student 表字段名称字段类型备注id int 学生编号(主键、自增) sname varchar(20) 学生姓名 sageint学生年龄考试环境:开发平台:Eclipse/MyEclipse Web 服务器:Tomcat数据库:SQLServer/Oracle/MYSQL一、程序设计题(本大题共3小题,每题20分,共60分)1.完成JSP 程序设计题。

编写一个用户信息采集页面getstumsg.jsp ,如图1所示。

编写stumsg.jsp ,获取信息页面提交的内容并使用out 对象输出,运行结果如图2所示:图1 getStuMsg.jsp 图2 stuMsg.jsp2.完成Servlet 程序设计题。

编写用户登录页面login.html ,如图3所示。

编写并部署Servlet (LoginServlet.java ),实现用户名和密码的校验,当输入的用户名和密码均为"test",提示登录成功,欢迎对应的登录名的用户回来,否则提示登录失败。

JavaEE复习题选择题(有答案)

JavaEE复习题选择题(有答案)

第一章1、以下描述哪些方面与JA VA EE无关:(B)A、事务处理B、AppletC、资源管理D、分布式第三章1、Servlet程序的入口点是:(A )A、init()B、main()C、service()D、doGet()2、你的servlet类需要使用com.abc.Jsjx类,Jsjx.class文件应该放到以下哪个目录中?(D)A、WEB-INF/classesB、WEB-INF/lib/jarC、WEB-INF/jarsD、WEB-INF/classes/com/abc3、在WEB应用程序的目录结构中,在WEB-INF文件夹中的lib目录是放(C)文件的。

A、.jsp文件B、.class文件C、.jar文件D、web.xml文件4、下列哪一个XML标签表示某一个servlet的类(A)。

A、<servlet-class>st.jsjx.class</ servlet-class >B、<class>st.jsjx.class</class >C、<servlet >st.jsjx.class</ servlet >D、<servletclass>st.jsjx.class</ servletclass >5、看下列HTML标签:<html><body><a href=”/servlet/MyServlet”>Hello World</a></body></html>点击超级链接后下列哪一个servlet方法将被调用:(A)A、doGetB、doPostC、GetD、Post6、关于FORM表单提交的HTTP的GET方法不正确的是(C)A、不能向服务器提交二进制数据B、不能向服务器提交无限长度的数据C、不能向服务器提交多值参数D、参数附在URL后面7、servlet 的生命周期又一系列事件组成,把这些事件按照先后顺序排序,以下正确的是(B )A、加载类,实例化,请求处理,初始化,销毁B、加载类,实例化,初始化,请求处理,销毁C、实例化,加载类,初始化,请求处理,销毁D、加载类,初始化,实例化,请求处理,销毁8、在JA V A EE中,给定某Servlet的代码如下,编译运行该文件,以下陈述正确的是(B)。

JAVA-EE试题-已整理(含答案)

JAVA-EE试题-已整理(含答案)

一、选择题:5、以下哪个HIbernate主键生成策略是实现主键按数值顺序递增的?(A)A) increment B)Identity C)sequence D)native6、在JSP中,Page指令的(B)属性用来引入需要的包和类。

A)Exends B)import C)language D)contentType7、从以下哪个选项中可以获得Servlet的初始参数(C)A)Servlet B)ServletContextC)ServletConfig D)GenericServlet8、以下关于HIbernate说法正确的是(A)A)Hibernate是ORM的一种实现方式。

B)Hibernate不要JDBC的支持。

C)属于控制层D)对象关系映射,让对象同数据库表产生关系。

9、下面关于OPM的说法不正确的是(C)A)持久化是将程序中数据在瞬时状态和持久状态间转换的机制。

B)瞬时状态是指程序数据保存在内存中,程序退出时,数据就不存在了。

C)把关系数据库中的数据读出来不属于持久化。

D)程序数据直接保存成文本文件属于持久化。

10、下面关于SessionFactory的说法正确的是(B)A)SessionFactory是轻量级的,可以随意创建和销毁。

B)SessionFactory是重量级的接口,不可以随意创建和销毁。

C)SessionFactory是重量级的类,不可以随意创建和销毁。

D)SessionFactory是类。

11、下面关于Hibernate中load和get的方法说法正确的是(D)A)两个方法是一样的,没有任何区别。

B)两个方法是不一样的,get先找缓存,再找数据库。

C)两个方法是不一样的,load每次都会找数据库。

D)以上说法都不对。

12、spring能管理的组件不包括(A)A)Jsp B)javabean C)pojo D)DAO二、简答题:1、创建一个遵循Servlet规范的java类,有几种方法?分别是哪几种?答:7种。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、名词解释(共5小题每题3分,共15分)1、MVC :Model、View和Controller,是一个设计模式,它强制性地使应用程序的输入、处理和输出分开,三个部分以最小的耦合协同工作,以增加程序的可扩展性和可维护性;2、OGNL:Object Graphic Navigation Language(对象图导航语言),是一个开源项目,是一种功能强大的EL(表达式语言),可通过简单的表达式来访问Java对象中的属性;3、持久化:即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘),是将程序数据在持久状态和瞬时状态间转换的机制;4、ORM:对象关系映射,是用于将对象与对象之间的关系对应到数据库表与表之间关系的一种模式;5、通知(Advice):定义了切面中的实现类型是指在定义好的切入点处所有执行的程序代码;6、事务:是工作中的基本逻辑单位,可以用于确保数据库能够被正确修改,避免数据只修改了一部分而导致数据不完整,或者在修改时受到用户干扰;7、POJO类:POJO(Plain Old Java Objects)简单的Java对象,实际就是普通JavaBeans,是为了避免和EJB混淆所创造的简称,它通指没有使用Entity Beans的普通java对象,可以把POJO作为支持业务逻辑的协助类。

8、AOP:面向切面编程,可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术;9、IoC:Inversion of Control(控制反转),是一个重要的面向对象编程的法则来削减计算机程序的耦合问题,IoC的基本概念是不创建对象,但是描述创建它们的方式,在代码中不直接与对象和服务连接,但在配置文件中描述哪一个组件需要哪一项服务。

容器负责将这些联系在一起;10、HQL:Hibernate Query Language的缩写,HQL的语法很像SQL,但HQL是一种面向对象的查询语言,操作的对象是类、实例、属性等。

二、填空(共10空,每空2分,共20分)1、Spring从容器中获取bean对象可以分别通过(BeanFactory)接口和(ApplicationContext)接口来实现。

2、Struts2、Hibernate缺省的核心配置文件名分别为(struts.xml)和(hibernate.cfg.xml)。

3、OGNL上下文有一个bar对象,它不是根对象,bar有getvalue属性,则利用OGNL表达式求bar对象的getvalue属性值为(#bar.value)。

4、使用Hibernate的七个步骤是:创建Configuration、创建SessionFactory、(开启一次会话)、(开启一个事务)、持久化操作、(提交事务)和(释放资源)。

5、在Hibernate项目中,如实体类为User,则对应的配置文件名为(User.hbm.xml)。

6、Struts2的action类定义时传值方式可以采取(字段传值)、(模型传值)7、持久化对象的生命周期中对象的三种状态(瞬时态)(持久态)(脱管态)8、hibernate事务并发处理可以通过加锁的机制实现(悲观锁)(乐观锁);9、Struts2应用拦截器解决重复提交问题时页面中应使用的标签是(<s.token>)、Struts2实现国际化的标签是(<s.text>)。

三、问答题(共5小题,每题7分,共35分)1、Struts2 工作流程是什么?用户发送一个请求后,也就是一个*.action,web.xml中配置的FilterDispatcher(Struts2框架的核心控制器)就会过滤该请求。

如果请求是以.action结尾,该请求就会被转入Struts2框架处理,Struts2框架接收到*.action请求后,将根据struts.xml文件来决定调用哪个业务,处理业务后,根据action的返回字符串跳转到相应的页面。

2、开发Hibernate项目步骤是什么?(1)建立项目;(2)创建POJO类及其映射文件;(3)创建Hibernate核心配置文件;(4)编写代码,实现系统的详细功能和业务逻辑接口。

3、关联关系映射有哪几种?含义是什么?一对一关联:有两种实现方式:共享主键方式和唯一外键方式,是many-to-one的一种情况,不同的是关联中的外键字段具有唯一性约束;多对一单向关联:一对多双向关联:多对多关联:4、Hibernate相关接口作用是什么?Configuration:负责管理Hibernate的配置信息;SessionFactory:负责创建Session实例,可以通过Configurtion实例构建SessionFactory;Session:是Hibrenate持久化操作的基础,提供了众多持久化方法,通过这些方法,透明地完成对象的增、删、改、查等操作;Transaction:是Hibernate进行事物操作的接口,是对实际事务实现的一个抽象;事务对象通过Session创建;Query:Hibernate3.x中取代find()方法的接口,用于执行HQl语句,Query和HQL 是分不开的。

5、SQL与HQL区别?SQL操作的对象是数据表和列等数据对象,HQL操作的对象是类、实例、属性等。

6、Spring提供的3种通知(Advice)类型和含义?前通知:指在连接点之前,先执行通知中的代码;后通知:指在连接点执行后,再执行通知中的代码。

后增强一般分为连接点正常返回增强及连接点异常返回增强等类型;环绕通知:是一种功能强大的增强,可以自由地改变程序的流程、连接点返回值等。

除了可以自由添加横切功能外还需要负责主动调用连接点。

7、怎样通过Hibernate实现分页的功能?Hibernate的Query实例提供了两个有用的方法:setFirstResult(int firstResult)和setMaxResult(int maxResult),setFirstResult方法用于指定从哪一个对象开始查询,默认为第一个对象,setMaxResult方法用于指定一次最多查询的对象的数目,默认为所有对象。

8、struts2、spring、hibernate整合开发的过程。

(1)项目创建;(2)添加项目开发所需要的jar包;(3)实现Hibernate持久层;(4)编写DAO接口及实现类;(5)编写业务逻辑接口及实现类;(6)系统详细功能实现。

9、spring中实现注入依赖的方式是什么,比较不同的方式?set注入和构造注入;使用构造注入可以在构建对象的同时一并完成依赖关系的建立,所以,如果建立的对象的关系很多,使用构造注入就会在构造方法上留下很多的参数,使非常不易阅读的,这时建议使用set注入。

然而用set注入由于提供了setXx()方法,所以不能保证相关数据在执行时不被更改设定,因此,如果想让一些数据变为只读或私有,使用构造注入会是很好的选择。

10、Hibernate Session接口的get()/load()方法有什么区别?(1)当数据库表中id值为1时,使用get()方法返回null,使用load()方法返回异常;(2)load()查询会先到缓存中去查,如果没有则返回一个代理对象,等到后面使用这个代理对象的时候,才会到数据库中查找相应的信息。

若还是没有就抛出异常。

get()查询则先到缓存中去查,如果没有就直接到数据库中查询,还没有的话就返回null;(3)load()查询支持延迟加载,而get()查询不支持;总的来说,使用load()方法需要确保数据库中存在相应的值,否则就抛出异常,而get ()查询则是试探性的获取,如果没有就返回null。

四.程序填空题(共20分)1、完成下列代码的hibernate双向多对一映射,数据库表名与POJO类名相同、POJO类位于com.star.po包下。

Person.class省略了getter/setterRoom.class省略了getter/setterPerson.hbm.xml:<?xml version="1.0"encoding="utf-8"?><!DOCTYPE hibernate-mapping PUBLIC"-//Hibernate/Hibernate Mapping DTD 3.0//EN""/hibernate-mapping-3.0.dtd"><!--Mapping file autogenerated by MyEclipse Persistence Tools--><hibernate-mapping><class name="com.star.po.Person" table="person" catalog="test"> <id name="id" type="ng.Integer"><column name="id"/><generator class="native"/></id><many-to-one name="room" class="com.star.po.Room" fetch="select" cascade="all"><column name="roomId"/></many-to-one><property name="personName" type="ng.String"><column name="personName" length="50" not-null="true"/> </property></class></hibernate-mapping>Room.hbm.xml:<?xml version="1.0"encoding="utf-8"?><!DOCTYPE hibernate-mapping PUBLIC"-//Hibernate/Hibernate Mapping DTD 3.0//EN""/hibernate-mapping-3.0.dtd"><!--Mapping file autogenerated by MyEclipse Persistence Tools--><hibernate-mapping><class name="com.star.po.Room" table="room" catalog="test"> <id name="id" type="ng.Integer"><column name="id"/><generator class="native"/></id><property name="roomName" type="ng.String"><column name="roomName" not-null="true"/></property><set name="persons" inverse="false" cascade="all"><key><column name="roomId"/></key><one-to-many class="com.star.po.Person"/></set></class></hibernate-mapping>2、根据代码完成Action类的配置相关配置<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN""/dtds/struts-2.0.dtd"><struts><constant name="struts.configuration.xml.reload" value="true"></constant> <constant name="struts.il8n.encoding" value="UTF-8"></constant><package name="default" extends="struts-default" namespace="/user"> <action name="user" class="erAction"><result name="success" type="redirect">/welcome.jsp</result><result name="login">/login.jsp</result></action></package></struts>3、实现Spring AOP 前置通知的配置/schema/beans/spring-beans-2.5.xsd"><!--注册前置通知类--><bean id="beforeAdvice" class="org.aop.advice.AdviceBeforeHello"/><!-- 注册接口实现类--><bean id="hello" class="org.aop.interfaces.impl.Hello"></bean><!-- 注册代理类--><bean id="proxy" class="org.springframework.aop.framework.ProxyFactoryBean"> <!-- 指定应用的接口--><property name="proxyInterfaces"><value>org.aop.interfaces.IHello</value></property><!-- 目标对象,本例即为Hello对象--><property name="target" ref="hello"></property><!-- 应用的前置通知,拦截器名称--><property name="interceptorNames"><list><value>beforeAdvice</value></list></property></bean></beans>。

相关文档
最新文档