JavaWeb测试题总结

一、 选择题

1. 表单中的数据要提交到到哪里处理由表单的( C)属性指定。

A.method     B. name    C. action    D. 以上都不对 

2. 要运行JSP程序,下列说法不正确的是( B )

A. 服务器端需要安装Servlet容器,如Tomcat等。

B. 客户端需要安装Servlet容器,如Tomcat等。

C. 服务器端需要安装JDK。

D. 客户端需要安装浏览器,如IE等。

3. 当发布Web应用程序时,通常把Web应用程序的目录及文件放到Tomcat的(  C)目录下。

A.work     B. temp    C. webapps    D. conf 

4. 下面有关HTTP协议的说法不正确的是( D )

A. HTTP协议是Web应用所使用的主要协议

B. HTTP协议是一种超文本传输协议(Hypertext Transfer Protocol),是基于请求/响应模式的

C. HTTP是无状态协议

D. HTTP的请求和响应消息如果没有发送并传递成功的话,HTTP可以保存已传递的信息

5. 下面有关Servlet的描述错误的是(C  )。

A. 一个Servlet就是Java中的一个类

B. Servlet是位于Web 服务器内部的服务器端的Java应用程序

C. Servlet可以由客户端的浏览器解释执行

D. 加载Servlet的Web服务器必须包含支持Servlet的Java虚拟机    

6. 下面不属于JSP指令的是:( B )

A. include   B. import    C. page    D. taglib

7. ( B )动作用于转向另一个页面。

A. next         B. forward         C. include           D. param

8. 在项目中已经建立了一个JavaBean,该类为:bean.Student,该bean具有name属性,则下面标签用法正确的是:( C )

A.<jsp:useBean id="student" class="Student" scope="session">

</jsp:useBean>

B.<jsp:useBean id="student" class="Student" scope="session">

</jsp:useBean>

C.<jsp:useBean id="student" class="bean.Student" scope="session">

</jsp:useBean>

D.<jsp:getProperty name="name" property="student"/>

9. 下列选项中,(  B)可以准确地获取请求页面的一个文本框的输入(文本框的名称为name)。

A. request.getParameter(name) 

B. request.getParameter(”name”) 

C. request.getParameterValues(name)

D. request.getParameterValues(“name”)

10. 使用response对象进行重定向时,使用的方法是( C )。

A. getAttribute    B. setContentType   

 C. sendRedirect     D. setAttribute

11. session对象中用于设定指定名字的属性值,并且把它存储在session对象中的方法是( A )。

A. setAttribute    B. getAttributeNames  

C. getValue      D. getAttribute

12. 在application对象中用(B  )方法可以获得application对象中的所有变量名。

A. getServerInfo     B. nextElements()  

C. removeAttribute   D. getRealPath

13. 有关struts 2的说法不正确的是( B )

A. Struts是一个用于简化MVC框架(Framework)开发的Web应用框架

B. 应用Struts 2不需要进行配置

C. Struts 2 含有丰富的标签

D. Struts2采用了WebWork的核心技术

14. Web应用的数据共享方式不包括( C )。

A.基于请求的共享   B.基于会话的共享

C.基于页面的共享   D.基于应用的共享

15. 要在页面上输出2+3=${2+3},则对应的程序代码应为(A  )。

A. 2+3=\${2+3}

B. 2+3=${2+3}    

C. 2+3=/${2+3}    

D. 以上都不对 

16. 下面有关EL中“.“和“[ ]“两种存取运算符的说法不正确的是( C  )

A. 两者在某些情况下是等效的

B. “[ ]“运算符主要用来访问数组、列表或其他集合

C. 如果要动态取值时,两者都可以实现

D. 当要存取的属性名称中包含一些特殊字符,如.或?等并非字母或数字的符号,就一定要使用“[ ]“ 

17. 要使用JSTL的核心标签库,需要在JSP源文件的首部加入如下声明语句( A )

A. <%@ taglib prefix="c" 

uri="http://java.sun.com/jsp/jstl/core" %>

B. <%@ taglib prefix=”x” 

uri=”http://java.sun.com/jsp/jstl/xml”%>

C. <%@ taglib prefix=”fmt” 

uri=”http://java.sun.com/jsp/jstl/fmt”%>

D. <%@ taglib prefix=”sql”

uri=”http://java.sun.com/jsp/jstl/sql”%>

18. 以下(  B)标签用于实现循环功能,类似与Java语句中的for循环。

A.  <c:set>           B. <c:forEach>  

