JSP应用开发项目化教程课后习题参考答案.docx

上传人:夺命阿水 文档编号:1072270 上传时间:2024-03-13 格式:DOCX 页数:14 大小:116.33KB
返回 下载 相关 举报
JSP应用开发项目化教程课后习题参考答案.docx_第1页
第1页 / 共14页
JSP应用开发项目化教程课后习题参考答案.docx_第2页
第2页 / 共14页
JSP应用开发项目化教程课后习题参考答案.docx_第3页
第3页 / 共14页
JSP应用开发项目化教程课后习题参考答案.docx_第4页
第4页 / 共14页
JSP应用开发项目化教程课后习题参考答案.docx_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《JSP应用开发项目化教程课后习题参考答案.docx》由会员分享,可在线阅读,更多相关《JSP应用开发项目化教程课后习题参考答案.docx(14页珍藏版)》请在课桌文档上搜索。

1、课后习题参考答案1、简单叙述TomCaI服务器安装路径下各目录的作用。【参考答案】以TomCat6.0为例,列出其子目录的各项功能:(1) binTomcat中的一些可执行文件和批处理文件,用于启动、停止服务等。(2) cong存放TonlCat中的各种全局配置文件。(3) libTomCat运行库文件。(4) logs运行日志。(5) temp临时目录。(6) webapps项目发布目录。(7) work存放JSP编译后生成的Java代码和class类。2、归纳在MyECliPSe环境下创建、发布、运行Web项目过程。【参考答案】第一步,创建项目:创建或选择工作空间(WorkSpace,工作

2、空间),进入后默认的视图为MyECliPSC视图。选择【Filo-*new-*WebProject,后出现创建WCb项目的窗口,在【ProjectName中填入项目名称如test,点击【finish】完成;第二步,项目编码:(创建JSP页面等)略;第三步,发布项目:首先,配置外部服务器。选择MyECliPSe菜单中的Window下的Preferences选项,进入到配置环境界面,在左边的工具条中,选择【Myeclipse】-【Servers】-【Tomcat】,进行相关配置。其次,发布过程。服务器配置完成后,选择工具条中的发布工具,将项目部署到TomCat中。最后,启动项目。项目成功发布后,选

3、择工具条中的服务器启动工具选择配好的服务器,启动服务器。在地址栏中输入项目地址whttp:/localhost:8080/test/index.jsp”启动项目。3.在MyECIiPSe中有时发布完项目后启动TOinCat服务器时会报出如图1.11所示的错误.BindException:Addressalreadyinuse:JVNLBin(KnUIl:8080”请根据所学知识和错误提示盘点这是什么样的错误,怎样解决。信息:TheAPRbasedApacheTomcatNativelibrarywhichallowsoptimalperformancein2010-12-221:19:04or

4、g.apache.coyote.httpl1.HttpllProtocolinit乒重:ErrorinitializingendpointJaV.BindEXCePtiOn:Addressalreadyinuse:JVM-Bind:8060.JIoEncIpoint.init(JloEndPoint.java:5021atorg.apache.coyote.httpl1.HttpllProtocol.init(HttPI.IProtoIol.java:176)atorg.apache.catalina.connector.Connector.initialize(ConneCtor.java:

5、1058)【参考答案】说明Tomcat服务器已经启动后没有停止,又一次重新启动服务器就会出现这种情况。出现这种情况后,首先停止服务器,再重新启动。若还是出现这种情况,可将MyECIiPSe开发工具关闭,并使用CtrI+alt+del进入任务管理器,选择进程选项,检查系统服务中的TOmCat进程是否关闭,若没有关闭,请停止该服务后重新启动即可。课后习题参考答案1、归纳静态Html页面由哪几部分组成?【参考答案】网页的标题网页的内容,很多标记都作用于此2、Html页面中的常用标签有哪些?【参考答案】基本标签:,创建一个HTML文档; headXhead,设置文档标题和其它在网页中不显示的信息;ti

6、tle,设置文档的标题;.字体颜色;链接标签:,创建超文本链接;表格标签:,创建一个表格;,表格中的每一行;,表格中一行中的每一个格子;表单元素标签:等标签3.写出iFrame标签的常用属性。【参考答案】srcwidthheightframeborderHiarginwidth引用链接地址一框架的宽度框架的高度-定义了内容页的边框,取值为(IIo),缺省值为1-定义了框架中HTML文件显示的左右边界的宽度,缺省值由浏览器决定marginheight-定义了框架中HTML文件显示的上下边界的矿度,缺省值由浏览器决定scrolling-设置或获取框架是否可被滚动。auto=自动调整yes=有滚动条

7、no=无滚动条4、在Hlml页面中怎样定义JS脚本?【参考答案】网页中引入JaVaSCriPt的方法。方法一:直接在页面中加入JaVaSCriPt代码,这是最常用的方法。scriptIangUagC=Javascript方法二:引用外部JS文件。5、在Html页面中怎样定义CSS样式?【参考答案】方法1:在和之间加入语句,定义样式方法2:引入已经定义好的CSS文件,使用这句来连接CSS文件。1、include指令标记与indu加动作标记有什么区别?【参考答案】include页面指令与include动作的区别主要在:1)JSP页面指令相当于是把被包含文件代码原封不动的放进了包含它的文件中,编译时

8、候生成一个class文件。JSP动作指令被包含的文件和包含的文件在编译时候生成的是两个class文件。2) jsp:include动作标记包含的是执行结果,而include页面指令包含的是文件内容。3) jsp:include动作元素在请求期间被执行,而include页面指令在编译期页面间被执行。2、在%!和之间声明的变量和在%和之间声明的变量有何区别?【参考答案】1)在%!%之间声明的变量在JSP页面内都有效,也就是说说可以理解为%!%之间声明的是全局的变量和方法,可以方法可以被公有使用,变量则可以被所有方法调用改变。2)在%之间声明的变量则为局部变量,当运行多个线程时,值不会相互影响.3、

