JavaWeb测试题一、选择题(每题4分,共20分)1、如果数据库中某个字段为Number型,可以通过结果集中的哪个方法获取(B)A.getNumber()B.getDouble()C.setNumber()D.setDouble()2、工具类里的方法一般具备什么样的特点:(A)A、通常都是static的B、通常都是final的C、通常都是synchronized的D、通常都是abstract的3、在读取配置文件时,使用”类对象.getResourceAsStream(B)”获取输出流时,需要所读文件的什么路径:A、绝对路径B、相对路径C、网络路径D、虚拟路径4、使用JDBC哪个接口的哪个方法可以手动控制事务AA.Connection.setAutoCommit(false);B.Connection.setAutoCommit(true);C.Statement.setAutoCommit(false);D.Statement.setAutoCommit(true);5、在三层应用程序中,事务的控制应当在哪一层处理BA、表现层viewB、业务层C、数据访问层DAOD、哪一层都可以二、简答题(每题5分,共40分)1、简述JDBC编程的六个步骤(不写代码)导jar包、加载驱动、获取链接、获取sql对象、处理结果集、关闭资源2、简述三层结构的作用DAO对数据库的基本操作Service业务方法View展示页面效果3、简述两种开发Servlet程序编程步骤ImplementsServlet覆盖5方法配置ExtendsHttpServlet覆盖service方法配置文件配置4、简述请求和响应乱码的处理方法请求:request.setCharacterEncoding()Conf/service.xmlURIEncoding响应:response.setCharacterEncoding()response.setContentType(“charset=GBK”)5、简述forward和Redirect的区别Forward:请求转发,一次请求,可以用request作用域传递数据Redirect:重定向,两次请求,不可以用request作用域传递数据,传递数据只能在路径后拼接6、写出三种作用域以及他们的区别Request一次请求有效Session一个浏览器有效ServletContext一个项目(应用)有效7、简述过滤器的开发步骤ImplementsFilter覆盖3方法配置文件配置8、简述Session记录用户状态的原理请求到达服务器之后,服务器会创建session对象,将session对象生成的id值,自动放入cookie中(cookie(“JSESSIONID”,sessionid)),随着响应传回客户端三、编程题(每题10分,共40分)1、写出表连接的sql语句(查询employees表和departments表所有信息,条件department_id相等)Selecte.*,d.*fromemployeeseleftjoindepartmentsdone.department_id=d.dpartment_id2、写出查询所有的用户(T_User表)的JDBC操作(以List集合返回)PublicclassXX{Connectionconn=null;PreparedStatementpstm=null;ResultSetrs=null;ListUserusers=newArrayListUser();Try{Class.forName(“oracle.jdbc.OracleDriver”);Conn=DriverManager.getConnection(“jdbc:oracle:thin:@localhost:1521:xe”,”hr”,”hr”);Stringsql=“select*fromt_user”;Pstm=conn.prepareStatement(sql);Rs=pstm.executeQuery();While(rs.next()){Useru=newUser();u.setId(rs.getInt(1));u.setName(rs.getString(2));Users.add(u);}Returnusers;}catch(Exceptione){e.printStatcTrace();Returnnull;}finally{If(rs!=null)try{rs.close()}catch(Exceptione){}If(pstm!=null)try{pstm.close()}catch(Exceptione){}If(conn!=null)try{conn.close()}catch(Exceptione){}}}3、用forward和redirect跳转,从当前Servlet跳转到指定Servlet(/baizhi/b)request.getRequestDispatcher(“/baizhi/b”).forward(request,response)Response.sendRedirect(“项目/baizhi/b”);4、写一个过滤器器(登陆验证过滤器),并写出他的web.xml中的配置(类名com.baizhi.EncodingFilter,需要拦截的路径为二级路径,路径名随意)ClassEncodingFilterimplementsFilter{PublicvoiddoFilter(ServletRequerstrequest,ServletResponseresponse,Chainc){HttpSessionsesion=request.getSession();Stringflog=(String)session.getAttribute(“flog”)If(“Yes”.equals(flog)){c.doFilter(request,response)}else{HttpServletResponser=(HttpServletResponse)responser.sendRedirect(“/项目/login.html”)}}}filterfilter-namexx/filter-namefilter-classcom.baizhi.EncodingFilter/filter-class/filterfilter-mappingfilter-namexx/filter-nameurl-pattern/login/*/url-pattern/filter-mapping