MVC测试题(含简答题)

一:选择题

 

1. 动态网站需要的技术为。(选择3)

ACGI

BHTTP

CASP

DPHP

 

2. 在部署Servletweb.xml文件中标签应该包含哪些标签。(选择2)

A

B

C

D

 

3. 假设web应用的文档根目录为MyApp,那么可以从哪里找到database.jar文件。(选择1)

A MyApp目录下

B MyApp\images目录下

C MyApp\WEB-INF目录下

D MyApp\WEB-INF\lib目录下

 

4.为了获得用户提交的表单参数,可以从哪一个接口中得到。(选择1)

A ServletResponse

B Servlet

C RequestDispatcher

D ServletRequest

 

5.从以下哪一个选项中可以获得Servlet的初始化参数。(选择1)

A Servlet

B ServletContext

C ServletConfig

D GenericServlet

 

6.表示资源移动的状态码是。(选择1)

A 200

B 302

C 400

D 500

 

7.哪一个对象可以用于获得浏览器发送的请求。(选择1)

A HttpServletRequest

B HttpServletResponse

C HttpServlet

D Http

 

8.事务处理的结束方式。(选择2)

A 中止

B 提交

C 完成

D 回滚

 

9.如何取得数据源。(选择1)

A 通过Http

B 通过ftp

C JNDI

D 通过Connection对象

 

10会话是。(选择1)

A 一个TCP/IP连接

B 一个物理连接

C 客户机和Web服务器之间的一组交互

D Http请求

 

11.客户端状态管理的解决方案有。(选择3)

A URL重写

B 隐藏域

C Cookie

D 以上都不是

 

12Web应用程序被关闭时Servlet容器会调用Servlet Context“监听器的哪个方法(选择1)

A. contextInitialized()

B. contextDestroyed()

C. contextFinialized()

D. contextShutdown()

 

15关于JSP生命周期的叙述下列哪些为真(选择2)

A JSP会先解释成Servlet源文件然后编译成Servlet类文件

B 每当用户端运行JSP时,jspInit()方法都会运行一次

C 每当用户端运行JSP_jspService()方法都会运行一次

D 每当用户端运行JSPjspDestroy()方法都会运行一次

 

16.下列哪个为JSP的注释标签?(选择1)

A<%@ %>

B<%! %>

C<% %>

D<%-- --%>

 

17下列哪个为JSP的隐含对象。(选择1)

A env

B page

C jspinfo

D context

 

18.如果不希望在JSP页面中存取HTTP会话,应该如何设定page指令?(选择1)

A<% page session=”disabled” %>

B<% page session=”false” %>

C<% page session=”true” %>

D<% page disablesession=”true” %>

 

 

20.下面哪些属于JSTL中的表达式操作标签。(选择1)

A

B

C

D

 

21.在J2EE中属于Web层的组件有。(选择1)

E Servlet

F EJB ------模型层

G Applet

H HTML

 

22.在Servlet处理请求的方式为。(选择1)

I 以进程的方式

J 以程序的方式

K 以线程的方式

L 以响应的方式

 

23.在Web应用的根目录中,可以存放的文件为。(选择1)

M class文件

N web.xml

O jar文件

P html文件

 

24javax.Servlet的包中,属于类的是。(选择1)

Q Servlet

R GenericServlet

S ServletException

T ServletContext

 

25.在Servlet的生命周期中,容器只调用一次的方法是。(选择2)

U service

V getServletConfig

W init

X destroy

 

26Servlet在容器中经历的阶段,按顺序为。(选择1)

Y 服务、加载、初始化、卸载、销毁

Z 加载、初始化、服务、销毁、卸载

AA.初始化、服务、销毁、加载、卸载

BB.服务、卸载、加载、初始化、销毁

 

27HttpServlet中,用来处理GET请求的方法是。(选择1)

A doHead

B doGet

C doPost

D doPut

 

28Http缺省的请求方法是。(选择1)

A PUT

B GET

C POST

D TRACE

 

29.下面哪一个指明向客户端发送文本的编码格式。(选择1)

A Content-Type

B Content-Encoding

C Content-Length

D Allow

 

30JDBC中,用于表示数据库连接的对象是。(选择1)

A Statement