B.  <c:Tokens>        D. <c:import> 

19. 以下URL中语法不正确的是(  D )

A.http://www.bta.net.cn:80/software/home.html

B.telnet://bdysseu.bbb.com:70

C.ftp://ftp.btbu.edu.cn

D.www0.btbu.edu.cn 

20. page指令用于定义JSP文件中的全局属性,下列关于该指令用法的描述不正确的是:( D )

A. <%@ page %>作用于整个JSP页面。  

B. 可以在一个页面中使用多个<%@ page %>指令。

C. 为增强程序的可读性,建议将<%@ page %>指令放在JSP文件的开头,但不是必须的。

D. <%@ page %>指令中的属性只能出现一次。

第二题:填空。

1. 在编写Servlet时,需要继承       HttpServlet       类,在Servlet中声明doGet()和doPost()需要       HttpServletRequest      和       HttpServletResponse       类型的两个参数。

2. jsp主要内置对象有:     application        、exception、 pageContext、cookie  request 、     response            、____session_     __、out、config、page。

3. 使用useBean动作标记的时候scope属性有4种选项,作用范围由小到大是______page___、___request______、___session______、_____application____,其中____session_____是指当关闭浏览器的时候这个javabean失效, ____ _application____是指当关闭服务器的时候这个javabean失效。

4. 三种常用的动态网页技术是_____asp____、____jsp_____、___php______,简称3P技术。

5. JSP利用JDBC操作数据库的步骤:(1)加载驱动程序,调用____forName()_______将自动加载驱动程序类;(2)建立连接,若连接字符串为:

String url = "jdbc:mysql://localhost/" + dbName +"?user=" +userName

 +"&password=" +userPwd,其中dbName、userName和userPwd 3个分别代表     数据库名   、数据库的    用户名    和    密码      ,(3)建立StateMent;(4) 、执行sql语句,其中,查询数据库里的表内容是Statement接口使用__ _execute_________方法;(5)关闭数据库。

三简答题。

1. Tomcat服务器的默认端口是多少?怎样修改tomcat的端口

答:Tomcat服务器的默认端口是8080;在tomcat下的\conf\server.xml中的Connector元素里的<Connector port=”8080”.....>8080改成你想要的端口即可。

2什么是cookie? cookie有什么作用?。

答:Cookie 是一小段文本信息,伴随着用户请求和页面在 Web 服务器和浏览器之间传递。用户每次访问站点时,Web 应用程序都可以读取 Cookie 包含的信息

Cookie 为 Web 应用程序保存用户相关信息提供了一种有用的方法。例如,当用户访问您的站点时,您可以利用 Cookie 保存用户首选项或其他信息,这样,当用户下次再访问您的站点时,应用程序就可以检索以前保存的信息。

3. 简述JSP中动态include与静态include的区别?

答:动态INCLUDEjsp:include动作实现,<jsp:include page="included.jsp" flush="true" /> 它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数;

静态INCLUDEinclude伪码实现。定不会检查所含文件的变化,适用于包含静态页面。

<% @ include file="included.htm" %>

4. 简述表单中POST和GET的区别。

答:

GET方法

资源类型 :主动的或被动的 

数据类型 :文本 

数据量 :最多255个字符。尽管HTTP协议并没有限制查询串的长度,某些浏览器和web服务器可能不能处理超过255个字符的数据。 

可见性 :数据是URL的一部分,在浏览器的URL地址栏中用户可见。 

缓存 :数据可以在浏览器的URL历史中缓存。

POST方法

目标资源类型 :主动的

数据类型 :文本或二进制数据  

数据量 :没有限制 。 

可见性 :数据不是URL的一部分而是作为请求的消息体发送,因此在浏览器的URL地址栏中对用户不可见。 。 

缓存 :数据不能在浏览器的URL历史中缓存。

5、MVC中的M、V、C各指的是什么?请述其各自的作用。

