苏州科技学院JAVAEE期末考试试卷(陆卫忠版)

更新时间:2024-04-04 15:29:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

试题类型:

一、单项选择题(每小题2分,共20分)

1.以下关于Servlet程序的叙述中,错误的是(ABD)。

A)HttpServlet是一个抽象类,继承它的子类要强制实现init()方法,service()方法、destroy()三个方法,因为这三个方法都是抽象类中的抽象方法。

B)HttpServlet类中,init()方法的开象是一个ServletConfig对象,它相当于JSP中的application对象。 C)HttpServlet类中,doXXX()方法的两个形参依次为HttpServletResponse、HttpServletRequest对象。

D)如果多个用户请求同时访问一个Servlet程序,则init()方法、service()方法、destroy()三个方法会被多个线程运行。

2.以下关于过滤器的叙述中,正确的是(ACD)。

A)客户端请求激活的过滤器链是web应用中部署的过滤器链的了集。

B)请求访问一个目标资源时,目标资源的输出信息直接付给客户端,不再经过过滤器的处理。 C)过滤器中,业务逻辑代码是在doFilter()方法内实现的。 D)过滤器是一种特殊的Servlet程序。

3.JSP页面的Servlet程序中,各主要方法的执行先后顺序为(C)单选 A)getDependants( )、jspInit( )、jspService( )、jspDestroy( ) B)jspService( )、jspInvoke( )、_jspDestroy( ) C)jspInit( )、_jspService( )、jspDestroy( ) D)jspInit( )、jspService( )、jspDestroy( ) E)_jspService( )

4.要将request转发给下一个JSP页面,可行的方案是(BCD)。 A)直接使用pageContext.forward()

B)通过application.getRequestDispatcher()获得目标资源的RequestDispatcher对象,在执行对象的forward()方法 C)使用

D)直接使用response.sendRedirect()

5.以下哪些些关系属于Web组件的关联关系(ACD)

A)请求重定向 B)提交表单数据 C)请求转发 D包含 6.关于在web.xml 文件中配置欢迎文件清单说法正确的是(ACDE)。

A)使用元素配置欢迎清单 B)只能配置一个欢迎文件

C)可以配置多个欢迎文件 D)Web容器调用会依次寻找欢迎文件,直到找到为止 E)如果web容器找不到欢迎文件则报404错误。

7.下列对元素属性描述正确的有(ABCD)。

A)ClassName和action元素对应的配置元素 B)forward转发的URL路径 C)Input:输入表单的URL路径,当表单验证失败时,将把请求转发到该URL。 D)name:指定和Action关联的Action FormBean的名字。 E)path:指定访问Action的路径,以“/”开头,无扩展名。 8.根据UML语言,类之间存在哪几种关系(ACD)。 A)关联关系 B)累积关系 C)依赖关系 D)继承关系

9.执行下面的SQL查询,关于返回值的说法,正确的是(B)。(单选) Select u.username,u.userid from cs2011.entity.User u Where u is not null

A)语法错误,不能执行 B)返回一个类型为List的实例

C)返回一个数组 D)当返回结果只有一条时,返回一个数组 10.一般情况下,数据模型与对象模型之间有那些配置关系(ABC)。 A)表对应类 B)记录对应对象

C)表的字段对应类的属性 D)表之间的参考关系对应类之间的依赖关系

11.对于以下程序,Customer对象在第几行变为持久化状态?(B)。(单选) Customer customer=new Customer(); Customer.setName();

Session session1=sessionFactory.openSession(); Transaction tx1=session1.beginTransaction();//line1 Session1.sava(customer);//line2 Tx1.commit();//line3 Session.close();//line4 A)lin1 B)lin2 C)lin3 D)lin4

12. 关于Spring的说法错误的(D)。

A)Spring是一个轻量级JAVAEE的框架集合。 B)Spring包含一个“依赖注入”模式的实现 C)使用Spring可以实现声明事务

D)Spring提供了AOP方式的日志系统

二、判断题(每小题2分,共10分) 三、简答题(共10分)

1.Spring的核心组件是什么?说明在Spring中实现控件反转IOC的注入方法有那几种方法。

Spring 框架中核心组件有三个:Core、Context 和 Beans。其中最核心的组件就是Beans, Spring提供的最核心的功能就是Bean Factory。 Set注入与构造注入

四、应用系统设计(60分)

1.视图Input.java上是新闻系统发布表单,代码如下所示,设对应的接收请求Servlet文件名为Input.java,该Servlet将用户表单上提交的信息向客户端返加以便进行确认。 表单HTML代码:

试完成(共20分):

(1) 编写该Servlet(10分)

(2) 写出该Servlet的配置文件名和其中Servlet部分的配置;(5分) (3) 输出中文乱码问题的解决方法。(5分)

解:

(1) Input.java ……..

Public class Input extends HttpServlet{//在process方法中完成处理 Protected void process(HttpServletRequest,HttpServletResponse response) Throws ServletException ,IOException{

String titile,autorname,categroy,context,keyword[],local;//新闻各项目 String strkeyword=\;//新闻关键字处理 String format;//显示格式处理

String returnStrNews;//返回新闻信息 PrintWriter pw;//输出

titile=request.getParameter(\);//获取新闻标题 autorname=request.getParameter(\);//获取新闻作者 categroy=request.getParameter(\);//获取新闻类别 context=request.getParameter(\);//获取新闻内容

keyword=request.getParameterValues(\);//获取新闻关键字 local=request.getParameter(\);//获取新闻发生地 //处理新闻关键字

for(String str :keyword){ }

//添加显示格式

format=\标题:%s
\+

\作者:%s
\+ \类别:%s
\+ \内容:%s
\+ \关键字:%s
\+ \新闻发生地:%s
\; strkeyword+=str+\;

//处理好要返回客户端的新闻信息

returnStrNews=String.format(format,titile,autorname,

categroy,context,strkeyword);

pw=response.getWriter();//响应

pw.write(returnStrNews);//向客户端返回 pw.flush();//刷新 pw.close();//关闭

}