B Connection

C DriverManager

D PreparedStatement

 

31.用于表示Statement对象返回结果的是。(选择1)

A ResultSet

B DriverManager

C PreparedStatement

D Connection

 

32.用于调用存储过程的对象是。(选择1)

A ResultSet

B DriverManager

C CallableStatemet

D PreparedStatement

 

33.如何发送Cookie?(选择1)

E 使用new Cookie语句

F 调用response.addCookie方法

G 使用CookiesetMaxAge方法

H setCookie方法

 

34.如果没有指定Cookie的时效,那么默认的时效是。(选择1)

A 一天

B 永不过期

C 会话级别------会话级cookies

D 一分钟

 

35.在使用服务器端的会话管理时,通过什么方法标识会话。(选择1)

A IP地址

B Cookie

C Session id

D 请求头

 

37.下面哪一个方法可以从ServletContext对象内读取某个属性。(选择1)

A. String getAttribute(int index)

B. String getAttribute(String name)

C. Object getAttribute(String name)

D. Enumeration getAttribute(String name)

 

 

39.下列哪个为JSP的小脚本的标签?(选择1)

A<% %>

B<@ %>

C<%! %>

D<%-- %>

 

40Page指示符的language属性的作用是。(选择1)

A. 定义JSP页面的字符编码

B. 定义JSP页面的MIME类型

C. 定义JSP页面中使用的脚本语言

D. 定义JSP页面的描述信息

 

41.以下不属于JSP的标准指令的是。(选择1)

A Taglib

B Include

C Import

D Page

 

42.在JSP页面中不可以用来异常处理的有。(选择1)

A html文件

B JSP文件

C Servlet

D Txt文件

 

43察看下列JSP内容

<% for (int i=0;i<3;i++){ %>

out.print(i*2);

<% } %>

当这个JSP被运行时,其结果是什么?(选择1)

A JSP因为语法错误,无法运行

B 显示出024

C 显示出0246

D 显示出out.print(i*2) out.print(i*2) out.print(i*2)

 

44下面哪一个隐含变量的存取范围不是page? (选择1)

A. config

B. application

C. out

D. page

 

45假设A.jsp内设定一个元素(无scope定义时,默认应用于为当前页面)

下列哪一个为真?(选择1)

A bean1的存取范围scope默认为application

B HTTP会话内可以存取bean1

C 只有在A.jsp内可以存取bean1

D A.jsp所属的Web应用程序内均可存取bean1

 

46.下面哪一个不是元素的属性。(选择1)

A scope

B Id

C Value

D Class

 

48.按照MVC设计模式,JSP用于实现。(选择1)

A Model

B View

C Controller

D 容器

 

49.在MVC设计模式中,JavaBean的作用是。(选择1)

A Controller

B Model

C 业务数据的封装

D View

 

50.在JSP中,哪个指令用来声明JSP欲使用的标签库?(选择1)

A tld

B taglib

C import

D include

 

51.在J2EE中属于Web层的组件有(选择1)

A. HTML

B. EJB

C. Applet

D. JSP

 

52Servlet处理请求的方式为(选择1)

A. 以运行的方式

B. 以线程的方式

C. 以程序的方式

D. 以调度的方式

 

53.在J2EEWeb应用中,编译后的class文件存放的目录为(选择1)

A. classes目录

B. images目录

C. jar目录

D. 任意位置

 

54Servlet的生命周期中容器只调用一次的方法是(选择1)

A. service

B. getServletConfig

C. after

D. init

 

55HttpServlet用来处理POST请求的方法是(选择1)

A. doHead

B. doGet

C. doPost

D. doPut

 

56JDBC中,用于表示数据库连接的对象是(选择1)

A. Statement

B. Connection

C. DriverManager

D. PreparedStatement

 

57如何创建Cookie? (选择1)

A. 使用new Cookie语句

B. 调用response.addCookie方法

C. 使用CookiesetMaxAge方法

D. setCookie方法

 

58.可以用来实现会话的是(选择1)

A. IP地址

B. Session对象

C. 域名

D. 请求头

 

59.下面哪一个标记与Servlet的配置无关(选择1)

A. servlet-mapping

B. servlet-class

C. url-pattern

D. tag

 

