web面试题一答案.docx

上传人:b****5 文档编号:8228701 上传时间:2023-01-30 格式:DOCX 页数:7 大小:25.74KB
下载 相关 举报
web面试题一答案.docx_第1页
第1页 / 共7页
web面试题一答案.docx_第2页
第2页 / 共7页
web面试题一答案.docx_第3页
第3页 / 共7页
web面试题一答案.docx_第4页
第4页 / 共7页
web面试题一答案.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

web面试题一答案.docx

《web面试题一答案.docx》由会员分享,可在线阅读,更多相关《web面试题一答案.docx(7页珍藏版)》请在冰豆网上搜索。

web面试题一答案.docx

web面试题一答案

JavaWeb部分面试题一

1.说出Servlet的生命周期,并说出Servlet和CGI的区别?

Web容器加载servlet并将其实例化后,servlet生命周期开始,容器运行其init方法进行servlet的初始化,请求到达时运行其service方法,service方法自动派遣运行于请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。

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

2.forward和redirect的区别?

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

redirect就是服务器端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,所以session,request参数都可以获取,并且从浏览器的地址栏中可以看到跳转后的链接地址。

前者更加高效,在前者可以满足需要时,尽量使用forward()方法,也有助于隐藏实际的链接;在有些情况下,比如需要跳转到一个其它服务器上的资源,则必须使用sendRedirect()方法。

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

动态include用jsp:

include动作实现

includepage="included.jsp"flush="true"/>它总是会检查所包含文件中的变化,适合用于包含动态页面,并且可以带参数;静态include用include伪码实现,它不会检查所含文件的变化,适用于包含静态页面<%@includefile="included.htm"%>

4.JSP的有哪些内置对象,作用分别是什么?

request:

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

response:

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

pageContext:

网页的属性在这里管理;

session:

表示一个请求的javax.servlet.http.HttpSession对象,session可以存储用户的状态信息;

application:

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

out:

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

config:

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

page:

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

exception:

针对错误网页,未捕捉的例外。

5.JSP的常用指令?

<%@pagelanguage="java"contentType="text/html"%>

<%@includefile="filename"%>

<%@taglibprefix="c"uri="http:

//...."%>

6.JSP有哪些动作,作用分别是什么?

JSP共有以下6种基本动作:

jsp:

include:

在页面被请求的时候引入一个文件;

jsp:

useBean:

寻找或者实例化一个JavaBean;

jsp:

setProperty:

设置JavaBean的属性;

jsp:

getProperty:

输出某个JavaBean的属性;

jsp:

forward:

把请求转到一个新的页面;

jsp:

plugin:

根据浏览器类型为Java插件生成object标记。

7.GET和POST的区别?

form中的get和post方法,在数据传输过程中分别对应了HTTP协议中的GET和POST方法。

二者主要区别如下:

1 Get是用来从服务器上获得数据,而Post是用来向服务器上传递数据;

2 Get将表单中数据按照variable=value的形式,添加到action所指向的URL后面,并且两者使用“?

”连接,而各个变量之间使用“&”连接;Post是将表单中的数据放在form的数据体中,按照变量和值相对应的方式,传递到action所指向URL;

3 Get是不安全的,因为在传输过程,数据被放在请求的URL中;Post的所有操作对用户来说都是不可见的;

4 Get传输的数据量小,这主要是因为受URL长度限制;而Post可以传输大量的数据,所以在上传文件只能使用Post;

5 Get限制form表单的数据集必须为ASCII字符,而Post支持整个ISO10646字符集;

6 Get是from的默认方法。

8.常用的web容器和开发工具?

最常用的容器包含:

tomcat、weblogic、

开发工具有:

eclipse,jbuilder,JCreator

9.画出Servlet2.2以上WebApplication的基本目录结构?

目录结构如下图所示:

 

10.JSP和Servlet有哪些相同点和不同点,它们之间的联系是什么?

Jsp是servlet技术的扩展,本质上是servlet的简易方式,更强调应用的视图表达。

JSP编译后是“servlet类”。

Servlet和JSP最主要的不同点在于,servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。

而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。

JSP侧重于视图,servlet主要用于控制逻辑。

11.JSP的四种数据共享范围?

ØpageContext是代表与一个页面相关的对象和属性。

一个页面由一个编译好的Javaservlet类(可以带有任何的include指令,没有include动作)表示。

这既包括servlet又包括被编译成servlet的JSP页面。

ØRequest是代表与web客户机发出的一个请求相关的对象和属性。

一个请求可能跨越多个页面,涉及多个web组件(由于forward指令和include动作的关系)

ØSession是代表与用于某个web客户机的一个用户体验相关的对象和属性。

一个web会话可以也经常会跨越多个客户机请求。

ØApplication是代表与整个web应用程序相关的对象和属性。

这实质上是跨越整个web应用程序,包括多个页面、请求和会话的一个全局作用域。

12.Request对象的主要方法?

getParameter(String)返回指定输入参数,如果不存在,返回null

getParameterValues(String)返回指定输入参数名的取值数组,如果取值不存在则返回null。

它在参数具有多个取值的情况下十分有用。

getParameterMap()返回请求参数的map()对象

getRequestURI()返回URL中一部分,从“/”开始,包括上下文,但不包括任意查询字符串

getContextPath()返回指定servlet上下文(web应用)的URL的前缀

setAttribute(String,Object)在请求中设一个属性

getAttribute(String)得到设置的属性的值

getSession()返回当前http会话