Public void doPost()HttpServletRequest,HttpServletResponse response) throws ServletException ,IOException{

this. process (request, response); //此处完成调用process()方法

} }

(2)该Servlet的配置文件名是:web.xml Servlet部分的配置:

Input

包名. Input

Input /input

(3)输出中文乱码问题的解决方法。 两种方法:一种写一个过滤器。

一种是在servlet里设置中文编码为GB2312. Request.setCharacterEncoding(“GB2312”);

2.设上题的表单中,用户提交的数据要保存到Mysql的test数据库的表格news中,保存的内容分别是标题、作者、关键字、内容、新闻发生地,字段名与表单上的组件name名相同。按以下要求完成:(共16分) (1)写出创建该表的SQL语句,字段中包括主键id(自增字段);

(2)修改上题中的Input.java中的process()方法,用JDBC保存数据,保存成功后转向Success.jsp; (10分) 解:(1)SQL语句 create table news( id int(11) primary key auto_increament; titile varchar(80),

autorname varchar(40), keyword varchar(40), context varchar(1024), local varchar(40) );

(2)Input.java

Public class input extends HttpServlet{//在process方法中完成处理 Protected void process(HttpServletRequest,HttpServletResponse response)throws ServletException ,IOException{ String titile,autorname,context,keyword[],local;//新闻各项目 Connection con = null;//创建数据连接 titile=request.getParameter(\获取新闻标题 autorname=request.getParameter(\获取新闻作者 context=request.getParameter(\获取新闻内容 keyword=request.getParameterValues(\获取新闻关键字 local=request.getParameter(\获取新闻发生地 //处理新闻关键字 for(strkeyword:keyword){ strkeyword+=strkeyword+\ } try{ Class.forName(\加载驱动器

con

DriverManager.getConnection(\/studentDB?characterEncoding=utf-8\ PreparedStatement pstmt=conn.prepareStatement( \ pstmt.setString(1,titile); pstmt.setString(2,autorname); pstmt.setString(3,context); pstmt.setString(4,keyword); pstmt.setString(5,local); int x = pstmt.executeUpdate(); if(x >=1) result = true; }catch(Exception e){ throw e; }finally{ if(conn!=null){ try { conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } if( result)

=

request.getRequestDispatcher(\保存成功,转向Success.jsp代码 } } 3.假设题二的新闻发布是运行在Strus2框架下,表单的提交保存请求是由Action完成的,成功后要转向视图Success.jsp,试完成:

(1)写出需要的实体类(可省略setter/getter方法):

(2)写出实现保存新闻的该Action(Action类名为InputAction.java) (3)写出该Action的配置文件名和其中的Action

解决:(1)实体类News.java public class News{

private String titile;//标题

private String autorname;//作者 private String keyword;//关键字 private String context;//内容 private String local;//发生地

public void News(){ supser();

} public void News(String titile,String autorname,String keyword,String context,String local){ this.titile=titile; this.autorname=autorname; this.keyword=keyword; this.context=context; this.local=local; } }

(2)InputAction.java

Public class InputAction extends ActionSupport{

Protected void addNews(News news){//这部分代码假设已完成,可直接调用} //需要完成的其他代码 private News news; public News get News(){ return news; }

public void setNews(News news){ this.news=news }

public String execute() throws Exception { this. addNews(news); return SUCCESS; }

}

(3)Action 的配置文件名: Action 部分的配置内容如下:

/Success.jsp

4.请利用Hibenate框架,改写上题的InputAction 中protected void addNews(News news)方法,实现用户注册数据写入数据库(假设SessionFactory 类的类名为HiberanteSessionFactory,可直接使用),按下列要求完成:(共10) (1)设置Hiberante的POJO(即实体类)为News,写出News类与new表的关系映射在文件News.hbm.xml的配置内容; (2)改写InputAction.java中的protected void addNews(News news)方法,使用SessionFactory实现该方法。 解:(1)News.hbm.xml(XML文件格式的映射配置部分)

(2)InputAction.java

Public class InputAction extends ActionSupport{ Protected void addNew(News news){//需要完成的其他代码

Configuration cfg=new Configuration().configure();

SessionFactory sessionFactory =cfg.buildSessionFactory(); Session session=sessionFactory.openSession(); Transaction t=null;

HttpServletRequest request= ServletActionContent.getRequest();//获取HttpServletRequest对象 try{

t=session.begionTransaction(); news=new News();

titile=request.getParameter(\获取新闻标题 news.setTitile(request.getParameter(\

news.setAutorname(request.getParameter(\ news.setContext(request.getParameter(\ news.setKeyword(request.getParameter(\ news.setLocal(request.getParameter(\ session.sava(news); t.commit();

}catch(Exception e){ if(t!=null){ t.rollback(); }

e.printStackTrace(); }finaly{

session.close(); } } //省略需要完成的其他代码 }

本文来源:https://www.bwwdw.com/article/3ttr.html

Top