Java就业班第2阶段考试题_第1页
Java就业班第2阶段考试题_第2页
Java就业班第2阶段考试题_第3页
Java就业班第2阶段考试题_第4页
Java就业班第2阶段考试题_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

Java就业班考试题一、选择题(每题

1分,并且每题为单选,共

10分)1、假设在名称为

helloapp

的Web应用中有一个

hello.jsp

,它的文件路径如下

:C%CATALINA_HOME%/webapps/helloapp/hello/hello.jsp

,那么在浏览器端访问

hello.jsp

的URL是什么?(A)http://localhost:8080/hello.jsp(B)http://localhost:8080/helloapp/hello.jsp(C)http://localhost:8080/helloapp/hello/hello.jsp2、假设在

helloapp

应用中有一个

HelloServlet

类,它位于

org.javathinker

包下,那么这个类的

class文件应该放在什么目录下

?Dhelloapp/HelloServlet.classhelloapp/WEB-INF/HelloServlet.classhelloapp/WEB-INF/classes/HelloServlet.classhelloapp/WEB-INF/classes/org/javathinker/HelloServlet.class3、假设在 helloapp 应用中有一个 HelloServlet 类,它在 web.xml文件中的配置如下 :<servlet><servlet-name>HelloServlet</servlet-name></servlet><servlet-mapping><servlet-name>HelloServlet</servlet-name><url-pattern>/hello</url-pattern></servlet-mapping>那么在浏览器端访问 HelloServlet 的URL是什么?Dhttp://localhost:8080/HelloServlethttp://localhost:8080/helloapp/HelloServlethttp://localhost:8080/helloapp/org/javathinker/hellohttp://localhost:8080/helloapp/hello4、HttpServletRequest 对象是由谁创建的(A)由Servlet 容器负责创建,对于每个

?AHTTP请求,

Servlet

容器都会创建一个

HttpServletRequest对象建

(B)由JavaWeb应用的ServletHttpServletRequest 对象

或JSP组件负责创建,当

Servlet

或JSP组件响应

HTTP请求时,先创5、欲从HTTP请求中获得用户的请求参数值,应该调用下面的哪个方法(A)调用HttpServletRequest 对象的getAttribute() 方法(B)调用ServletContext 对象的getAttribute() 方法(C)调用HttpServletRequest 对象的getParameter() 方法

?A6、ServletContext 对象是由谁创建的 ?A(A)由Servlet 容器负责创建,对于每个 HTTP请求,Servlet(B)由JavaWeb应用本身负责为自己创建一个 ServletContext

容器都会创建一个对象

ServletContext

对象由Servlet容器负责创建,对于每个JavaWeb应用,在启动时,Servlet容器都会创建一个ServletContext 对象7、jspForward1.jsp 要把请求转发给 jspForward2.jsp ,应该在 jspForward1.jsp 中如何实现?B<ahref=“jspForward2.jsp”>jspForward2.jsp</a><jsp:forwardpage=“jspForward2.jsp”>8、下面哪个说法是正确的(A) 对于每个要求访问(B)每个HttpSession

?Bmaillogin.jsp对象都有唯一的

的HTTP请求,ID。

Servlet

容器都会创建一个

HttpSession

对象(C)JavaWeb应用程序必须负责为 HttpSession9、如果不希望 JSP网页支持 Session,应该如何办(A) 调用HttpSession 的invalidate() 方法

分配惟一的?A

ID(B)<%@pagesession="false"%>10、以下代码能否编译通过,假如能编译通过,运行时得到什么打印结果? Crequest.setAttribute(\"count\",newInteger(0));Integercount=

(Integer

)request.getAttribute(\"count\");(A)不能编译通过(B)能编译通过,并正常运行(C)编译通过,但运行时抛出

ClassCastException二、对下面的英文名称进行中文解释(每题

2分,共

20分)1、JSPJavaServerPageJava2、Servlet 小的应用程序

服务网页3、Filter 过滤器4、Listener 监听器5、AJAX 异步数据访问机制6、DWRDirectWebRemoting7、MVCModelViewControl 模型视图控制模式8、DAO数据访问对象9、JavaScript java 脚本语言10、J2EE Java2EnterpriseEdition java22企业版三、问答题(每题 3分,共30分)1、请阐述 JSP技术的主要优缺点有哪些?答:(1)writeonce,runererywhere;与平台无关有九个内置对象3)支持各种标签库,可用EL标签,便于美工修改页面2、请简述Servlet的生命周期答:init();doPost();doGet();destroy();3、描述JSP和Servlet的主要区别?它们各自应用的范围。答:JSP是在表示层,用于建立 JSP页面,可以与用户直接进行交互,而 servlet应用在业务层,是调用DAO层,用doGet()和doPost()方法,执行 Http请求。4、什么是应用服务器( ApplicationServer),它为Web应用程序提供方面的功能支持。5、简单介绍数据库连接池的主要优点和工作原理是什么?答: (1)牺牲内存,留出空间(2)用pool存储对象,buffer存储数据3)适合于B/S并发访问,可以提高工作效率,方便用户的查找和修改。6、请描述web.xml文件的作用有哪些?为什么要提供它?答:寻求servlet容器的地址7、什么是Web容器(Servlet容器)?答:Servlet容器是用doGet();或doPost()方法来响应 Http请求的。8、在JSP中如何读取客户端的请求?如何确定某个 JSP文件的真实(物理)路径。9、什么情况下会调用 Servlet类中的doGet()和doPost()方法?答:doGet()是通过地址调用的,而 doPost()是通过Form表单中的 method=“post”提交的。10、请描述 AJAX框架DWR的工作原理答:先修改署,再使用