答:MModel(模型),j2ee开发中扮演数据封装相关的角色(像javabean

VView(视图)j2ee开发中扮演数据显示相关的角色(像jsp,html文件)

CController(控制器)j2ee开发中扮演数据控制相关的角色(像ServletAction等)

6、列举JSP的主要优点。

答:提高代码的可复用性、将HTML代码进行分离、程序利于开发维护。

7、简称JSP的执行过程。

答:首先,由客户端浏览器向Web服务器提出访问JSP页面的请求(Request,然后

JSP引擎负责将JSP转换成Servlet,产生的servlet经过编译后生成类文件,然后再把类文件加载到内存执行。最后,由Web服务器将执行结果即(Response)给客户端浏览器。

8、JSP的动作标签有哪几个?

答:1jsp:incclude 在当前页面中包含另一个页面的输出;

2jsp:forward  将请求转发到指定的页面;

3jsp:useBean 查找或创建一个javaBeans对象;

4jspsetProperty  设置javaBeans对象的属性值;

5jspgetProperty  返回javaBeans对象的属性值;

6jspplugin  JSP页面中嵌入一个插件。

9、<jsp:forward>response.sendRedirect()实现页面转向有什么区别?

答:<jsp:forword>转向只在服务器端进行,不显示地址。

response.sendRedirect()重新发送请求,会显示地址。

10、简述Servlet的生命周期?

答:servlet有良好的生存期定义,包括加载和实例化、初始化、处理请求以及服务结束。

Web容器加载servlet,生命周期开始,通过调用servletinit()方法进行servlet的初始化

。通过调用service()方法实现,根据请求的不调用不同doXX()方法。结束服务,web容器调用servletdestroy()方法。

11、较JSP而言,Servlet有什么优点,有什么缺点?

答:优点是响应客户端的请求,根据请求动态响应,最大的优点做为一个服务,控制程序的流向,过滤等。mvc中,控制就是servlet

缺点:Servlet在表示逻辑上对于视图的表示相对于JSP麻烦太多,在负责显示工作完成并生成页面上,JSP更优。

12、简述采用JDBC访问数据库的步骤。

答:1、加载对应数据库驱动,一般用反射Class.forName(String driverName);
2、创建连接通过DriverManager.getConnection(url,userName,passwd);
3、获取statement对象,通过statement对象执行sql语句;
4、如果是查询则返回结果集,贮存于ResultSet
5、如果关闭事物自动提交要提交事物;
6、最后,关闭所有连接,自里往外关闭。

四、编程题

第一题:

第一个Servlet1文件,读取一个请求参数test(字符串),存放在请求范围内,然后把请求转发给

第二个Servlet2.。第二个Servlet2文件(urloutput),向客户输出Servlet1的结果。根据注释补充下列代码。(15分)

public class Servlet1 extends HttpServlet {

  public void service(ServletRequest request,ServletResponse response)

throws ServletException, IOException {

response.setContentType=(text/html;charset=gbk);

PrintWriter out=response.getWriter();

//读取请求参数

  __String test=request.getParameter("test");______ ;(3)

//request对象中添加 test属性

__request.setAttribute("test", test);___(3)

/*把请求转发给Servlet2 */

RequestDispatcher dispatcher = 

request.getRequestDispatcher("/output");_____

__dispatcher.forward(request, response);__  (4)

  }

}

public class Servlet2 extends HttpServlet {

  public void service(ServletRequest request,ServletResponse response)

throws ServletException, IOException {

response.setContentType=(text/html;charset=gbk);

PrintWriter out=response.getWriter();

  //读取请求范围内Servlet1test

  __String temp=request.getParameter("test");____(3)

  //向客户端输出test

   __out.println("<h1>"+temp+"</h1>");____(2)

  }

}

2、第二题:

1、编写一个简单的JavaBean,通过EL的存取运算符访问其属性。

答案:文件userLogin.java定义了一个用户Bean,包含姓名、密码和电子邮件3个属性,其代码如下:

package bean;

public class userLogin {

private String userName;

private String 1password   ; 

private String email;

public userLogin() {

userName = "李平";

password = "123";

email = "[email protected]";

}

public void setuserName(String userName) {

this.userName = userName;

}

public String getuserName() {

return this.userName;

}

public void setpassword(String password) {

this.password = password;

}

public String getpassword() {

return this.password;

}

public void setemail(String email) {

this.email = email;

}

public String getemail() {

return this.email;

}

}

文件accessBean.jsp使用EL的存取运算符获取JavaBean的属性,其代码如下:

<%@ page contentType="text/html; charset=gb2312"%>

2)<%@ page import ="bean.userLogin" %>                                    

<jsp:useBean id="user" class="bean.userLogin" scope="session">

</jsp:useBean>

<html>

<head>

<title>使用存取运算符访问JavaBean的属性</title>

</head>

<body>

<!--通过EL存取运算符访问JavaBean的属性-->

用户名:(3) ${user.username}

<br>

密码:(4)${user.password}        

<br>

                电子邮箱:(5)  ${user.email} 

                <br>

         </body>

</html>

你可能感兴趣的:(测试,javaweb)