60下列哪个用于在JSP中表示注释(选择1)

A<% %>

B<@ %>

C<%-- --%>

D<%-- %>

 

61.按照MVC设计模式,Servlet用于实现(选择1)

A. Controller

B. View

C. Model

D. 容器

 

62.在JSP中,哪个指令用来声明JSP欲使用的标签库?(选择1)

A. tld

B. include

C. import

D. taglib

 

 

63. 下面的那一个不属于MVC模式中的对象? (选择1)

a. Model

b. View

c. Collection

d. Controller

 

64. ActionFormStruts中属于 (选择1)

a. 视图层

b. 控制层

c. 模型层

d. 配置文件

 

65. ActionForm的作用域包括哪些层次(选择2)

a. server

b. request

c. response

d. session

 

66. ActionServletStruts中属于 (选择1)

a. 视图层

b. 控制层

c. 模型层

d. 配置文件

 

67. ActionStruts中属于(选择1)

a. 视图

b. 控制器

c. 模型

d. 配置文件

 

68. Struts初始化过程调用的第一个方法是?(选择1)

a. start()

b. main()

c. submain()

d. init()

 

69. 下面哪一个项目仅在Struts中出现?(选择1)

a. JavaBean

b. Web.xml

c. struts-config.xml

d. application.propertyes

 

70. 假定Struts-config.xml里有

则以下哪些方法调用是正确的(选择2)

a. return mapping.findforward(“aaa”);

b. return mapping.findforward(“success”);

c. return mapping.findforward(“ccc”);

d. return mapping.findforward(“error”);

 