9、说明jsp:USeBean动作标签的作用。【参考答案】用来装载一个将在JSP页面中使用的JaVaBean。其中,CIaSS属性指定的类所在包的位置和类名信息,id属性指定JaVaBean实例的名称。scope属性定义bean的工作范围。jsp:USeBean的作用是下指定的工作范围内创建JavaBean的实例。4、ClaSS.forname()方法的作用是什么,其中ClaSS类是属于哪个包。【参考答案】CIaSS.forName(xxx.xx.xx);的作用是要求JVM查找并加载指定的类,也就是说JVM会执行该类的静态代码段动态加载和创建CIaSS对象,比如想根据用户输入的字符串来创建对象。C

10、laSS.forName(“类名”)在数据库驱动时是很常用的,就是让jvm加载驱动类用的。因为JDBC的DriverManager是个通用的类,显然不可能事先通过硬编码来创建驱动程序的实例,因为它根本不知道用户将使用哪个驱动程序。所以不可能有类似newcom.microsoft.jdbc.sqlserver.SQLServerDriver()这样的代码出现。所以就需要使用DriverManagengetConnection之前调用ClaSS.forName(驱动名)来使JVM加载驱动程序类。5、PreParedStatement与Statement的区别有哪些?【参考答案】1)使用PrePar

11、edStatement代码的可读性和可维护性高。2)使用PreparedStatement可能提高性能。3)使用PreParedStatement代码的安全性可以避免这种注入威胁。6、怎样导入数据库驱动的外部Jar包?【参考答案】方法1:使用JavaBuildPath完成导入Jar包如下图所示,在MyECliPSe项目单击鼠标右键,选择ProPerIieS选项。选中其中的JaVaBuildPath,在选中LibrarieS选项卡。选中右侧的【AddLibrary】进行添加。在点击【AddLibrary后,出现如下界面,选中其中的【UserLibrary项进行添加用户包。方法2:使用拷贝方式。可

12、以将外部Jar包直接拷贝的WebRootAVeb-INFZlib目录下,然后刷新项目即可。7、请说出一个JSP的运行原理。【参考答案】当一个JSP页面第一次被访问的时候,JSP引擎将执行以下步骤:1)将JSP页面翻译成一个SerVlet,SerVlet是一个java类;4) JSP引擎调用java编译器对SerVIet进行编译,得到对应ClaSS文件;5) JSP引擎调用java虚拟机来解释执行CIaSS文件,生成向客户端发送的应答,然后发送给客户端;以上三个步骤仅仅在JSP页面第一次被访问时才会执行,以后的访问速度会因为class文件已经生成而大大提高。当JSP引擎接到一个客户端的访问请求时

13、,首先判断请求的JSP页面是否比对应的SerVlet是否有变化,如果发生了改变,对应的JSP需要重新编译,否则,如果JSP页面没有发生变化,将直接调用己经生成的class文件进行执行。1、比较常用隐式对象的作用范围。【参考答案】内置对象名称代表内容范围request客户端发的HTTP请求requestresponse向客户端发的应答pagesession为请求的客户创建的session对象sessionapplication从SerVlel配置对象获得的servlet上下文(如在geiSerVletConfigOgeiConiexi()的调用中)applicationout向输出流写入内容的对