web.xml,添加ServletJavascript 调用Java

映射,为类中的方法

DWR添加映射,然后创建

dwr.xml,

并部四、编程题(共40分)1、某个JSP页面中包含有下面的用户登陆表单,请编写一个响应该表单请求的Servlet程序(将所写的程序代码拷贝到Word文档中,并将执行的结果拷屏到(15分)Word文档中以便检查)。Login.jsp<%@pagelanguage="java"<!DOCTYPEHTMLPUBLIC

="utf-8">

%><html ><head></head><body><form action ="/Test/Jjservlet" method="post" >您的名称: <input type ="text" name="name1" /><br/>您的密码: <input type ="password" name="password1"<input type ="submit" value ="提交"/>

/><br/></form></body></html >Jjservletpackage com.jj;import import import import import import public class Jjservlet

extends

HttpServlet{public Jjservlet(){super ();}public void destroy(){super .destroy();}public void doGet(HttpServletRequestrequest,HttpServletResponseresponse)throws

ServletException,IOException{doPost(request,response);}public void doPost(HttpServletRequestrequest,HttpServletResponseresponse)throws ServletException,IOException{request.setCharacterEncoding("utf-8");Stringname=request.getParameter("name1");Stringpassword=request.getParameter("password1");request.setAttribute("name",name);request.setAttribute("password",password);System.out.println("名称为:"+name);System.out.println("密码为:"+password);request.getRequestDispatcher("/response.jsp").forward(request,response);}public

void

init()

throws

ServletException{}}Response.jsp<%@pagelanguage="java"<!DOCTYPEHTMLPUBLIC

="utf-8">

%><html ><head><title

>MyJSP'response.jsp'startingpage

</title

