资源描述
第一章
一、什么是JAVA EE?
1、JAVA EE是一个标准中间件体系构造2、JAVA EE是企业分布式应用开发标准。
二、JAVA EE编程思想与技术框架:什么是组件,什么是容器,JAVA EE有组件〔三类重要组件与容器,其分布如何〕
JAVA EE编程思想:组件——容器
JAVA EE应用的根本软件单元是JAVA EE组件。
组件的运行环境被称为容器。
JAVA EE组件:
1、客户端组件:JAVA EE客户端既可以是一个web浏览器、一个Applet,也可以是一个应用程序。
2、web组件:web组件是在JAVA EE web容器上运行的软件程序。它的功能是在 协议以上对web请求进展响应,这些响应动态的生成网页。JAVA EE web组件包括Servlet与JSP。
3、EJB组件:用于实现特定的应用逻辑。EJB分为两种:会话EJB与实体EJB,会话EJB向客户提供一定的效劳。而实体EJB那么代表数据对象,通常代表的是数据表记录集的一行,一个实体EJB可以同时与多个客户进展交互。
三、简述JAVA EE体系所含的主要技术
1、组件技术2、效劳技术3、通信技术
四、Java EE应用有哪些优点?
1、独立于硬件配置与操作系统2.坚持面向对象的设计原那么3.灵活性、可移植性与互操作性4.轻松的企业信息系统集成
第三章
一、什么是servlet,与Applet有什么区别
定义:一种独立于操作系统平台与网络传输协议的效劳器端的Java应用程序,它用来扩展效劳器的功能,可以生成动态的Web页面
相似之处:〔1〕它们不是独立的应用程序,没有main()方法。〔2〕它们不是由用户调用,而是由另外一个应用程序〔容器〕调用。〔3〕它们都有一个生存周期,包含init()与destroy()方法。
不同之处:〔1〕Applet运行在客户端,具有丰富的图形界面。〔2〕Servlet运行在效劳器端,没有图形界面。
二、servlet的工作原理〔参与WEB.xml中的,<servlet>与<servlet->标签,另外注意多个请求的处理〕
工作原理:Servlet运行在Web效劳器上的Web容器里。Web容器负责管理Servlet。它装入并初始化Servlet,管理Servlet的多个实例,并充当请求调度器,将客户端的请求传递到Servlet,并将Servlet的响应返回给客户端。Web容器在Servlet的使用期限完毕时终结该Servlet。效劳器关闭时,Web容器会从内存中卸载与除去Servlet。
多个请求的处理:效劳器会根据Servlet实例对象为每个请求创立一个处理线程。每个线程都可以访问Servlet装入时的初始化变量。每个线程处理它自己的请求。效劳器将不同的响应发送回相应的客户端。
三、编写servlet程序的步骤〔p21-22〕;浏览器中输入的地址如何〔p27,web.xml文件中各节点的含义p28〕doGet(),doPost()的声明中必须包含抛出servletException与IoException这两个异常, 请求7种方式 p32,get与post方式的区别
步骤:
1、创立一个扩展了javax.servlet. . Servlet接口的Servlet类。
2、重写doGet()或doPost()方法实现对 请求信息的动态响应。
各节点的含义:
<servlet>结点用来指明Servlet逻辑名称与java实现类之间的对应关系;<Servlet_mapping>用来指明Servlet逻辑名称与URL请求地址之间的对应关系;<welcome->节点指明请求web应用程序时默认显示的欢送页面。
请求7种方式:GET、POST、HEAD、 OPTIONS、 PUT、 DELETE、TRACE
get与post方式的区别:
当使用Post方法时,数据由标准的输入设备读入。
当使用Get方法时,数据由CGI变量QUERY_STRING传递给表单数据处理程序,即附加在请求地址的后面,在浏览器的地址栏中可以看到。
用户只要简单的调用 ServletRequest的getParameter()方法,给出变量名称即可取得该变量的值。
四、表单提交程序的编码〔form的两个属性,如何获取提交的值,参数的值的输出〕,关于汉字乱码解决的方法p30-32,要求会动手编程
response.setContentType(“text/html;charset=GB2312〞)
request.setCharacterEncoding(“gb2312〞)
五、发送非HTML文档〔p37,resset.C ontnetType(“ 〞)〕
pdf文件:res.setContentType(“application/pdf〞)
word文件:res.setContentType(“application/msword〞)
excel文档:res.setContentType(“〞)
六、/cookie与其使用方法〔p43-47,生成cookie的对象,设置cookie参数〕〔maxage的含义〕,写入与读取cookie,要去会动手编程
Cookie是一小块可以嵌入到 请求与响应中的数据。Web效劳器将Cookie值嵌入到响应的首部,而浏览器那么在其以后的请求中都将携带同样的Cookie。Cookie由浏览器保存在客户端,通常为一个文本文件。
七、cookie回话跟踪,URL重写回话跟踪以与HttpSession回话跟踪的方法,关闭回话的三种方式
URL重写通过在URL地址后面增加一个包含会话信息的字符串来记录会话信息。URL地址与会话信息的字符串间用“?〞隔开,如果有多个参数,参数间用“&〞隔开。
Session接口允许 Servlet查看与管理关于会话的信息,确保信息持续跨越多个用户连接等。 Session高级接口实际上是建立在 Cookie与 URL重写这两种会话跟踪技术之上的,只不过由Servlet自动实现了关于会话跟踪的一切,不再需要程序员了解具体细节。
八、Fitter必须实现的接口的三个方法〔p67,一个Filter必须实现javax.servlet.Filter接口〕
〔1〕init(FilterConfig)初始化方法,一般用来获取在web.xml文件中指定的初始化参数。
〔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文件或其他文本文件。
格式:
<%@ include file="相对位置 " %> "
七、 include动作的语法格式与其与include指令的区别〔可参考课件〕
include动作组件:把指定文件插入正在生成的页面。
其语法如下:< jsp:include page=“文件名〞flush=“true〞/>。
区别:
include动作组件与include指令元素有很大的不同。include动作组件在执行时才对包含的文件进展处理,因此JSP页面与它所包含的文件在逻辑上与语法上是独立的,如果对包含的文件进展了修改,那么运行时可以看到所包含文件修改后的结果。而静态的include指令包含的文件如果发生变化,必须重新将JSP页面转译成java文件,否那么只能看到所包含的修改前的文件内容。
八、forward动作的语法格式与其与response对象sendRedirect方法之间的区别
forward动作组件:用于将浏览器显示的网页,导向至另一个HTML网页或JSP网页,客户端看到的地址是A页面的地址,而实际内容却是B页面的内容。
语法如下:<jsp:forword page= “网页名称〞>
区别:response.sendRedirect()是向浏览器发送一个特殊的Header,然后由浏览器来做转向,转到指定的页面,所以用response.sendRedirect()时,浏览器的地址栏上可以看到地址的变化。而 < jsp:include page=“url〞/>那么不同,它是直接在效劳器端执行重定位的,从浏览器的地址不变可以看出。
九、param动作的使用,结合include动作或forward在不同页面间传递参数。要求会编程
<jsp:param>组件:用于传递参数信息,必须配合<jsp:include>或< jsp:forward>动作组件一起使用。
语法如下:< jsp:paramname=参数名称,value=值/>
当该组件与<jsp: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〔请求〕。由于采用<jsp:forward>与response.sendRedirect()等重定位计数,客户端发起的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常用方法:getId getValue getValueNames putValue等。
application常用方法:getMimeType getRealPath等。
out常用方法:pirnt、println、clear、 clearBuffer、 flush、getBufferSize、getRemaining
十二、EL表达式的根本语法格式,会计算简单的EL表达式值
${expr}
$为输出符号,expr为有效表达式
第五章
一、什么是JavaBean,其设计规那么如何〔p127-128〕
JavaBean是用Java语言描述的软件组件模型,实际上是一个类。这些类遵循一个接口格式,以便于构造与应用。JavaBean组件可移植、可重用、可组装到应用程序中。
符合下面的设计规那么任何Java类都是一个JavaBean:
〔1〕对于数据类型“protype〞的每个可读属性,Bean必须有下面签名的一个方法:
public proptypegetProperty() { }
〔2〕对于数据类型“protype〞的每个可写属性,Bean必须有下面签名的一个方法:public setProperty(proptypex) { }
〔3〕定义一个不带任何参数的构造函数。
二、在JSP页面中JavaBean有关的三个标记的语法格式与其使用方法
<jsp:useBean >操作 : <jsp useBean id=名字scope=范围jsp:id=“〞 scope=“
class=类名称type=类的种类class=“类名称〞type=“beanTypeBean的类型…… beanType=“〞 〞 〞
<jsp:getProperty>:<jsp:getProperty name="beanId" property="propertyName" />
<jsp:setProperty>:<jsp:setProperty name="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〕
<%@taglib uri=" " prefix="" %>
第七章
一、JSTL的根本组成,其中各库的根本功能
1、core标记库:核心功能实现,包括变量管理,迭代与条件判断等
2、SQL标记库:操作数据库
3、XML标记库:操XML
4、I18N标记库:国际化,数据格式显示
5、Fn标记库:常用函数库,包括String操作,集合类型操作等。
二、core标记库有哪几种标记,各类标记的作用如何〔重点〕
1、通用标记:实现信息显示、变量管理、异常处理等。
2、流程控制标记:实现分支处理、迭代等根本流程控制。
3、URL标记:实现URL重定位、格式化等
三、通用标记〔流程控制标记,URL标记〕具体包含那几个标记,其语法格式如何,参数的意义,使用方法
1、通用标记包含四个标记:<c:out>、<c:set>、<c:remove>、<c:catch>
<c:out>标记负责把变量或表达式的计算结果输出到JSPWriter,其功能与调用out.println()根本一致。<c:out>可以包含标记体内容,也可以不包含。当不包含体内容时,语法格式如下。
〔1〕不带标记体
<c:out value=“var〞 [escapeXml]=“{true|false}〞 [default=“defaultValue〞]/>
其中属性default的值为当变量var不存在时,标记缺省显示的内容。
〔2〕含体内容
<c:out value=“var〞 [escapeXml]=“{true|false}〞 >
这里是BODY,可以是任何合法的jsp或者是html代码。
</c:out>
<c:set>标记用于在某个范围(page,request,session或application)里面设置特定的变量,或者设置某个已经存在的Javabean的属性。其功能类似于<%request.setAttribute(“name〞,value)%>。
<c:set>可以含有标记体内容,也可以不包含标记体内容。当不包含标记体内容时,语法如下:
<c:set value=“value〞var=“varName〞[scope= “{page|request|session|application}〞]/ >
其中属性var为设置的变量的名称,value为变量的值,scope为可选属性,表示设置变量的范围,缺省为page。
当标记包含体内容时,<c:set>语法如下:
<c:set var=“varName〞 [scope= “{page|request|session|application}〞] >
Body content
</c:set>
由于包含体内容时,将采用体内容作为变量的初始值,因此,此时标记不能带有属性value。
<c:remove>的作用是删除某个变量。类似于<%session.removeAttribute(“name〞)%>,它的语法格式为:
<c:remove var=“varName〞 [scope= “{page|request|session|application}〞]/ >
其中属性var为要删除的变量的名称
<c:catch>的作用是捕捉嵌套在它内部的标记与脚本所抛出的异常。类似于<%try{ }catch{ }%>,它的语法格式为:
<c:catch [var=“varName〞]>
nested actions
</c:catch>
其中可选属性var用来保存捕捉到的异常信息。
流程控制标记:分支处理:<c:if>、<c:choose>、<c:when>与<c:otherwise>
循环处理:<c:forEach>、<c:forTokens>
<c:if>实现条件判断,有两种形式:
(1)无标记体的格式如下:
<c:iftest=“testCondition〞[var=“varName〞][scope=“{page|request|session|application}〞]/>
var用来保存条件判断的结果,scope设置它的范围。
〔2〕含标记体的格式
<c:iftest=“testCondition〞[var=“varName〞][scope=“{page|request|session|application}〞]>
body内容
</c:if>
只有在属性test为true时,标记体内容才会被输出到页面。
标记<c:choose>一般与<c:when>、<c:otherwise>
一起使用实现多路分支。其功能相当于java中的switch(i){ case 0:…..case n:……default:……}
<c:choose>的形式如下:
<c:choose>
body内容(<c:when>、<c:otherwise>)
</c:choose>
注意:body局部只能由以下内容:空格;0个或多个<c:when>子标记,且<c:when>必须在<c:otherwise>之前出现;0个或多个<c:otherwise>子标记。
<c:when>标记代表选择一个分支,格式如下:
<c:when test="testCondition">
body内容
</c:when>
<c:forTokens>用来浏览一字符串中所有的成员,其成员由分割符决定。形式如下:
<c:forTokens items=“stringForTokens"
delims="delimiters" [var="varName">]
[varStatus="varStatusName" ]
[begin=“begin〞] [end=“end〞][step=“step〞]>
body内容
</c:forTokens>
items指定要处理的字符串对象,elims为分割符,var指定当前项的变量,varStatusName表示当前循环状态,begin是开场条件,end是完毕条件,step是循环步长,默认为1。
<c:forEach>是最常用的标记,功能同java的for循环。它有两种形式。
〔1〕遍历集合对象
<c:forEach items=“collection"
[var="varName">]
[varStatus="varStatusName" ]
[begin=“begin〞] [end=“end〞][step=“step〞]>
body内容
</ c:forEach>
〔2〕固定次数的循环
<c:forEach
[var="varName">]
[varStatus="varStatusName" ]
begin=“begin〞 end=“end〞 [step=“step〞]>
body内容
</c:forEach>
其中begin与end是必选属性。
URL标记:JSTL包含三个URL操作有关的标记,分别是: <c:import>,<c:redirect>与<c:url>。
另外还有一个辅助标记<c:param>。
<c:import>
<c:import>用来导入一个URL资源,相当于JSP的
<jsp:include page=“path〞>
<c:import>标记体使用<c:param>可以把属性值传给被导入的页面。其格式如下:
<c:importurl=“url〞[var=“varName〞][scope=“{page|request|session|application}〞]>
可选的<c:param>
</c:import>
<c:param>在<c:import>,<c:redirect>中添加请求的属性。
当标记不含体内容时,属性的值使用value属性指定,格式如下:
<c:param name=“name〞 value=“value〞/>
当标记含体内容时,属性的值body指定,格式如下:
<c:param name=“name〞 >
属性值
</c:param>
<c:redirect>用来把客户的请求转发到另一个资源,相当于JSP的<%request.sendRedirect(“〞)%>
不包含体的格式如下:
<c:redirect url=“value〞/>
包含体的格式如下:
<c:redirect url=“value〞>
<c:param> subtags
</c:redirect>
<c:url>用于构造URL,主要的用途是URL重写。
不包含体的格式如下:
<c:urlvalue=“value〞[var=“varName〞][scope=“{page|request|session|application}〞] />
包含体的格式如下:
<c:urlvalue=“value〞[var=“varName〞][scope=“{page|request|session|application}〞] >
<c:param> subtags
</c:url>
第八章
一、JDBC的根本概念,如何使用
JDBC为多种关系数据库提供了统一访问方式,作为特定厂商数据库访问API的一种高级抽象,它主要包含一些通用的接口类。真正的数据库访问操作实现是由各自数据库厂商提供的。通常把厂商提供的特定于数据库的访问API称为数据库JDBC驱动程序。
JDBC通过提供一个抽象的数据库接口,使得程序开发人员在编程时可以不用绑定在特定数据库厂商的API上,大大增加了应用程序的可移植性。
JDBC访问数据库
加载JDBC驱动程序:Class. forName
建立数据库连接:DriverManger Connection、
建立与执行数据处理语句:Statement PreparedStatement CallableStatement
处理所得结果:ResultSet
关闭数据库连接
二、在利用JDBC访问数据库过程中,主要涉与三种资源〔对数据库的连接对象,connection.SQL语句对象statement与访问结果对象Resultset〕
给定具体的JDBC URL,获取数据库连接的方法是在
DriverManager对象上调用getConnection()。
这种方法有两种形式:
DriverManager.getConnection(url)
DriverManager.getConnection(url,user,password)
其中:第二种方式需要输入用户名与密码信息进展身份认证。
对象代表一条发送到数据库执行的SQL语句。
有三种Statement对象:
Statement对象:用于执行不带参数的简单SQL语句PreparedStatement对象:用于执行带或不带参数的预编译
CallableStatement对象:用于执行对数据库存储过程的调用。
ResultSet对象:
ResultSet包含符合SQL语句执行结果所有行,并且它通过一套get方法提供了对这些 行中数据的访问,常用的get方法有:
int getInt int〔columnIndex〕,取得当前行中第columnIndex列的整数的值。
int getInt (String columnName),取得当前行中列名为columnName的整数的值。
Date getDate〔int columnIndex〕,取得当前行中第columnIndex列的日期的值。
Date getDate (String columnName),取得当前行中列名为columnName的日期 的值。
public String getString (int columnIndex),取得当前行中第columnIndex列的 字符串的值。
public String getString (String columnName),取得当前行中列名为columnName的字符串的值。其他类型的get方法可以参考java文档。
ResultSet维护指向其当前数据行的光标,让光标向下移动一行的方法是:
public boolean next() throws SQLException
第 21 页
展开阅读全文