getCookies();返回与请求相关cookie的一个数组

getRequestDispatcher(String)用于转发转发到新的地址

setCharaterEncoding(String)设置解析的编码

13.你对MVC的理解,MVC有什么优缺点?

结合Struts,说明在一个Web应用如何去使用?

基于Java的web应用系统采用MVC架构模式,即model(模型)、view(视图)、control(控制)分离设计;这是目前WEB应用服务系统的主流设计方向。

Medel:

即处理业务逻辑的模块,每一种处理一个模块;

View:

负责页面显示,显示model处理结果给用户,主要实现数据到页面转换过程;

Control:

负责每个请求的分发,把form数据传递给model处理,把处理结果的数据传递给view显示。

(MVC设计模式(应用观察者模式的框架模式)

M:

Model(Businessprocesslayer),模型,操作数据的业务处理层,并独立于表现层(Independentofpresentation)。

V:

View(Presentationlayer),视图,通过客户端数据类型显示数据,并回显模型层的执行结果。

C:

Controller(Controllayer),控制器,也就是视图层和模型层桥梁,控制数据的流向,接受视图层发出的事件,并重绘视图

MVC框架的一种实现模型

模型二(Servlet-centric):

JSP+Servlet+JavaBean,以控制为核心,JSP只负责显示和收集数据,Sevlet,连接视图和模型,将视图层数据,发送给模型层,JavaBean,分为业务类和数据实体,业务类处理业务数据,数据实体,承载数据,基本上大多数的项目都是使用这种MVC的实现模式。

StrutsMVC框架(Webapplicationframeworks)

Struts是使用MVC的实现模式二来实现的,也就是以控制器为核心。

Struts提供了一些组件使用MVC开发应用程序:

Model:

Struts没有提供model类。

这个商业逻辑必须由Web应用程序的开发者以JavaBean或EJB的形式提供

View:

Struts提供了actionform创建formbean,用于在controller和view间传输数据。

此外,Struts提供了自定义JSP标签库,辅助开发者用JSP创建交互式的以表单为基础的应用程序,应用程序资源文件保留了一些文本常量和错误消息,可转变为其它语言,可用于JSP中。

Controller:

Struts提供了一个核心的控制器ActionServlet,通过这个核心的控制器来调用其他用户注册了的自定义的控制器Action,自定义Action需要符合Struts的自定义Action规范,还需要在struts-config.xml的特定配置文件中进行配置,接收JSP输入字段形成Actionform,然后调用一个Action控制器。

Action控制器中提供了model的逻辑接口。

14.MVC的各个部分都有哪些技术来实现?

MVC是Model-View-Controller的简写。

“Model”代表的是应用的业务逻辑(通过JavaBean,EJB组件实现),“View”是应用的表示层(由JSP页面产生),“Controller”是提供应用的处理过程控制(一般是一个servlet),通过这种设计模型把应用逻辑,处理过程和显示分成不同的组件实现。

这些组件可以进行交互和重用。

15.有哪几种会话跟踪技术?

Cookie、URL重写、设置表单隐藏域。

16.过滤器有哪些作用?

可以验证客户是否来自可信的网络,可以对客户提交的数据进行重新编码,可以过滤掉客户的某些不应该出现的词汇,可以验证用户是否登录,可以验证客户的浏览器是否支持当前的应用,可以记录系统的日志等。

17.Web.xml的作用?

用于配置web应用的信息,如listener、filter及servlet的配置信息等。

18.写出熟悉的JSTL标签。

if>、

choose>、

when>、

otherwise>、

forEach>、

set>。

19.JSP标签的作用?

如何定义?

作用:

分离JSP页面的内容和逻辑;

封装业务逻辑;

可重用并且维护;

易于修改、维护;

提供简洁的语法。

定义:

写标签处理器;

写tld文件;

将标签处理器和tld文件放到同一个包里面;

把jsp页面和标签库配置部署在一起。

20.JavaScript的内置对象:

JavaScript有11种内置对象:

Array、String、Date、Math、Boolean、Number、Function、Global、Error、RegExp、Object。

21.什么是中间件?

中间件就是程序中可织入的,可重用的,与业务逻辑无关的各种组件。

中间件(middleware)是基础软件的一大类,属于可复用软件的范畴。

顾名思义,中间件处于操作系统软件与用户的应用软件的中间。

中间件在操作系统、网络和数据库之上,应用软件的下层,总的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。

  在众多关于中间件的定义中,比较普遍被接受的是IDC表述的:

中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。

分类:

数据访问中间件,远程调用中间件,消息中间件,交易中间件,对象中间件。

举例:

1,RMI(RemoteMethodInvocations,远程调用)

2,LoadBalancing(负载均衡,将访问负荷分散到各个服务器中)

3,TransparentFail-over(透明的故障切换)

4,Clustering(集群,用多个小的服务器代替大型机)

5,Back-end-Integration(后端集成,用现有的、新开发的系统如何去集成遗留的系统)

6,Transaction事务(全局/局部)全局事务(分布式事务)局部事务(在同一数据库联接内的事务)

7,DynamicRedeployment(动态重新部署,在不停止原系统的情况下,部署新的系统)

8,SystemManagement(系统管理)

9,Threading(多线程处理)

10,Message-orientedMiddleware面向消息的中间件(异步的调用编程)

11,ComponentLifeCycle(组件的生命周期管理)

12,Resourcepooling(资源池)

13,Security(安全)

14,Caching(缓存)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 历史学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1