java web考题

1JSP的内置对象及方法。

1request表示HttpServletRequest对象。它包含了有关浏览器请求的信息,并且提供了几个用于获取cookie, header, session数据的有用的方法。

2response表示HttpServletResponse对象,并提供了几个用于设置送回 浏览器的响应的方法(如cookies,头信息等)

3out对象是javax.jsp.JspWriter的一个实例,并提供了几个方法使你能用于向浏览器回送输出结果。

4pageContext表示一个javax.servlet.jsp.PageContext对象。它是用于方便存取各种范围的名字空间、servlet相关的对象的API,并且包装了通用的servlet相关功能的方法。

5session表示一个请求的javax.servlet.http.HttpSession对象。Session可以存贮用户的状态信息

6applicaton 表示一个javax.servle.ServletContext对象。这有助于查找有关servlet引擎和servlet环境的信息

7config表示一个javax.servlet.ServletConfig对象。该对象用于存取servlet实例的初始化参数。

8page表示从该页面产生的一个servlet实例

 

2JSP的常用指令

<%@page %>

<%@include %>

<%@taglib %>

 

3、说出Servlet的生命周期,并说出ServletCGI的区别。

Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGetdoPost)等,当服务器决定将实例销毁的时候调用其destroy方法。

cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet

 

4、什么情况下调用doGet()doPost()

Jsp页面中的form标签里的method属性为get时调用doGet(),为post时调用doPost()

 

5forward redirect的区别

1forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。

2redirect就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,所以session,request参数都可以获取。

 

6JSP中动态INCLUDE与静态INCLUDE的区别?

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

静态INCLUDEinclude伪码实现,定不会检查所含文件的变化,适用于包含静态页面<%@ include file="included.htm" %>

 

7、如何现实servlet的单线程模式

JSP页面而言,则应该采用<%@ page isThreadSafe="false"%>

Servlet而言,则应该采用

8、页面间对象传递的方法

requestsessionapplicationcookie

 

9JSPServlet有哪些相同点和不同点,他们之间的联系是什么?

JSPServlet技术的扩展,本质上是Servlet的简易方式,更强调应用的外表表达。JSP编译后是"servlet"ServletJSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。而JSP的情况是JavaHTML可以组合成一个扩展名为.jsp的文件。JSP侧重于视图,Servlet主要用于控制逻辑。

 

10、我们在web应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,如何输出一个某种编码的字符串?

  public String translate (String str)

{

    String tempStr = "";

    try

{

      tempStr = new String(str.getBytes("ISO-8859-1"), "GBK");

      tempStr = tempStr.trim();

    }

    catch (Exception e)

{

      System.err.println(e.getMessage());

    }

    return tempStr;

  }

11JSP有哪些动作?作用分别是什么?

JSP共有以下6种基本动作

1jsp:include:在页面被请求的时候引入一个文件。

2jsp:useBean:寻找或者实例化一个JavaBean

3jsp:setProperty:设置JavaBean的属性。

4jsp:getProperty:输出某个JavaBean的属性。

5jsp:forward:把请求转到一个新的页面。

6jsp:plugin:根据浏览器类型为Java插件生成OBJECTEMBED标记

 

12、在JSP中下面的两种跳转方式有什么区别?

<jsp:include page="included.jsp" flush="true">

<jsp:forward page= "nextpage.jsp"/>

前者页面不会转向include所指的页面,只是显示该页的结果,主页面还是原来的页面。执行完后还会回来,相当于函数调用。并且可以带参数。

后者完全转向新页面,不会再回来。相当于go to 语句。

13、说出ArrayList,Vector, LinkedList的存储性能和特性

ArrayListVector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList差,而LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。

 

14Collection Collections的区别。

Collection是集合类的上级接口,继承与他的接口主要有Set List.

Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。

 

15HashMapHashtable的区别

HashMapHashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key,由于非线程安全,效率上可能高于Hashtable

HashMap允许将null作为一个entrykey或者value,而Hashtable不允许。

HashMapHashtablecontains方法去掉了,改成containsvaluecontainsKey。因为contains方法容易让人引起误解。

Hashtable继承自Dictionary类,而HashMapJava1.2引进的Map interface的一个实现。

最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap 就必须为之提供外同步。

HashtableHashMap采用的hash/rehash算法都大概一样,所以性能不会有很大的差异。

 

16List, Set, Map是否继承自Collection接口?

 ListSet是,Map不是

 

17Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?

Set里的元素是不能重复的,那么用iterator()方法来区分重复与否。equals()是判读两个Set是否相等。

equals()==方法决定引用值是否指向同一对象equals()在类中被覆盖,为的是当两个分离的对象的内容和类型相配的话,返回真值。

 