71. Struts框架可以支持以下哪种程序开发语言?(选择1) (C—> C++ —> Java—> C#)

a. C

b. C++

c. Java

d. C#

 

72 Struts框架是对哪种设计模式的扩展?(选择1)

a. 工厂模式

b. 模型视图控制器模式

c. 单体模式

d. 代理模式

 

73 以下哪些接口能够实现对Web访问者的身份认证?(选择1)

a. Http Servlet Request

b. Http Servlet Response

c. Http Session

d. Http Servlet

 

74 MVC模式中,实现Web应用程序的逻辑流控制主要依靠什么来完成?(选择1)

a. JavaBean

b. JSP

c. Servlet

d. Html

 

75 Struts中的struts-config.xml被用来作为MVC模式中的哪一项功能(选择1)

a. 模型

b. 视图

c. 控制器

d. 配置文件

 

76. Struts中实现页面跳转主要通过什么方法来实现?(选择1)

a. server.transfer

b. response.redirect

c. mapping.findForward

d. response.sendRedirect

 

77. Struts配置文件中使用什么元素表示ActionForm(选择1)

a. form

b. form-bean

c. form-action

d. actionform

 

78. Struts配置文件中使用什么元素来表达Action的转向页面(选择1)

a. scope

b. type

c. action

d. forward

 

79.哪一个不属于MVC设计模式的组件(选择1)

A Model

B View

C Controller

D 容器

 

80.在MVC设计模式中,用于实现业务数据封装的是(选择1)

A Controller

B JavaBean

C Model

D View

 

81.在Struts中,用于组合所有部件的文件是(选择1)

A struts-config.xml

B web-inf.xml

C web.xml

D config.xml

 

82 Hashtable 是以类似于数组下标(自动递增)的形式来标识存储的对象(值)的:(选择1项)-------is Empty()判断对象名称是否为空,重复值指的是:名称相同,值不同。

A.

B.

 

83.  Java2的IO包中,流类分为哪两个类体系结构:(选择2项)

A. 可写流

B. 字符流

C. 只读流

D. 字节流

 

84.  在J2EE的体系结构中,使用哪个服务来查找web服务器的资源:(选择1项)

A. JDBC

B. JNDI

C. JMS

D. JSP

 

85. J2EE体系结构中,Model2 设计模式使用了 JavaBean, Servlet  JSP:(选择1

A.

B. 错------Model 3模式

86. java.io包中包含InputStreamReaderOutputStreamWriter类。他们的主要作用是:(选择1

A. 用于从标准输入输出设备读/写数据

B. 用于从标准输入输出设备读/写字节数据

C. 用于从字节流中获取字符流或反之

D. 用于读取文件或者向文件输出

 

87. 集合框架中哪个接口要求集合中的元素不能重复:(选择1项)

A. Collection

B. List

C. Map------Map和Set集合中的元素不能重复

D. SortedSet

 

88. 以下描述哪些方面与J2EE无关:(选择1项)

A. 事务处理

B. Applet

C. 资源管理

D. 分布式

 

89. HttpServlet类中响应HTTP POST请求的方法是:(选择1

A. doPost(ServletRequest, ServletResponse)

B. doPOST(ServletRequest, ServletResponse)

C. servicePost(HttpServletRequest, HttpServletResponse)

D. doPost(HttpServletRequest, HttpServletResponse)

 

90. 你的servlet类需要使用com.abc.Tutil,Tutil.class文件应该放到以下哪个目录中?(选择1

A. WEB-INF/classes

B. WEB-INF/lib

C. WEB-INF/jars

D. WEB-INF/classes/com/abc

 

91. 下面关于输入输出流的陈述哪些是不正确的:(选择1项)

A. Reader 是面向Unicode字符的它和InputStream定义相似的API

B. BufferedReader 类提供了 readLine 方法可以用来读取一行

C. File 类没有提供直接判断文件是否存在的方法判断一个文件是否存在需要调用FileConfig类中的exists方法

D. FilterOutputStream被看作是高层输出流不写入输出设备而写入其他流

 

92. javax.Servlet的包中属于类的是。(选择1)

A Servlet

B GenericServlet

C ServletException

D ServletContext

 

93. 如果没有指定Cookie的时效,那么默认的时效是。(选择1)

A 一天

B 永不过期

C 会话级别

D 一分钟

 

94. 假设A.jsp内设定一个元素

下列哪一个为真?(选择1)

A bean1的存取范围scope默认为application

B HTTP会话内可以存取bean1

C 只有在A.jsp内可以存取bean1

D A.jsp所属的Web应用程序内均可存取bean1

 

95. 以下哪些接口能够实现对Web访问者的身份认证?(选择1)

a. Http Servlet Request

b. Http Servlet Response

c. Http Session

d. Http Servlet

 

简答题

a) TOMCAT下有哪几种发布JSP应程序的方法

1直接放到webapps目录下。Tomcatwebapps目录是tomcat默认的应用目录,当服务器启动时,会加载所有这个目录下的应用。也可以将jsp应用程序打成一个war包放在这个目录下,服务器会自动解开这个war包,并在这个目录下生产一个同名文件夹。一个war包就是有特定格式的jar包,它是一个将web程序的所有内容进行压缩得到的。

Webapps这个默认的目录也是可以改变的。打开tomcatconf目录下的server.xml文件,找到下面的内容。

unpackWARs="true" autoDeploy="true"

xmlValidation="false" xmlNamespaceAware="false">

其中的appBase="webapps"

是只应用目录,可以将这个目录更改到想要的目录去。

2server.xml中指定。

tomcat的配置中一个web应用就是一个特定的Context可以通过在server.xml中新建Context来部署一个jsp应用程序。打开server.xml文件,在host标签内创建一个Context,内容如下:

debug="5" reloadable="true" crossContext="true"/>

其中path是虚拟路径,docBasejsp应用程序的物理路径,workDir是这个应用的工作目录,存放运行时生产的与这个应用相关的文件。

这种方法比较灵活,不必把应用程序放到webapps下面。

3创建一个Context文件

无论是把jsp应用程序直接放在webapps还是在server.xml中指定被服务器加载之后都会在tomcatconf/catalina/localhost目录下生成一个xml文件其内容如下

/admin docBase=${catalina.home}/server/webapps/admin debug=0 privileged=true >

可以看出文件中就是描述一个应用的Context信息其内容和server.xml中的Context信息格式一致的文件名便是虚拟目录名。可以直接建立这样一个xml文件,放在tomcat

conf/catalina/localhost目录下。

 

b) includec) 令和include动作的区别是什么

include 指令和 include 动作的区别include指令合并静态文档或Jsp页面中的内容可以用于包括动态生成的输出结果,因此可以包含一个Servletinclude指令在编译期合并为一个文档include动作在请求时进行包括处理共享局部变量include指令各文件中的声明的脚本变量在所有组成的页面中有效include动作在一个文件中声明的脚本变量不能用于其他页面,除非将变量放置在request,session,application作用域中修改的生效include指令被包含文件被修改,不会立即生效,除非修改主页面或删除主页面的类include动作修改了被包含的文件立即生效变量的作用域include指令中的要注意变量命名冲突情况include动作不会出现变量命名冲突问题,因为他们实际上是局部变量

d) 在JSP面面间传递参数的方式有几种

1) 表单提交2) URL重写,就是 ? 传参  xxx.jsp?myid = 13) jsp:param传递,用在jsp:forwardjsp:include 标签中例如:3)request 4)response