></head><body>Stringname=(String)request.getAttribute(Stringpassword=(String)request.getAttribute(

"name"

);"password"

);%>您的名称为: <%=name %><br/>您的密码为: <%=password %><br/></body></html >2、现有如下的数据库表结构,请编程一个 DAO组件类(DAO类中的方法自己决定)对该数据库表进行操作(将所写的程序代码拷贝到Word文档中,并将执行的结果拷屏到(15Word文档中以便检查)。分)Dpertiesdriver= logfile= :\\WebRoot.logmysql.driver= mysql.maxconn= 1000mysql.password= 123mysql.url= :mysql\://localhost\:3306/login?useUnicode\=true&characterEncoding\=utf-8mysql.user= rootDBConn.javapackagedatabase;publicclassDBConn{privatestaticConnectionconn=null;privateStatementstmt=null;privatePreparedStatementprepstmt=null;privatestaticDBConnectionManagerdcm=null;staticvoid init(){dcm=DBConnectionManager.getInstance();conn=dcm.getConnection("mysql");}publicDBConn()throwsException{init();}publicDBConn(intresultSetType,intresultSetConcurrency)throwsException{init();stmt=conn.createStatement(resultSetType,resultSetConcurrency);}publicDBConn(Stringsql)throwsException{init();this.prepareStatement(sql);}publicDBConn(Stringsql,intresultSetType,intresultSetConcurrency)throwsException{init();this.prepareStatement(sql,resultSetType,resultSetConcurrency);}publicvoidprepareStatement(Stringsql)throwsSQLException{prepstmt=conn.prepareStatement(sql);}publicvoidprepareStatement(Stringsql,intresultSetType,intresultSetConcurrency)throwsSQLException{prepstmt=conn.prepareStatement(sql,resultSetType,resultSetConcurrency);}publicvoidsetString(intindex,Stringvalue)throwsSQLException{prepstmt.setString(index,value);}publicvoidsetInt(intindex,intvalue)throwsSQLException{prepstmt.setInt(index,value);}publicvoidsetBoolean(intindex,booleanvalue)throwsSQLException{prepstmt.setBoolean(index,value);}publicvoidsetDate(intindex,Datevalue)throwsSQLException{prepstmt.setDate(index,value);}publicvoidsetLong(intindex,longvalue)throwsSQLException{prepstmt.setLong(index,value);}publicvoidsetFloat(intindex,floatvalue)throwsSQLException{prepstmt.setFloat(index,value);}publicvoidsetBytes(intindex,byte[]value)throwsSQLException{prepstmt.setBytes(index,value);}publicvoidclearParameters()throwsSQLException{prepstmt.clearParameters();prepstmt=null;}publicPreparedStatementgetPreparedStatement(){returnprepstmt;}publicStatementgetStatement(){returnstmt;}publicResultSetexecuteQuery(Stringsql)throwsSQLException{if(stmt!=null){returnstmt.executeQuery(sql);}elsereturnnull;}publicResultSetexecuteQuery()throwsSQLException{if(prepstmt!=null){returnprepstmt.executeQuery();}elsereturnnull;}publicintexecuteUpdate(Stringsql)throwsSQLException{if(stmt!=null){return(stmt.executeUpdate(sql));}else{return0;}}publicintexecuteUpdate()throwsSQLException{if(prepstmt!=null){return(prepstmt.executeUpdate());}else{return0;}}publicvoidclose()throwsException{if(stmt!=null) {stmt.close();stmt=null;}if(prepstmt!=null){prepstmt.close();prepstmt=null;}if(conn!=null){dcm.freeConnection("mysql",conn);}}publicstaticConnectiongetConn(){init();returnconn;}publicvoidsetAutoCommit(booleanautoCommit)throwsSQLException{conn.setAutoCommit(autoCommit);}publicvoidcommit()throwsSQLException{mit();}publicvoidrollback()throwsSQLException{conn.rollback();}}DBConnectionManager.javapackagedatabase;publicclassDBConnectionManager{staticprivateDBConnectionManagerinstance;// 唯一实例staticprivateintclients;privateVectordrivers=newVector();//存放所有的驱动程序privatePrintWriterlog;privateHashtablepools=newHashtable();staticsynchronizedpublicDBConnectionManagergetInstance(){if(instance==null){instance=newDBConnectionManager();}clients++;returninstance;}privateDBConnectionManager(){init();}privatevoidinit(){InputStreamis=getClass().getResourceAsStream("perties");PropertiesdbProps=newProperties();try{dbProps.load(is);}catch(Exceptione){return;}loadDrivers(dbProps);createPools(dbProps);}publicConnectiongetConnection(Stringname){DBConnectionPoolpool=(DBConnectionPool)pools.get(name);if(pool!=null){returnpool.getConnection();}returnnull;}publicvoidfreeConnection(Stringname,Connectioncon){DBConnectionPoolpool=(DBConnectionPool)pools.get(name);if(pool!=null){pool.freeConnection(con);}}privatevoidloadDrivers(Propertiesprops){StringdriverClasses=props.getProperty("driver");StringTokenizerst=newStringTokenizer(driverClasses);while(st.hasMoreElements()){StringdriverClassName=st.nextToken().trim();try{Driverdriver=(Driver)Class.forName(driverClassName).newInstance();DriverManager.registerDriver(driver);drivers.addElement(driver);}catch(Exceptione){ 无法注册 JDBC驱动程序:"+driverClassName+", 错误:"+e);}}}privatevoidcreatePools(Propertiesprops){EnumerationpropNames=pertyNames();while(propNames.hasMoreElements()){Stringname=(String)propNames.nextElement();if(name.endsWith(".url")){StringpoolName=name.substring(0,name.lastIndexOf("."));Stringurl=props.getProperty(poolName+".url");if(url==null){没有为连接池 "+poolName+"指定URL");continue;}Stringuser=props.getProperty(poolName+".user");Stringpassword=props.getProperty(poolName+".password");Stringmaxconn=props.getProperty(poolName+".maxconn","0");intmax;try{max=Integer.valueOf(maxconn).intValue();}catch(NumberFormatExceptione){log.println("

错误的最大连接数限制+poolName);

:"+maxconn+".

连接池

