JavaWeb期末考试题必过宝典.docx
- 文档编号:10251208
- 上传时间:2023-05-24
- 格式:DOCX
- 页数:47
- 大小:41.77KB
JavaWeb期末考试题必过宝典.docx
《JavaWeb期末考试题必过宝典.docx》由会员分享,可在线阅读,更多相关《JavaWeb期末考试题必过宝典.docx(47页珍藏版)》请在冰点文库上搜索。
JavaWeb期末考试题必过宝典
JAVAWEB
期末考试必过宝典
版权所有·简圣光
JavaWeb考试题
1、说出Servlet的生命周期,并说出Servlet和CGI的区别?
【基础】
答:
Web容器加载Servlet并将其实例化后,Servlet生命周期开始,容器运行
其init方法进行Servlet的初始化,请求到达时运行其service方法,service
方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决
定将实例销毁的时候调用其destroy方法。
与cgi的区别在于servlet处于服务
器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请
求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后
就销毁,所以效率上低于servlet。
2、Servlet的基本架构。
【基础】
答:
publicclassServletNameextendsHttpServlet{
publicvoiddoPost(HttpServletRequestrequest,
HttpServletResponseresponse)
throwsServletException,IOException{
}
publicvoiddoGet(HttpServletRequestrequest,
HttpServletResponseresponse)
throwsServletException,IOException{
}
}
4、JSP中动态INCLUDE与静态INCLUDE的区别?
【基础】
答:
动态INCLUDE用jsp:
include动作实现 includepage="included.jsp" flush="true"/>它总是会检查所含文件中的变化,适合用于包含动态页面,并 且可以带参数;静态INCLUDE用include伪码实现,它不会检查所含文件的变化, 适用于包含静态页面<%@includefile="included.htm"%> 6、JSP的内置对象及方法? 【基础】 答: request表示HttpServletRequest对象。 它包含了有关浏览器请求的信息, 并且提供了几个用于获取cookie,header和session数据的有用的方法。 response表示HttpServletResponse对象,并提供了几个用于设置送回浏 览器的响应的方法(如cookies,头信息等)。 out对象是javax.jsp.JspWriter的一个实例,并提供了几个方法使你能用 于向浏览器回送输出结果。 pageContext表示一个javax.servlet.jsp.PageContext对象。 它是用于方 便存取各种范围的名字空间、servlet相关的对象的API,并且包装了通用的 servlet相关功能的方法。 session表示一个请求的javax.servlet.http.HttpSession对象。 Session 可以存贮用户的状态信息。 application表示一个javax.servle.ServletContext对象。 这有助于查找 有关servlet引擎和servlet环境的信息。 config表示一个javax.servlet.ServletConfig对象。 该对象用于存取 servlet实例的初始化参数。 page表示从该页面产生的一个servlet实例。 7、JSP的常用指令? 【基础】 答: <%@pagelanguage=”java”contenType=”text/html;charset=gb2312” session=”true”buffer=”64kb”autoFlush=”true”isThreadSafe=”true” info=”text”errorPage=”error.jsp”isErrorPage=”true”isELIgnored=” true”pageEncoding=”gb2312”import=”java.sql.*”%> isErrorPage: 是否能使用Exception对象;isELIgnored: 是否忽略EL表达式; <%@includefile=”filename”%> <%@taglibprefix=”c”uri=”http: //……”%> 8、jsp有哪些动作? 作用分别是什么? 【基础】 答: JSP共有以下6种基本动作: jsp: include: 在页面被请求的时候引入一个文件; jsp: useBean: 寻找或者实例化一个JavaBean。 ; jsp: setProperty: 设置JavaBean的属性。 ; jsp: getProperty: 输出某个JavaBean的属性; jsp: forward: 把请求转到一个新的页面; jsp: plugin: 根据浏览器类型为Java插件生成OBJECT或EMBED标记。 9、jsp有哪些内置对象? 作用分别是什么? 【基础】 答: JSP共有以下9种基本内置组件(可与ASP的6种内部组件相对应): request: 用户端请求,此请求会包含来自GET/POST请求的参数; response: 网页传回用户端的回应; pageContext: 网页的属性是在这里管理; session: 与请求有关的会话期; application: servlet正在执行的内容; out: 用来传送回应的输出; config: servlet的构架部件; page: JSP网页本身; exception: 针对错误网页,未捕捉的例外。 10、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是Form的默认方法。 11、什么情况下调用doGet()和doPost()? 【基础】 答: Jsp页面中的form标签里的method属性为get时调用doGet(),为post 时调用doPost()。 12、如何从form表单中得取checkbox的值;【基础】 答: 可在页面把checkbox的name属性取同一个,value属性取每个条目的id, 后台用getParamter(“name”)能取到checkbox的一组值。 13、页面中有一个命名为bankNo的下拉列表,写脚本获取当前选项的索引值。 答: 用java或javaScript的处理方式分别如下: Java: request.getParameter(“bankNo”); javaScript: varselectItems=document.getElementsByName(“bankNo”); selectItems[0].value; 14、javascript常用的方面;【基础】 答: 常用于数据输入校验和页面特殊效果等。 15、常用的web容器和开发工具;【基础】 答: 最常用的容器包括: tomcat、weblogic; 开发工具有: eclipse,jbuilder。 16、请画出Servlet2.2以上WebApplication的基本目录结构(2分钟) 答: 目录结构如下图所示: webapps | Applocation | __________________ || JSP页面WEB-INF | ___________________ ||| classeslibweb.xml 1.17、JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么? 有servlet为什么还要jsp? 答: JSP是Servlet技术的扩展,本质上是Servlet的简易方式,更强调应用的 外表表达。 JSP编译后是"类servlet"。 Servlet和JSP最主要的不同点在于, Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。 而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。 JSP侧重于 视图,Servlet主要用于控制逻辑。 jsp在其内容显示上更好,servlet在逻辑处理更据优越性,JSP是显示层的。 重在显示。 Servelt是控制层的,重在业务逻辑。 可以降低耦合、有利于分工。 18、jsp的四种范围? 【基础】 答: a.page是代表与一个页面相关的对象和属性。 一个页面由一个编译好的 Javaservlet类(可以带有任何的include指令,但是没有include动作) 表示。 这既包括servlet又包括被编译成servlet的JSP页面 b.request是代表与Web客户机发出的一个请求相关的对象和属性。 一个 请求可能跨越多个页面,涉及多个Web组件(由于forward指令和include动 作的关系) c.session是代表与用于某个Web客户机的一个用户体验相关的对象和属 性。 一个Web会话可以也经常会跨越多个客户机请求 d.application是代表与整个Web应用程序相关的对象和属性。 这实质上 是跨越整个Web应用程序,包括多个页面、请求和会话的一个全局作用域。 19、Request对象的主要方法? 【基础】 答: setAttribute(Stringname,Object): 设置名字为name的属性值 getAttribute(Stringname): 返回由name指定的属性值 getAttributeNames(): 返回request对象所有属性的名字集合(枚举) getCookies(): 返回客户端的所有Cookie对象,结果是一个Cookie数组 getCharacterEncoding(): 返回请求中的字符编码方式 getContentLength(): 返回请求的Body的长度 getHeader(Stringname): 获得HTTP协议定义的文件头信息 getHeaders(Stringname): 返回指定名的requestHeader的所有值(枚举) getHeaderNames(): 返回所有requestHeader的名字(枚举) getInputStream(): 返回请求的输入流,用于获得请求中的数据 getMethod(): 获得客户端向服务器端传送数据的方法 getParameter(Stringname): 获得客户端请求中传送的name指定的参数值 getParameterNames(): 获得客户端传送给服务器端的所有参数的名字(枚 举) getParameterValues(Stringname): 获得有name指定的参数的所有值 getProtocol(): 获取客户端向服务器端传送数据所依据的协议名称 getQueryString(): 获得查询字符串 getRequestURI(): 获取发出请求字符串的客户端地址 getRemoteAddr(): 获取客户端的IP地址 getRemoteHost(): 获取客户端的名字 getSession([Booleancreate]): 返回和请求相关Session getServerName(): 获取服务器的名字 getServletPath(): 获取客户端所请求的脚本文件的路径 getServerPort(): 获取服务器的端口号 removeAttribute(Stringname): 删除请求中的一个属性 20、如何实现servlet的单线程模式? 【基础】 答: <%@pageisThreadSafe=”false”%> 21、页面间对象传递的方法。 【基础】 答: request,session,application,cookie等。 22、详细描述MVC。 【基础】 答: 基于Java的Web应用系统采用MVC架构模式,即model(模型)、view(视 图)、control(控制)分离设计;这是目前WEB应用服务系统的主流设计方向。 Model: 即处理业务逻辑的模块,每一种处理一个模块; View: 负责页面显示,显示MODEL处理结果给用户,主要实现数据到页面转 换过程; Control: 负责每个请求的分发,把FORM数据传递给MODEL处理,把处理结 果的数据传递给VIEW显示。 23、MVC的各个部分都有那些技术来实现? 如何实现? 【基础】 答: MVC是Model-View-Controller的简写。 "Model"代表的是应用的业务逻 辑(通过JavaBean,EJB组件实现),"View"是应用的表示面(由JSP页面产 生),"Controller"是提供应用的处理过程控制(一般是一个Servlet),通 过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现。 这些组 件可以进行交互和重用。 24、应用服务器有那些? 【基础】 答: BEAWebLogicServer,IBMWebSphereApplicationServer,Oracle9i ApplicationServer,JBoss,Tomcat。 25、Servlet执行时一般实现哪几个方法? 【基础】 答: publicvoidinit(ServletConfigconfig) publicServletConfiggetServletConfig() publicStringgetServletInfo() publicvoidservice(ServletRequestrequest,ServletResponse response) publicvoiddestroy() 28、几种会话跟踪技术? 【基础】 答: cookie、URL重写、设置表单隐藏域。 29、BS与CS的联系与区别? 【基础】 答: C/S是Client/Server的缩写,是客户机与服务器结构的应用程序,服务器 通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、 Sybase、Informix或SQLServer。 客户端需要安装专用的客户端软件。 B/S是 Brower/Server的缩写,是浏览器和服务器结构的应用程序,即Web应用程序, 客户机上只要安装一个浏览器(Browser),如NetscapeNavigator或Internet Explorer,服务器安装Oracle、Sybase、Informix或SQLServer等数据库。 在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现, 但是主要事务逻辑在服务器端实现。 浏览器通过WebServer同数据库进行数据 交互。 C/S与B/S区别: 1)硬件环境不同: C/S一般建立在专用的网络上,小范围里的网络环境,局域网之间再通过 专门服务器提供连接和数据交换服务; B/S建立在广域网之上的,不必是专门的网络硬件环境,例与电话上网,租 用设备.信息自己管理.有比C/S更强的适应范围,一般只要有操作系统和浏 览器就行; 2)对安全要求不同: C/S一般面向相对固定的用户群,对信息安全的控制能力很强.一般高度 机密的信息系统采用C/S结构适宜.可以通过B/S发布部分可公开信息; B/S建立在广域网之上,对安全的控制能力相对弱,可能面向不可知的用 户; 3)对程序架构不同: C/S程序可以更加注重流程,可以对权限多层次校验,对系统运行速度可 以较少考虑; B/S对安全以及访问速度的多重的考虑,建立在需要更加优化的基础之上. 比C/S有更高的要求B/S结构的程序架构是发展的趋势,从MS的.Net系列的 BizTalk2000Exchange2000等,全面支持网络的构件搭建的系统.SUN和 IBM推的JavaBean构件技术等,使B/S更加成熟; 4)软件重用不同: C/S程序可以不可避免的整体性考虑,构件的重用性不如在B/S要求下的 构件的重用性好; B/S对的多重结构,要求构件相对独立的功能.能够相对较好的重用.就入 买来的餐桌可以再利用,而不是做在墙上的石头桌子; 5)系统维护不同: C/S程序由于整体性,必须整体考察,处理出现的问题以及系统升级.升 级难.可能是再做一个全新的系统; B/S构件组成,方面构件个别的更换,实现系统的无缝升级.系统维护开销 减到最小.用户从网上自己下载安装就可以实现升级; 6)处理问题不同: C/S程序可以处理用户面固定,并且在相同区域,安全要求高需求,与操 作系统相关.应该都是相同的系统; B/S建立在广域网上,面向不同的用户群,分散地域,这是C/S无法作到 的.与操作系统平台关系最小; 7)用户接口不同: C/S多是建立的Window平台上,表现方法有限,对程序员普遍要求较高; B/S建立在浏览器上,有更加丰富和生动的表现方式与用户交流.并且大 部分难度减低,减低开发成本; 8)信息流不同: C/S程序一般是典型的中央集权的机械式处理,交互性相对低; B/S信息流向可变化,B-BB-CB-G等信息、流向的变化,更像交易中心。 30、过滤器有哪些作用? 【基础】 答: 可以验证客户是否来自可信的网络,可以对客户提交的数据进行重新编码, 可以从系统里获得配置的信息,可以过滤掉客户的某些不应该出现的词汇,可以 验证用户是否登录,可以验证客户的浏览器是否支持当前的应用,可以记录系统 的日志等等。 31、过滤器的用法? (对客户端的请求统一编码和对客户端进行认证)【基础】 答: 首先要实现(implements)Filter接口,同时覆盖Filter接口的三个方法: init(FilterConfigconfig)//用于获得FilterConfig对象; doFilter(ServletRequestrequest,ServletResponseresponse, FilterChainchain)//进行过滤处理一些业务; destroy()//销毁Filter。 32、简述HttpSession的作用、使用方法,可用代码说明。 (3分钟)【基础】 答: HttpSession中可以跟踪并储存用户信息,把值设置到属性中,有2个方法: setAttribute(),getAttrribute(); 例如: 在一个方法中用session.setAttribute(“student”,student);在 session中设置一个属性名为student,值为一个名为student的对象。 而后可在 同一session范围内用getAttribute(“student”)取出该属性,得到student 对象。 33、介绍在JSP中如何使用JavaBeans? 【基础】 答: 在JSP中使用JavaBean常用的动作有: 1) useBean/>: 用来创建和查找bean对象; 2) setProperty/>: 用来设置bean的属性,即调用其setXxx()方法; 3) getProperty/>: 用来获得bean的属性,即调用其getXxx()方法。 34、JSP和Servlet中的请求转发分别如何实现? 【基础】 答: JSP中的请求转发可利用forward动作实现: forward/>; Serlvet中实现请求转发的方式为: getServletContext().getRequestDispatcher(path).forward(req,res)。 35、Web.Xml的作用? 【基础】 答: 用于配置web应用的信息;如listener、filter及servlet的配置信息等。 36、写出熟悉的JSTL标签。 【基础】 答: if>、 choose>、 when>、 otherwise>、 forEach>、 set>。 38、JSP标签的作用? 如何定义? 【中等难度】 答: 作用: 分离jsp页面的内容和逻辑; 业务逻辑开发者可以创建自定义标签; 封装业务逻辑; 可重用并且易维护; 易于手工修改、易于工具维护; 提供简洁的语法; 定义: 写标签处理器; 写tld文件; 讲标签处理器和tld文件放到同一个包里面; 把jsp页面和标签库配置部署在一起。 39、写一个自定义标签;【中等难度】 答: 代码如下: importjavax.servlet.jsp.tagext.*; importjavax.servlet.jsp.*; importjava.io.*; publicclassTimeTagextendsSimpleTagSupport{ privatebooleanisServer=true; publicvoidsetServer(booleanisServer){ this.isServer=isServer; } publicvoiddoTag()throwsJspException,IOException{ JspWriterout=getJspContext().getOut(); if(isServer){ out.println(newjava.util.Date()); }else{ out.println(" out.println("document.write(newDate());"); out.println(""); } } } 40、javascript的优缺点和内置对象;【中等难度】 答: 1)优点: 简单易用,与Java有类似的语法,可以使用任何文本编辑工具编 写,只需要浏览器就可执行程序,并且事先不用编译,逐行执行,无需进行严
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JavaWeb 期末 考试题 宝典