e) 随机数的生成方式有几种

1、通过System.currentTimeMillis()来获取一个当前时间毫秒数的long型数字。

2、通过Math.random()返回一个01之间的double值。

3、通过Random类来产生一个随机数,这个是专业的Random工具类,功能强大

 

f) sessioncookie的区别是什么

session是在服务器端保存用户信息cookie是在客户端保存信息  session中保存的是对象,cookie中保存的是字符串;   session对象随会话结束而结束cookie可以长期保存在客户端  cookie通常用于保存不重要的用户信息重要的信息使用session保存.

g) 如何防止表单重复h) 提交

方式一客户端利用javascript脚本来处理,设置一个变量只允许提交一次 
 var checkSubmitFlg = false;
 function checkSubmit() {
 if (checkSubmitFlg == true) {
 return false;
 }
 checkSubmitFlg = true;
 return true;
 }
 document.ondblclick = function docondblclick() {
 window.event.returnValue = false;
 }
 document.onclick = function doconclick() {
 if (checkSubmitFlg) {
 window.event.returnValue = false;
 }
 }
 

方式二 : 防止用户后退
 使用window.history.forward()方法来更改浏览器的历史纪录;用新页面的URL替换当前的历史纪录,这样浏览历史记录中就只有一个页面,后退按钮永远不会变为可用。比如使用javascript:location.replace(this.href); event.returnValue=false;

2.服务器端的处理

基本原理:
服务器端在处理到达的请求之前,会将请求中包含的令牌值与保存在当前用户会话中的令牌值进行比较,看是否匹配。在处理完该请求后,且在答复发送给客户端之前,将会产生一个新的令牌,该令牌除传给客户端以外,也会将用户会话中保存的旧的令牌进行替换。这样如果用户回退到刚才的提交页面并再次提交的话,客户端传过来的令牌就和服务器端的令牌不一致,从而有效地防止了重复提交的发生。

if (isTokenValid(request, true)) {
 return mapping.findForward("success");
} else {
 saveToken(request);
 return mapping.findForward("submitagain");
}

Struts根据用户会话ID和当前系统时间来生成一个唯一对于每个会话令牌的具体实现可以参考TokenProcessor类中的generateToken()方法。

1. //验证事务控制令牌,


 // // value="6aa35341f25184fd996c4c918255c3ae">
 if (!isTokenValid(request))
 errors.add(ActionErrors.GLOBAL_ERROR,
 new ActionError("error.transaction.token"));
 resetToken(request); //删除session中的令牌 

3. action有这样的一个方法生成令牌
 protected String generateToken(HttpServletRequest request) {
 HttpSession session = request.getSession();
 try {
 byte id[] = session.getId().getBytes();
 byte now[] =
 new Long(System.currentTimeMillis()).toString().getBytes();
 MessageDigest md = MessageDigest.getInstance("MD5");
 md.update(id);
 md.update(now);
 return (toHex(md.digest()));
 } catch (IllegalStateException e) {
 return (null);
 } catch (NoSuchAlgorithmException e) {
 return (null);
 }
 }

 

i) 如何理解Servlet的生命周期

A定位用户根据地址请求指定的servletweb.xml根据用户输入的地址定位到具体的servletB:加载:将找到的servlet类加载到web容器中(servlet容器)。C:实例化:调用默认无参构造函数,实现servlet的实例化。D:初始化:调用Init方法,实现成员变量的初始化。E:服务处理:servletservice方法接收用户请求,根据当前用户请求的方式是get还是postservice自动将用户请求传递到doGetdoPost方法中进行处理。处理完成后,产生响应结果。F:销毁:调用destroy方法,实现servlet的释放工作。