14、象pagepageContext本JSP的页面上下文pagepage实现处理本页当前请求的类的实例pageconfig本JSP的ServIetConflgpageexception表示JSP页面运行时产生的异常Page2、如果要将用户登录信息保存在某个隐式对象中,请问选择哪种隐式对象进行保存比较适合?【参考答案】一般会将用户登录信息存于SeSSion隐式对象中。3、归纳总结request隐式对象接收数据的主要方法。【参考答案】1)使用request.getParameter(Stringname)方法获得请求参数的值;2)使用StringgetParameterValues(Stringnam

15、e)获得HttP请求中指定名称集合的所有值:4、写出请求转发与重定向导航语句,并说明区别。【参考答案】请求转发:request.getRequestDispatcher(,).forward(request,response);重定向:response.sendRedirect(,);使用请求转发时,JSP容器将使用一个内部方法来调用目标页面,新页面继续处理同一个请求,而浏览器将不会知道这个过程。重定向方式是第一个页面通知浏览器发送一个新的页面请求。因为,当使用重定向时,浏览器中所显示URL会变成新页面的URL而使用请求转发时,该URL会保持不变。重定向的速度比请求转发慢,因为浏览器还得发出一

16、个新的请求。同时,由于重定向方式产生了一个新的请求,所以经过一次重定向后,request内对象数据将无法使用。下面就仔细考察两种导航形式的执行过程。5、如何设定session有效时间。【参考答案】在JaVaWCb项目开发中,可以通过以下两种方式设定SeSSion的有效时间。1) java代码request.getSession().SetMaxlnactiveIntcrval(1800);以秒为单位,1800=60*30即30分种,这种方式的优先级最高的。2) Web.xml中配置SeSSiOn有效时间,以分钟为单位。301、SerVlet类继承了哪个接口,有哪些主要方法?【参考答案】1) J

17、avaSerVlet类继承了HlIPSerVIet接口;2)主要包括以下方法2) init()方法在Servlet的生命期中,仅执行一次init()方法。它是在服务器装入Servlet时执行的。无论有多少客户机访问Servlet,都不会重复执行init()。缺省的init()方法通常是符合要求的,但也可以用定制init()方法来覆盖它。3) service()方法service()方法是Servlet的核心。每当一个客户请求一个HttPSerVlet对象,该对象的service()方法就要被调用,而且传递给这个方法一个“请求”(ServletReqUeSt)对象和一个“响应”(SerVIetR

18、eSPOnSe)对象作为参数。在HttpServlet中己存在service()方法。缺省的服务功能是调用与HTTP请求的方法相应的doXXX功能。例如,如果HTTP请求方法为GET,则缺省情况下就调用doGet()3)doGet()方法doGet()方法是SerVlet中的方法之一,用于接受由get模式提交的数据,与此对应还有一个doPost()方法,用于接受由get模式提交的数据。当一个客户通过Html表单发出一个HTTPGET请求或直接请求一个URL时,doGet()方法被调用。与GET请求相关的参数添加到URL的后面,并与这个请求一起发送。4) doPost()方法当一个客户通过Htm

19、I表单发出一个HTTPPoST请求时,doPost()方法被调用。与POST请求相关的参数作为一个单独的HTTP请求从浏览器发送到服务器。5) destroy()方法destroy()方法仅执行一次,即在服务器停止且卸装SerVlet时执行该方法,典型的,将Servlet作为服务器进程的一部分来关闭。缺省的destroy()方法通常是符合要求的,但也可以覆盖它。2、在Web.xml中如何定义和映射SerVlet?【参考答案】MyFirstServlethcit.ch5.MyFirstServletMyFirstServletservletMyFirstServlet3、MVC模型包括哪三层,分

20、别的作用是什么?【参考答案】1)视图(VieW)是用户看到并与之交互的界面;2)模型(MOdeD是应用程序的主体部分,模型表示业务数据和业务逻辑;3)控制器(SerVIet)接受用户的输入并调用模型完成用户的需求,之后能够根据不同要求导航到不同的视图页面或其他的SerVlet控制中心。4、request隐式对象在接受数据时,不知道接受数据参数名称,应该用什么方法。【参考答案】1)使用EnUmeratiOnrequest.getParameterNames()方法获得参数名数组;2)使用循环,遍历返回的数组,再通过使用request.getParameter()方法获得对应参数的数据。1、标签中