:"max=0;}DBConnectionPoolpool=newDBConnectionPool(poolName,url,user,password,max);pools.put(poolName,pool);}}}publicsynchronizedvoidrelease(){if(--clients!=0){return;}EnumerationallPools=pools.elements();while(allPools.hasMoreElements()){DBConnectionPoolpool=(DBConnectionPool)allPools.nextElement();pool.release();}EnumerationallDrivers=drivers.elements();while(allDrivers.hasMoreElements()){Driverdriver=(Driver)allDrivers.nextElement();try{DriverManager.deregisterDriver(driver);}catch(SQLExceptione){"无法撤销下列JDBC驱动程序的注册:"+driver.getClass().getName());//log.println(newDate()+";"+e.getMessage()+";"// +"无法撤销下列 JDBC驱动程序的注册 :"+driver.getClass().getName());}}}classDBConnectionPool{privateintcheckedOut;//连接的个数privateVectorfreeConnections=newVector();//存放释放后的连接privateintmaxConn;//最大连接个数privateStringname;//连接的名字privateStringpassword;//密码privateStringURL;//数据库jdbc连接字符串privateStringuser;//用户名publicDBConnectionPool(Stringname,Stringurl,Stringuser,Stringpwd,intmaxconn){=name;this.URL=url;this.user=user;this.password=pwd;this.maxConn=maxconn;}publicsynchronizedvoidfreeConnection(Connectioncon){freeConnections.addElement(con);checkedOut--;notifyAll();}publicsynchronizedConnectiongetConnection(){Connectioncon=null;if(freeConnections.size()>0){con=(Connection)freeConnections.firstElement();freeConnections.removeElementAt(0);try{if(con.isClosed()){log.println(newDate()+";"+" 从连接池"+name"删除一个无效连接");con=getConnection();}}catch(SQLExceptione){ 从连接池"+name+"删除一个无效连接 ");con=getConnection();}}elseif(maxConn==0||checkedOut<maxConn){con=newConnection();}if(con!=null){checkedOut++;}returncon;}privateConnectionnewConnection(){Connectioncon=null;try{if(user==null){con=DriverManager.getConnection(URL);}else{con=DriverManager.getConnection(URL,user,password);}}catch(SQLExceptione){"无法创建下列URL的连接:"+URL);returnnull;}returncon;}publicsynchronizedConnectiongetConnection(longtimeout){longstartTime=newDate().getTime();Connectioncon;while((con=getConnection())==null){try{wait(timeout);}catch(InterruptedExceptione){}if((newDate().getTime()-startTime)>=timeout){wait()返回的原因是超时returnnull;}}returncon;}/**关闭所有连接*/publicsynchronizedvoidrelease(){EnumerationallConnections=freeConnections.elements();while(allConnections.hasMoreElements()){Connectioncon=(Connection)allConnections.nextElement();try{con.close();}catch(SQLExceptione){ 无法关闭连接池 "+name+"中的连接");}}freeConnections.removeAllElements();}}}3、某个JSP页面中包含有下面的用户登陆表单,其中包含有请编写一个响应该表单请求的 Struts 框架的Action 类程序(

userName和5分)。

userPassWord

两个属性。JSP:<%@page

language ="java" pageEncoding ="UTF-8"

%><%@taglib<%@taglib

uri uri

prefixprefix

="bean"="html"

%>%><html ><head><title >JSPforUserloginFormform </title ></head><body><html:form action ="/userlogin" method ="post" >用户名称 : <html:text property ="userName" /><html:errorsproperty ="userName" /><br/>用户密码 : <html:password property ="userPassWord" /><property ="userPassWord" /><br/><html:submit value ="提交"/></html:form >结果显示: <br>用户名称 :${userloginForm.userName} <br>用户密码 :${userloginForm.userPassWord}

html:errors</

</html

body>

>Action的代码:/*GeneratedbyMyEclipseStrutsTemplatepath:templates/java/JavaClass.vtl*//**MyEclipseStrutsCreationdate:08-29-2009XDocletdefinition:* @struts.action path="/userlogin" name="userloginForm"input="/userlogin.jsp"parameter="method"scope="request"validate="true"*/publicclassUserloginActionextendsAction{/*GeneratedMethods*//**Methodexecute@parammapping@paramform@paramrequest@paramresponse@returnActionForward*/publicActionForwardexecute(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse){UserloginFormuserloginForm=(UserloginForm)form;//TODOAuto-generatedmethodstubrequest.setAttribute("userloginForm",userloginForm);returnnewActionForward("/userlogin.jsp");}}实现:4、如果在Web应用中已经正确完成了以下监听器程序,请问监听器中的两个方法在何时被调用,并写出为了让监听器生效,web.xml中必须完成的配置。(5分)publicclassSomeServletContextListenerimplementsServletContextListener{publicvoidcontextDestroyed(ServletContextEventarg0){}publicvoidcontextInitialized(ServletContextEventarg0){}}幸福,不能用手去捉摸,只能用心去琢磨,只能静静去体味。细细地品味了

温馨提示

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

评论

0/150

提交评论