j) Servlet API有几种

HttpServletRequest:Servlet容器把HTTP请求信息保存在HttpServletRequest对象中Servlet组件从request对象中读取用户的请求数据。此外,HttpServletRequest可以存放request范围内的共享数据。

HttpServletResponse:用于生成HTTP响应结果。

HttpSession:Servlet容器为每个WEB应用创建一个ServletContext实例,ServletContext可以存放application范围的共享数据。

HttpServletRequestHttpSessionServletContext分别提供在requestsessionapplication范围内保存和读取共享数据的方法

//save shared data

setAttribute(String key,Object value);

//get shared data

getAttribute(String key);

在保存共享数据时,应该指定属性KEY。在读取共享数据时,将根据这个属性KEY来检索共享数据。

 

k) 如何使服l) 务器启动时就加载并初始化Servlet的实例

监听器

m) 如何在Servlet中操作cookie

要把Cookie发送到客户端Servlet先要调用new Cookie(name,value)用合适的名字和值创建一个或多个Cookie通过cookie.setXXX设置各种属性通过response.addCookie(cookie)cookie加入应答头。

   要从客户端读入CookieServlet应该调用request.getCookies()getCookies()方法返回一个Cookie对象的数组。在大多数情况下,你只需要用循环访问该数组的各个元素寻找指定名字的Cookie,然后对该Cookie调用getValue方法取得与指定名字关联的值。 

n) java归档程序包的类型有几种

Jar war ear

o) 如何在不同p) 范围内共享JavaBean

设置scope属性

q) 如何开发并部署自己的标r)

(2)创建建议在WEB-INF目录创建自己的tld文件。注意:xml文件,都是有自己的格式和规范的。(3)自定义标签的版本,1.0jsp的版本,1.2别名,可以省略表示一个唯一的地址,可以省略(4)配置标签处理类每个标签处理类,都必须在标签配置文件中有自己的配置信息。A    标签处理类的调用别名    标签处理类的物理地址    标签处理类是否有标签体(标签体的信息从哪里来的。默认值是jsp,自关闭标签需要改成EMPTY)B:如果标签是有属性的,还需要进行属性的配置。4、配置web.xml(1)前提标签配置文件,根据是否有的配置信息,区分对待在web.xml中的配置。A:如果在标签配置文件,已经为输入的值,则不用再web.xml中进行配置,可以直接在jsp页面上调用。适用于公共开源组织提供的公共的标签库。B:如果没有在标签配置文件为输入的值,则必须在web.xml中进行配置。适用于个人或企业用户。(2)配置每个标签配置文件,都需要在web.xml中进行配置。     标签配置文件的别名   /tld文件的物理地址   5jsp页面的调用(1)前提页面上要调用自定义标签,需要通过taglib指令实现。(2)taglib指令A:作用明确在当前jsp文件上要使用的自定义标签库B:格式<%@ taglib uri="标签配置文件在web.xml中的别名" prefix="给标签库明确一个命名空间的前缀名称(给别名再起一个简单的别名)"%>(3)页面上调用自定义标签<前缀:标签类的别名/>

s) 如何验证数字、整数、电子邮件(利用js)

数字整数:var p=/^\d$/;p.test(String);电子邮件var p=/^\w{1,12}@\w{1,6}\.\w{1,4}$/;

t) 如何验证字符串中包括有效字符@)

If(String.indexOf("@")==-1){表示不包含此字符}

u) 如何在页面中屏蔽鼠标v) 右键

function document.oncontextmenu(){event.returnValue=false;}//屏蔽鼠标右键 

w) 如何禁止用户复x) 制网页内容

  oncontextmenu = "return false"

   ondragstart="return false"

   onselectsatrt = "return false"

   onselect="document.selection.empty()"

   oncopy="document.selection.empty()"

   onbeforecopy="return false"

   οnmοuseup="document.selection.empty()"

  >

y) 如何处理中文乱码问题

1)request.setCharacterEncoding( "UTF-8 ") 

2)<%@ page contentType= "text/html;charset= UTF-8 " %>

3)