18HTML是浏览器/客户端与其他技术如JAVA和网络协议等之间的媒介语言。客户端和服务器之间的大部分工作都是通过HTML(   A )完成的。它通常包含一个或多个HTML组件

 

 

A:表单        B:表格       C:标签        D:超链接

 

19在建立到服务器的连接后,服务器查看请求的第一行,确定是否可以处理该请求。然后,服务器在内部处理该请求并产生一个响应。该响应包含有关请求成功的信息

,这些信息包括:( B  )( C   )( D   )

A:报头        B:状态行       C:标题        D:正文

 

20Web程序运行时,一个客户的请求动作可能会跟他之前的请求有联系,也就是说Web程序需要维持一定的状态。Web容器通过会话机制将一个客户的一系列Web请求联系起来。Web容器通过三种途径实现会话:分别是(  A  )(  B   )(  D   )

 

A COOK机制       BURL重写       CSESSION机制    D:隐藏表单输入

 

21过滤器能够对请求和响应的(  A  )(  B  )进行操作的特殊Web组件。与一般Web组件(Servlet/JSP)不同的是,过滤器自身并不直接生成Web响应,若干个过滤器可以依次对一个Web资源的请求和响应进行作用。

 

A:头属性        B:内容体       C:请求        D:问答

22HTTPR SERVLET提供下列核心特征:(  A   )对象用于扑捉通过WEB页面提交的请求信息,其中包括可用的数据,协议类型和安全级等。(  C   )对象用于在服务器中处理用户会话信息。这是一个特定于用户对象,在SERVLET执行期间,SERVLET开发人员可以增加和删除其中的用户信息。(   D  )对象用于处理响应信息,SERVLET开发人员可以把回送客户机的任何响应信息写到其中,其余的处理过程由SERVLET引擎负责。

AHTTPREQUEST        BHTTPCONFIG

CHTTPSESSION         DHTTPRESPONSE

 

23Servlet容器只创建一个Servlet实例,每一个对( A   ) (  B  )( C   )方法的调用都是从Servlet线程池中获取自己的线程。因此尽管只有一个实例,但每个请求都由它自己的线程处理且所有这些线程可以同时执行。因为对这些方法的调用都在其自己的线程内执行,所以这些方法的局部变量不会被请求所共享,它们是自动线程安全的。

Aservice()        BdoPost()       CdoGet()        DSend()

 

24、(    A  )对象允许将请求转发到其他服务器资源,它还允许有计划的把其他服务器资源生成的输出引用到Servlet内部。

ARequestDispacher        BDispatcher       CRequest        DServletContext

 

25、(  D )是HTTP客户和HTTP服务器之间传送的小块信息。通过它可以将状态添加到无状态的HTTP协议中,从而让服务器唯一识别每个客户并维护特定的信息。

ASession        BBean       CEJB        DCookie

 

26JDBCJava规定的一套数据库操作的接口,它们不考虑不同数据库的( D   )的差异,因此从程序员的角度来看,访问任何数据库都是一样的。

A:存储        B:调用       C:读取        D:格式

 

