javaee考试复习.docx
《javaee考试复习.docx》由会员分享,可在线阅读,更多相关《javaee考试复习.docx(14页珍藏版)》请在冰豆网上搜索。
![javaee考试复习.docx](https://file1.bdocx.com/fileroot1/2023-1/24/a1c6560d-3b87-42e1-ad4d-085ae14c39a0/a1c6560d-3b87-42e1-ad4d-085ae14c39a01.gif)
javaee考试复习
第一章
一、什么是JAVAEE?
1、JAVAEE是一个标准中间件体系结构2、JAVAEE是企业分布式应用开发标准。
二、JAVAEE编程思想和技术框架:
什么是组件,什么是容器,JAVAEE有组件(三类重要组件和容器,其分布如何)
JAVAEE编程思想:
组件——容器
JAVAEE应用的基本软件单元是JAVAEE组件。
组件的运行环境被称为容器。
JAVAEE组件:
1、客户端组件:
JAVAEE客户端既可以是一个web浏览器、一个Applet,也可以是一个应用程序。
2、web组件:
web组件是在JAVAEEweb容器上运行的软件程序。
它的功能是在HTTP协议以上对web请求进行响应,这些响应动态的生成网页。
JAVAEEweb组件包括Servlet和JSP。
3、EJB组件:
用于实现特定的应用逻辑。
EJB分为两种:
会话EJB和实体EJB,会话EJB向客户提供一定的服务。
而实体EJB则代表数据对象,通常代表的是数据表记录集的一行,一个实体EJB可以同时与多个客户进行交互。
三、简述JAVAEE体系所含的主要技术
1、组件技术2、服务技术3、通信技术
四、JavaEE应用有哪些优点?
1、独立于硬件配置和操作系统2.坚持面向对象的设计原则3.灵活性、可移植性和互操作性4.轻松的企业信息系统集成
第三章
一、什么是servlet,与Applet有什么区别
定义:
一种独立于操作系统平台和网络传输协议的服务器端的Java应用程序,它用来扩展服务器的功能,可以生成动态的Web页面
相似之处:
(1)它们不是独立的应用程序,没有main()方法。
(2)它们不是由用户调用,而是由另外一个应用程序(容器)调用。
(3)它们都有一个生存周期,包含init()和destroy()方法。
不同之处:
(1)Applet运行在客户端,具有丰富的图形界面。
(2)Servlet运行在服务器端,没有图形界面。
二、servlet的工作原理(参与中的,和标签,另外注意多个请求的处理)
工作原理:
Servlet运行在Web服务器上的Web容器里。
Web容器负责管理Servlet。
它装入并初始化Servlet,管理Servlet的多个实例,并充当请求调度器,将客户端的请求传递到Servlet,并将Servlet的响应返回给客户端。
Web容器在Servlet的使用期限结束时终结该Servlet。
服务器关闭时,Web容器会从内存中卸载和除去Servlet。
多个请求的处理:
服务器会根据Servlet实例对象为每个请求创建一个处理线程。
每个线程都可以访问Servlet装入时的初始化变量。
每个线程处理它自己的请求。
服务器将不同的响应发送回相应的客户端。
三、编写servlet程序的步骤(p21-22);浏览器中输入的地址如何(p27,文件中各节点的含义p28)doGet(),doPost()的声明中必须包含抛出servletException和IoException这两个异常,Http请求7种方式p32,get与post方式的区别
步骤:
1、创建一个扩展了接口的Servlet类。
2、重写doGet()或doPost()方法实现对HTTP请求信息的动态响应。
各节点的含义:
结点用来指明Servlet逻辑名称与java实现类之间的对应关系;用来指明Servlet逻辑名称与URL请求地址之间的对应关系;节点指明请求web应用程序时默认显示的欢迎页面。
Http请求7种方式:
GET、POST、HEAD、OPTIONS、PUT、DELETE、TRACE
get与post方式的区别:
当使用Post方法时,数据由标准的输入设备读入。
当使用Get方法时,数据由CGI变量QUERY_STRING传递给表单数据处理程序,即附加在请求地址的后面,在浏览器的地址栏中可以看到。
用户只要简单的调用HttpServletRequest的getParameter()方法,给出变量名称即可取得该变量的值。
四、表单提交程序的编码(form的两个属性,如何获取提交的值,参数的值的输出),关于汉字乱码解决的方法p30-32,要求会动手编程
(“text/html;charset=GB2312”)
(“gb2312”)
五、发送非HTML文档(p37,ontnetType(“”))
pdf文件:
(“application/pdf”)
word文件:
(“application/msword”)
excel文档:
(“application/”)
六、/cookie及其使用方法(p43-47,生成cookie的对象,设置cookie参数)(maxage的含义),写入和读取cookie,要去会动手编程
Cookie是一小块可以嵌入到HTTP请求和响应中的数据。
Web服务器将Cookie值嵌入到响应的首部,而浏览器则在其以后的请求中都将携带同样的Cookie。
Cookie由浏览器保存在客户端,通常为一个文本文件。
七、cookie回话跟踪,URL重写回话跟踪以及HttpSession回话跟踪的方法,关闭回话的三种方式
URL重写通过在URL地址后面增加一个包含会话信息的字符串来记录会话信息。
URL地址与会话信息的字符串间用“?
”隔开,如果有多个参数,参数间用“&”隔开。
HttpSession接口允许Servlet查看和管理关于会话的信息,确保信息持续跨越多个用户连接等。
HttpSession高级接口实际上是建立在Cookie和URL重写这两种会话跟踪技术之上的,只不过由Servlet自动实现了关于会话跟踪的一切,不再需要程序员了解具体细节。
八、Fitter必须实现的接口的三个方法(p67,一个Filter必须实现javax.servlet.Filter接口)
(1)init(FilterConfig)初始化方法,一般用来获取在文件中指定的初始化参数。
(2)doFilter(ServletRequest,ServletResponse,FilterChain)实现过滤功能,该方法就是对每个请求及响应增加的额外处理。
FilterChain对象提供了后续Filter所要调用的信息。
(3)destroy()用于Filter销毁前,完成某些资源的回收。
九、Filter如何与具体的请求URL模式关联起来(参写web.xml中的<filter-mapping>标签,p67-71)
<filter-mapping>结点指明Filter与URL之间的对应关系。
第四章
一、什么是JSP,它与servlet的关系
JSP是一种实现普通静态HTML和动态HTML混合编码的技术。
JSP最终会被转换成标准的Servlet。
二、JSP页面的基本组成,HTML代码脚本元素、指令和动作。
要求会变形程序,写一个JSP程序经常要用到的框架
<%@page.contenType="text/html:
charsel=GB2312">//或者分行来写p122
<html>
<body>
.......
......
</body>
脚本元素、指令和动作
脚本元素用来嵌入java代码,这些java代码将成为转换得到的Servlet的一部分;JSP指令用来从整体上控制Servlet的结构;动作用来引入现有的组件来控制web容器的行为。
三、表达式的语法格式(p86),要求编写过程中会使用
<%=表达式%>输出表达式的结果。
表达式中的变量必须是前面已声明过的变量。
注意:
%与=之间不能有空格且表达式后面不需要分号。
四、两中注释的区别及各自的语法格式,要求编写过程中会使用
1、输出到客户端的注释
-comment->
2、不输出到客户端的注释<%--comment--%>
五、变量、方法及类的声明(变量的声明可以放在引用之后),要求编写过程中会使用
<%!
声明;[声明;]...%>
六、指令:
page指令和include指令的语法格式及各个指令的含义,要求编程中会使用
JSP的指令格式为:
<%@指令名属性="属性值"%>
page指令用来定义整个JSP页面的全局属性。
合法的page属性有:
import、contentType、isThreadSafe、session、buffer、autoflush、extends、info、errorPage、isErrorPage和language等。
include指令向JSP页面内某处嵌入一个文件。
这个文件可以是HTML文件、JSP文件或其他文本文件。
格式:
<%@includefile="相对位置"%>"
七、include动作的语法格式及其与include指令的区别(可参考课件)
include动作组件:
把指定文件插入正在生成的页面。
其语法如下:
includepage=“文件名”flush=“true”/>。
区别:
include动作组件和include指令元素有很大的不同。
include动作组件在执行时才对包含的文件进行处理,因此JSP页面和它所包含的文件在逻辑上和语法上是独立的,如果对包含的文件进行了修改,那么运行时可以看到所包含文件修改后的结果。
而静态的include指令包含的文件如果发生变化,必须重新将JSP页面转译成java文件,否则只能看到所包含的修改前的文件内容。
八、forward动作的语法格式及其与response对象sendRedirect方法之间的区别
forward动作组件:
用于将浏览器显示的网页,导向至另一个HTML网页或JSP网页,客户端看到的地址是A页面的地址,而实际内容却是B页面的内容。
语法如下:
forwordpage=“网页名称”>
区别:
response.sendRedirect()是向浏览器发送一个特殊的Header,然后由浏览器来做转向,转到指定的页面,所以用response.sendRedirect()时,浏览器的地址栏上可以看到地址的变化。
而includepage=“url”/>则不同,它是直接在服务器端执行重定位的,从浏览器的地址不变可以看出。
九、param动作的使用,结合include动作或forward在不同页面间传递参数。
要求会编程
param>组件:
用于传递参数信息,必须配合include>或forward>动作组件一起使用。
语法如下:
paramname=参数名称,value=值/>
当该组件与include>一起使用时,可以将param组件中的值传递到include动作组件要加载的文件中去。
十、JSP的九种内置对象及其作用范围(p103-123,page,request,session,application)
Request、Reponse、Out、Session、Application、Config、Pagecontext、Page、exception
作用范围:
(1)page。
page范围内的对象仅在JSP页面范围内有效。
超出JSP页面范围,则对象无法获取。
(2)request。
客户向服务器发起的请求称为request(请求)。
由于采用forward>和()等重定位计数,客户端发起的request请求可以跨越若干个页面。
因此定义为request范围的JSP内置对象可以在request范围内的若干个页面内有效。
(3)session。
客户端与服务器的交互过程,称为session(会话)。
在客户端与服务器的交互过程中,可以发起多次请求,一个session可以包含若干个request。
定义为session范围的JSP内置对象可以跨越若干个request范围有效。
(4)application。
部署在服务器上的Web应用程序与所有客户端的的交互过程,称为application。
一个application可以包含若干个session。
定义为application范围的JSP内置对象可以跨越若干个session范围有效。
十一、内置对象request,response,session,application,out的常用方法,response对象sendRedice
request常用方法:
getParametergetParameter、getParameterNamesgetParameterNames和getParameterValues
response常用方法:
session常用方法:
getIdgetValuegetValueNamesputValue等。
application常用方法:
getMimeTypegetRealPath等。
out常用方法:
pirnt、println、clear、clearBuffer、flush、getBufferSize、getRemaining
十二、EL表达式的基本语法格式,会计算简单的EL表达式值
${expr}
$为输出符号,expr为有效表达式
第五章
一、什么是JavaBean,其设计规则如何(p127-128)
JavaBean是用Java语言描述的软件组件模型,实际上是一个类。
这些类遵循一个接口格式,以便于构造和应用。
JavaBean组件可移植、可重用、可组装到应用程序中。
符合下面的设计规则任何Java类都是一个JavaBean:
(1)对于数据类型“protype”的每个可读属性,Bean必须有下面签名的一个方法:
publicproptypegetProperty(){}
(2)对于数据类型“protype”的每个可写属性,Bean必须有下面签名的一个方法:
publicsetProperty(proptypex){}
(3)定义一个不带任何参数的构造函数。
二、在JSP页面中JavaBean有关的三个标记的语法格式及其使用方法
useBean>操作:
id=“”scope=“
class=类名称type=类的种类class=“类名称”type=“beanTypeBean的类型……beanType=“”””
……>
getProperty>:
getPropertyname="beanId"property="propertyName"/>
setProperty>:
setPropertyname="beanId"property="propertyName"
value="propertyValue"/>
第六章
一、什么是自定义标记(p139)
JSP自定义标记是对JSP标准动作标记的一种扩展。
通过自定义标记,将一些重复性的、与特定应用相关的业务逻辑以文档化标记的形式进行调用,维护JSP以文档为中心的开发方式,最大程度地降低JSP页面的代码含量,提高JSP页面可维护性
自定义标记的表示和分类(p140)
表示:
1、标记名称2、属性3、体内容
分类:
1、处理体内容的标记。
2、简单标记
三、自定义标记库的组成(p143)
1、标记处理器2、标记库描述符(TLD文件)
四、开发一个自定义标记库的步骤(p143)
1、编写标记处理器。
2、编写自定义标记库的描述文件TLD3、编写应用标记的JSP页面。
五、在JSP页面中引入自定义标记的方式(p146)
<%@tagliburi=""prefix=""%>
第七章
一、JSTL的基本组成,其中各库的基本功能
1、core标记库:
核心功能实现,包括变量管理,迭代和条件判断等
2、SQL标记库:
操作数据库
3、XML标记库:
操XML
4、I18N标记库:
国际化,数据格式显示
5、Fn标记库:
常用函数库,包括String操作,集合类型操作等。
二、core标记库有哪几种标记,各类标记的作用如何(重点)
1、通用标记:
实现信息显示、变量管理、异常处理等。
2、流程控制标记:
实现分支处理、迭代等基本流程控制。
3、URL标记:
实现URL重定位、格式化等
三、通用标记(流程控制标记,URL标记)具体包含那几个标记,其语法格式如何,参数的意义,使用方法
1、通用标记包含四个标记:
out>、set>、remove>、catch>
out>标记负责把变量或表达式的计算结果输出到JSPWriter,其功能与调用()基本一致。
out>可以包含标记体内容,也可以不包含。
当不包含体内容时,语法格式如下。
(1)不带标记体
outvalue=“var”[escapeXml]=“{true|false}”[default=“defaultValue”]/>
其中属性default的值为当变量var不存在时,标记缺省显示的内容。
(2)含体内容
outvalue=“var”[escapeXml]=“{true|false}”>
这里是BODY,可以是任何合法的jsp或者是html代码。
out>
set>标记用于在某个范围(page,request,session或application)里面设置特定的变量,或者设置某个已经存在的Javabean的属性。
其功能类似于<%(“name”,value)%>。
set>可以含有标记体内容,也可以不包含标记体内容。
当不包含标记体内容时,语法如下:
setvalue=“value”var=“varName”[scope=“{page|request|session|application}”]/>
其中属性var为设置的变量的名称,value为变量的值,scope为可选属性,表示设置变量的范围,缺省为page。
当标记包含体内容时,set>语法如下:
setvar=“varName”[scope=“{page|request|session|application}”]>
Bodycontent
set>
由于包含体内容时,将采用体内容作为变量的初始值,因此,此时标记不能带有属性value。
remove>的作用是删除某个变量。
类似于<%(“name”)%>,它的语法格式为:
removevar=“varName”[scope=“{page|request|session|application}”]/>
其中属性var为要删除的变量的名称
catch>的作用是捕捉嵌套在它内部的标记和脚本所抛出的异常。
类似于<%try{}catch{}%>,它的语法格式为:
catch[var=“varName”]>
nestedactions
catch>
其中可选属性var用来保存捕捉到的异常信息。
流程控制标记:
分支处理:
if>、choose>、when>和otherwise>
循环处理:
forEach>、forTokens>
if>实现条件判断,有两种形式:
(1)无标记体的格式如下:
iftest=“testCondition”[var=“varName”][scope=“{page|request|session|application}”]/>
var用来保存条件判断的结果,scope设置它的范围。
(2)含标记体的格式
iftest=“testCondition”[var=“varName”][scope=“{page|request|session|application}”]>
body内容
if>
只有在属性test为true时,标记体内容才会被输出到页面。
标记choose>一般和when>、otherwise>
一起使用实现多路分支。
其功能相当于java中的switch(i){case0:
…..casen:
……default:
……}
choose>的形式如下:
choose>
body内容(when>、otherwise>)
choose>
注意:
body部分只能由以下内容:
空格;0个或多个when>子标记,且when>必须在otherwise>之前出现;0个或多个otherwise>子标记。
when>标记代表选择一个分支,格式如下:
whentest="testCondition">
body内容
when>
forTokens>用来浏览一字符串中所有的成员,其成员由分割符决定。
形式如下:
forTokensitems=“stringForTokens"
delims="delimiters"[var="varName">]
[varStatus="varStatusName"]
[begin=“begin”][end=“end”][step=“step”]>
body内容
forTokens>
items指定要处理的字符串对象,elims为分割符,var指定当前项的变量,varStatusName表示当前循环状态,begin是开始条件,end是结束条件,step是循环步长,默认为1。
forEach>是最常用的标记,功能同java的for循环。
它有两种形式。
(1)遍历集合对象
forEachitems=“collection"
[var="varName">]
[varStatus="varStatusName"]
[begin=“begin”][end=“end”][step=“step”]>
body内容
forEach>
(2)固定次数的循环
forEach
[var="varName">]
[varStatus="varStatusName"]
begin=“begin”end=“end”[step=“step”]>
body内容
forEach>
其中begin和end是必选属性。
URL标记:
JSTL包含三个URL操作有关的标记,分别是:
import>,redirect>和url>。
另外还有一个辅助标记param>。
import>
import>用来导入一个URL资源,相当于JSP的
includepage=“path”>
import>标记体使用param>可以把属性值传给被导入的页面。
其格式如下:
importurl=“url”[var=“varName”][scope=“{page|request|session|application}”]>
可选的param>
import>
param>在import>,redirect>中添加请求的属性。
当标记不含体内容时,属性的值使用value属性指定,格式如