21、,items和Var分别代表什么含义,简述具体作用。【参考答案】标签的功能是在JSP页面用于迭代隐式对象中保存的集合对象,类似与JaVa语言中的的for循环功能。语法:var=varNamc”varStatus=*varStatusName,Jbcgin=bcgirend=cndstep=step”循环本体内容其中:items为在隐式对象中保存的集合对象名称;Var代表迭代对象中当前分量。2、简述标签中test和Var的作用。【参考答案】标签的用途同在JSP页面中起到判断分支作用。语法:具体内容其中:testCondition是判断条件,使用EL表达式;Var用来储存test运算后的结果,即t

22、rue或false。3、结合自定义标签的定义过程,分析JSP页面标签的工作原理。【参考答案】1)每次遇到JSP标签容器构造一个SimPIeTag实例,这个构造方法没有参数;2) SetJSPCOnteXt()、SetParent()只有当前的标签在另一个标签之内时才调用SetParentO方法;3)设置属性,调用每一个属性的Setter方法;4) SeUspBody(javax.servlet.jsp.tagextJspFragmentbody);5) doTagO所有标签的逻辑迭代和BOdy计算都在这个方法中;6) return();4、简述TagSupport类作用。【参考答案】TagSu

23、pport接口定义的标签是不能产生交互效果的,需要用到交互的标签需要使用BodyTagSupport接口。1、Filter接口中有哪些方法,并详细说明每个方法的作用。【参考答案】1)初始化方法:init(),在初试化方法中进行初始化配置或操作;2)过滤器执行方法:doFilter(),过滤器主执行方法,实现过滤过程中的主要业务逻辑定义在这个方法中;3)销毁方法:destroy(),该方法在Filter的生命周期中仅执行一次。在这个方法中,可以释放过滤器使用的资源。2、在Filter接口下的doFiher方法参数中有一个FiIterChain类型参数,请说明该参数的作用和用法。【参考答案】doF

24、ilter方法内部需要调用FilterChain对象的Chain.doFilter(request,response)方法才能把请求交付给Filter链中的下一个Filter,实现多个Filter串联过滤。3、SerVIel监听器能够监听哪些隐式对象?【参考答案】1) SerVIetCOnteXtapplication事件监听器;2) HttPSeSSionsession事件监听器;3) SerVIetReqUeStrequest事件监听器。4、监听器在Web.xm中如何配置?【参考答案】hcit.ch7.0nLineListener1、简要说明jQuery中的$.ajax方法使用。【参考答案

25、】Sajax(async:true,请求类型type:POST,url:请求地址请求参数返回数据类型回调函数data:key:value,key:value,da(aTypezjson,success:function(r)回调函数中的执行部分);其中:Url参数代表ajax()方法请求地址,data代表请求过程中向后台发送的数据参数,dataType为返回值的数据类型,一般设定为JSOn类型,success为回调函数,其中的r代表返回数据。2、jQuery中符号$有什么作用。【参考答案】$是jQuery库提供的一个函数,可以通过$()里的参数进行查找和选择html文档中的元素,是JqUery

26、选择器的重要组成部分。3、举例说明JQUery中页面加载函数写法。【参考答案】如常用页面加载事件调用JQUery中的ajax方法,实现页面数据动态加载。$(function()$.ajax(在页面加载事件中实现数据加载);1);4、归纳出jQuery中对表单元素的存取操作【参考答案】1)文本框S(,#textjd,).val();获得文本框内容S(,xt-id,).attrC,value,);清空内容S(,#textjd,).attr(,value,test,);填充内容2)复选框$(#chk_id).aur(checked,);使其未勾选S(,#chkjd).atlr(checked,tru

27、e);勾选if(S(,*chkJd).atlr(checked,)=true)判断是否已经选中3)单选按钮S(inpul(3)type=radio).at(r(checked,2,);设置ValUe=2的项目为当前选中项获取一组名为(iiems)的radio被选中项的值varitem=$(inputname=itemschecked,).val();4)下拉框$(#select_id).anr(value,tesi);设置VaIUe=IeSt的项目为当前选中项$(testtest2).appendTo(#seleci_idM)$(#SeIeCLid).empiy();添加下拉框的。PIiOn清空下拉框获取SeIeCl被选中项的文本varitem=$(selectnaine=itemsoption(3)selected).text();/seleci下拉框的第二个元素为当前选中值S(lect.id)O.selectedIndex=1;

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

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号