27JSP标记符可以分为三大类。:(  B )()(

A:表达式        B:指令       C:脚本元素        D:动作

 

28、组成JSP页面的单元包括:(  A ),( B   ),( C   )以及三种脚本:声明(declartions,程序段(scriptlets)和表达式(expressions

A:注释        B:标签       C:动作        D:模板文本

 

29JSP规范定义了三种指令:(   A    B        D 

Apage        Btaglib       Caction        Dinclude

 

30、动作可能影响当前的输出流或者用来创建、使用或者改变对象。JSP规范中包含一些标准的动作类型,新的动作类型由(  D  )指令定义。

Ainclude        Bpage       Cform        Dtaglib

 

31、脚本元素用于操作对象和执行影响生成内容的计算。由三种脚本:(,  B )和( D

A:声明        B:程序段       C:定义        D:表达式

 

32JSP类和接口包含在(   A  )和(  D  )软件包中。

Ajavax.servlet.jsp            Bjava.servlet.jsp  

Cjava.servlet.jsp.tagext        Djavax.servlet.jsp.tagext

 

33、与(  C  )作用域不同,request作用域对象对所有请求被转发的页面都是有效的。Request作用域对象储存在request隐含对象中,并可从该隐含对象中访问。

Aapplication        Bcookie       Cpage        DSession
JSP考试试题

一、选择题

1、假设在helloapp应用中有一个hello.jsp,它的文件路径如下:

%CATALINA_HOME%/webapps/helloapp/hello/hello.jsp    那么在浏览器端访问hello.jspURL是什么? (单选)

选项:

(A) http://localhost:8080/hello.jsp

(B) http://localhost:8080/helloapp/hello.jsp

(C) http://localhost:8080/helloapp/hello/hello.jsp

 

2、假设在helloapp应用中有一个HelloServlet类,它位于org.javathinker包下,那么这个类的class文件应该放在什么目录下? (单选)

选项:

(A) helloapp/HelloServlet.class

(B) helloapp/WEB-INF/HelloServlet.class

(C) helloapp/WEB-INF/classes/HelloServlet.class

(D) helloapp/WEB-INF/classes/org/javathinker/HelloServlet.class

 

3、假设在helloapp应用中有一个HelloServlet类,它在web.xml文件中的配置如下:

<servlet>

  <servlet-name> HelloServlet </servlet-name>

  <servlet-class>org.javathinker.HelloServlet</servlet-class>

</servlet>

 

<servlet-mapping>

  <servlet-name> HelloServlet </servlet-name>

  <url-pattern>/hello</url-pattern>

</servlet-mapping>

那么在浏览器端访问HelloServletURL是什么? (单选)

选项:

(A) http://localhost:8080/HelloServlet

(B) http://localhost:8080/helloapp/HelloServlet

(C) http://localhost:8080/helloapp/org/javathinker/hello

(D) http://localhost:8080/helloapp/hello

 

4、客户请求访问HTML页面与访问Servlet有什么异同?(多选)

选项:

(A)相同:都使用HTTP协议

(B)区别:前者Web服务器直接返回HTML页面,后者Web服务器调用Servlet的方法,由Servlet动态生成HTML页面

(C)相同:前者Web服务器直接返回HTML页面,后者Web服务器直接返回Servlet的源代码。

(D)区别:后者需要在web.xml中配置URL路径。

(E)区别:前者使用HTTP协议,后者使用RMI协议。

 

5HttpServletRequest对象是由谁创建的?(单选)

选项:

(A)Servlet容器负责创建,对于每个HTTP请求, Servlet容器都会创建一个HttpServletRequest对象

(B)JavaWeb应用的ServletJSP组件负责创建,当ServletJSP组件响应HTTP请求时,先创建HttpServletRequest对象

 

6、从HTTP请求中,获得请求参数,应该调用哪个方法? (单选)

选项:

(A)调用HttpServletRequest对象的getAttribute()方法

(B)调用ServletContext对象的getAttribute()方法

(C)调用HttpServletRequest对象的getParameter()方法

 

7ServletContext对象是由谁创建的?(单选)

选项:

(A)Servlet容器负责创建,对于每个HTTP请求, Servlet容器都会创建一个ServletContext对象

(B)JavaWeb应用本身负责为自己创建一个ServletContext对象

(C)Servlet容器负责创建,对于每个JavaWeb应用,在启动时,Servlet容器都会创建一个ServletContext对象

 

8jspForward1.jsp要把请求转发给jspForward2.jsp,应该在jspForward1.jsp中如何实现? (单选)

选项:

(A) <a href=“jspForward2.jsp”>jspForward2.jsp </a>

(B) <jsp:forward page=“jspForward2.jsp”>

 

9、当浏览器第二次访问以下JSP网页时的输出结果是什么?(单选)

<%! int a=0;     %>

<%

     int b=0;

     a++;

     b++;

%>

a:<%= a %> <br>

b:<%= b %>

  

选项:

(A)  a=0  b=0

(B) a=1  b=1

(c) a=2  b=1

 

10、下面哪个说法是正确的? (单选)

选项:

(A) 对于每个要求访问maillogin.jspHTTP请求,Servlet容器都会创建一个HttpSession对象

(B)每个HttpSession对象都有惟一的ID

(C)JavaWeb应用程序必须负责为HttpSession分配惟一的ID

11、如果不希望JSP网页支持Session,应该如何办? (单选)

选项:

(A) 调用HttpSessioninvalidate()方法

(B) <%@ page session= “false/">

 

12、在标签处理类中,如何访问session范围内的共享数据? (多选)

选项:

(A)TagSupport类中定义了session成员变量,直接调用它的getAttribute()方法即可。

(B)在标签处理类TagSupport类中定义了pageContext成员变量,先通过它的getSession()方法获得当前的HttpSession对象,再调用HttpSession对象的getAttribute()方法。

(C)pageContext.getAttribute(“attributename”,PageContext.SESSION_SCOPE)

 

13、在下面的选项中,哪些是TagSupport类的doStartTag()方法的有效返回值? (多选)

选项:

(A) Tag.SKIP_BODY

(B) Tag.SKIY_PAGE

(C) Tag.EVAL_BODY_INCLUDE

(D) Tag.EVAL_PAGE

 

14、以下代码能否编译通过,假如能编译通过,运行时得到什么打印结果?(单选)

request.setAttribute(/"count/",new Integer(0));

Integer count = request.getAttribute(/"count/");

选项:

A)不能编译通过  B)能编译通过,并正常运行 

C) 编译通过,但运行时抛出ClassCastException

 

选择题答案:

(1)C (2)D  (3)D  (4)A,B,D  (5)A  (6)C  (7)C  (8)B  (9)C   (10)B (11)B  (12)B,C  (13)A,C  (14)A

 

二、填空

1JAVA的集合类主要分为那三部分________________________________________

2JSP的书写语法包括那三部分,处理JAVABEAN的指令包括________________________________________

3JSP的动作有______________________________________________________

填空题答案:

set             list            map

include         page            taglib

jsp:param     jsp:forward   jsp:useBean   jsp:setProperty
三、问答题

1:谈谈你对JSP注释,声明,表达式,教本,动作的理解。

2:谈谈你对JSPSERVLET的理解。

3:谈谈你对自定制标签的理解

4:谈谈你对JAVABEAN的理解

5:谈谈你对MVC的理解

6、说出Servlet的生命周期,并说出ServletCGI的区别。

7、什么情况下调用doGet()doPost()

8forward redirect的区别?

9JSP中动态INCLUDE与静态INCLUDE的区别?

10、如何现实servlet的单线程模式?

11JSPServlet有哪些相同点和不同点,他们之间的联系是什么?

12XML的主要应用场合是那些?

13JSPServlet在应用上有什么差别

14JSP标记符主要有那些?

15、说明HTTPHTTPS的差别主要有那些?


J2EE Web考试题(单选题,黑体为正确的答案)

1、应该选择如下什么类来创建对象可以实现客户端的Socket通讯。

1URL

2Socket

3ServerSocket

4URLConnection

2、应该选择如下什么类来创建对象可以实现服务端的Socket通讯。

1URL

2Socket

3ServerSocket

4URLConnection

3、对“http://www.sina.com/index.jsp”应该选择如下什么类来包装配它。

1URL

2Socket

3ServerSocket

4URLConnection

4、下面那个类能够创建客户端的应用

1URL

2Socket

3ServerSocket

4URLConnection

5、如下那一选项可以实现Java平台上的标准输入(如键盘输入)输出(屏幕输出)功能

1PipedInputStreamPipedOutputStream

2FileInputStreamFileOutputStream

3System.in System.out

4DataInputStream DataOutputStream

6、如下那一选项可以实现Java平台上的本地文件的二进制格式的读写功能

1PipedInputStreamPipedOutputStream

2FileInputStreamFileOutputStream

3System.in System.out

4DataInputStream DataOutputStream

7、如下那一选项可以实现Java平台上的管道文件的二进制格式的读写功能

1PipedInputStreamPipedOutputStream

2FileInputStreamFileOutputStream

3System.in System.out

4DataInputStream DataOutputStream

8、如下那一选项可以实现Java平台上的标准数据类型的格式的读写功能

1PipedInputStreamPipedOutputStream

2FileInputStreamFileOutputStream

3System.in System.out

4DataInputStream DataOutputStream

 

9、如下那一选项可以实现Java平台上的随机文件读写功能

1PipedInputStream

2RandomAccessFile

3FileOutputStream

4DataInputStream

10、如下那一选项可以实现Java平台上的管道文件读功能

1PipedInputStream

2RandomAccessFile

3FileOutputStream

4DataInputStream

11、在JDBC连接数据库编程应用开发中,利用那个类可以实现执行数据库的存储过程。

1Connection

2PreparedStatement

3CallableStatement

4Statement

12、在JDBC连接数据库编程应用开发中,利用那个类可以实现连接数据库。

1Connection

2PreparedStatement

3CallableStatement

4Statement

 

13、为了实现在Java的程序中调用带参数的SQL语句,应该采用那个类来完成。

1Connection

2PreparedStatement

3ResultSet

4Statement

14、在JDBC连接数据库编程应用开发中,利用那个类可以实现包装数据库中的结果集。

1Connection

2PreparedStatement

3ResultSet

4Statement

15、在JDBC连接数据库编程应用开发中,CallableStatement类是下面那个类的子类。

1Connection

2PreparedStatement

3ResultSet

4Statement

16、在JDBC连接数据库编程应用开发中,PreparedStatement类是下面那个类的子类。

1Connection

2PreparedStatement

3ResultSet

4Statement

17、在JDBC连接数据库编程应用开发中,一般会产生出下面的那种形式的异常。

1FileException

2SQLException

3IOException

4DataException

18、在Java IO编程应用开发中,一般会产生出下面的那种形式的异常。

1FileException

2SQLException

3IOException

4DataException

19、下面的各种形式的异常,那种表示JDK中的标准异常。

1FileException

2SQLException

3IOException

4NullPointerException

20、在JDBC连接数据库编程应用开发中,那个类只能用于实现数据库的连接。

1Connection

2PreparedStatement

3CallableStatement

4Statement

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值