z) 如何在Eclipse中调试JSP

        Eclipse里你可以调试java类文件,有时你也会需要调试JSP文件,但Eclipse并不支持,尽管在JSP源文件中调试JSP代码是一件非常方便的事。

 

        现在有一种好的解决方法,在你告之应用服务器把你的Eclipse工程作为工作目录后,Lomboz可以让你对在应用服务器上的JSP文件所生成的.java文件进行调试。

 

注意:Lomboz只支持对能够在Eclipse源代码目录中保存一份servlet源代码(.java)的拷贝的应用服务器上进行JSP的调试。

 

建立实例

 

       Lomboz在你的工程中为你建立的一个叫j2src的特定源文件目录,当你完成调试工作后,你并不需要把由JSP生成的java文件放入你的模块中,所以将这些java文件和真正的源代码文件分开是很有必要的。

 

       如果你使用的是Tomcat或者JBOSS,要能够调试JSP文件必须按下面的方法配置你的应用服务器。而BEA WebLogicweblogic.xml中已经插入了工作目录的信息,所以不需要再进行下面的操作了。当你完成调试的时候必须删掉这些信息。

 

       JSP文件被正常的执行中,应用服务器会生成相应的java类文件,为了把这些由JSP生成的java类文件和其他的java类文件分开,应用服务器会把这些类文件放到一个叫j2src的特定目录中。

 

       WebLogic部署web模型的所有描述已经对被正确的配置(weblogic.xml),然而你也可以按照下面的说明来改变它。

 

BEA WebLogic Server

 

web应用中的weblogic.xml(myweb)

 

        假定你的工程在c:/eclipse/workspace你需要正确地为你的Eclipse工作台改变这些信息。

 

 

     

       

         compileFlags

         -g

       

       

         keepgenerated

         true

       

       

          workingDir

 

         C:/eclipse/ workspace/MyJ2EEProject/j2src

 

       

     

 

 

Tomcat & JBOSS

 

我们需要设置Tomcat让它把执行JSP生成的java文件放到‘j2src’目录中。

 

象下面这样编辑tomcatserver.xml文件(/conf/server.xml)

 

假定你的工程在c:/eclipse/workspace你需要正确地为你的Eclipse工作台改变这些信息。

 

         docbase=" C: /eclipse/ workspace/My J2EE Project/myweb"

 

          workDir=" C: /eclipse/ workspace/My J2EE Project/j2src" />

 

重要的已知问题:

 

Tomcat4与工程中JSP文件的子目录问题

 

Eclipse不能编译JSP生成的servlet因为JSP文件的包定义中没有正确的包含URL路径org.apache.jsp.

 

解决办法

 

下载并安装Sysdeo Tomcat 4.x patch

www.sysdeo.com

 

或者你可以使用提供了包定义的Tomcat3.3

 

 

查看类文件和插入断点

 

       Eclipse通常不会自动检测其他程序(这里指应用服务器)在它的工程中放入的新文件,为了使你的工程与JSP类文件同步,你需要选择j2src目录,然后人工刷新,这将使你的工作台中显示所有的JSP类文件。接下来,你就可以为这些类文件插入断点了。

 

 

 

调试器

 

       插入断点以后再次进入你的JSP(例如http://localhost:7001/myweb)你会发现Eclipse调试器会在你插入断点的地方停下来。在这个断点上,你就可以象一般的调试那样进行调试了。

 

 

注意:你必须刷新你的工程,确保能够进入刚刚编译生成的JSP类文件.

 

 

aa) 如何使用Log4j纪录日志

String path="D:\\programmer\\ideaproj\\WorkUtil\\test\\log4j.properties";
org.apache.log4j.PropertyConfigurator.configure(path);
Logger logger = Logger.getLogger(Log4jTest.class);
logger.debug("a test.");

bb) Struts配置文件的功能是什么

strust的核心配置文件所有与struts有关的信息全部需要在此文件中进行配置。actionstruts的控制器struts-config.xmlstruts的总控制器。

cc) 如何使用动态Actionform

没有实际存在的类文件,只是在struts-config.xml中进行配置

转载于:https://www.cnblogs.com/justdoitba/articles/8059053.html

你可能感兴趣的:(MVC测试题(含简答题))