JSP应用开发项目化教程课后习题参考答案_第1页
JSP应用开发项目化教程课后习题参考答案_第2页
JSP应用开发项目化教程课后习题参考答案_第3页
JSP应用开发项目化教程课后习题参考答案_第4页
JSP应用开发项目化教程课后习题参考答案_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课后习题参考答案1、简单叙述Tomcat服务器安装路径下各目录的作用。【参考答案】以Tomcat6.0为例,列出其子目录的各项功能:(1)\bin\Tomcat中的一些可执行文件和批处理文件,用于启动、停止服务等。(2)\cong\存放Tomcat中的各种全局配置文件。(3)\lib\Tomcat运行库文件。(4)\logs\运行日志。(5)\temp\临时目录。(6)\webapps\项目发布目录。(7)\work\存放JSP编译后生成的Java代码和class类。2、归纳在MyEclipse环境下创建、发布、运行Web项目过程。【参考答案】第一步,创建项目:创建或选择工作空间(Workspace,工作空间),进入后默认的视图为MyEclipse视图。选择【File】→【new】→【WebProject】,后出现创建Web项目的窗口,在【ProjectName】中填入项目名称如test,点击【finish】完成;第二步,项目编码:(创建JSP页面等)略;第三步,发布项目:首先,配置外部服务器。选择MyEclipse菜单中的【Window】下的【Preferences】选项,进入到配置环境界面,在左边的工具条中,选择【Myeclipse】→【Servers】→【Tomcat】,进行相关配置。其次,发布过程。服务器配置完成后,选择工具条中的发布工具,将项目部署到Tomcat中。最后,启动项目。项目成功发布后,选择工具条中的服务器启动工具选择配好的服务器,启动服务器。在地址栏中输入项目地址“http://localhost:8080/test/index.jsp”启动项目。3.在MyEclipse中有时发布完项目后启动Tomcat服务器时会报出如图1.11所示的错误“.BindException:Addressalreadyinuse:JVM_Bind<null>:8080”请根据所学知识和错误提示盘点这是什么样的错误,怎样解决。【参考答案】说明Tomcat服务器已经启动后没有停止,又一次重新启动服务器就会出现这种情况。出现这种情况后,首先停止服务器,再重新启动。若还是出现这种情况,可将MyEclipse开发工具关闭,并使用ctrl+alt+del进入任务管理器,选择进程选项,检查系统服务中的Tomcat进程是否关闭,若没有关闭,请停止该服务后重新启动即可。

课后习题参考答案1、归纳静态Html页面由哪几部分组成?【参考答案】<HTML><HEAD><TITLE>网页的标题</TITLE></HEAD><BODY>网页的内容,很多标记都作用于此</BODY></HTML>2、Html页面中的常用标签有哪些?【参考答案】基本标签:

<html></html>,创建一个HTML文档;

<head></head>,设置文档标题和其它在网页中不显示的信息;

<title></title>,设置文档的标题;

<font,color=00ff00>...</font>字体颜色;

链接标签:

<a,href="URL"></a>,创建超文本链接;

表格标签:

<table></table>,创建一个表格;

<tr></tr>,表格中的每一行;

<td></td>,表格中一行中的每一个格子;表单元素标签:<input></input>等标签

3.写出iFrame标签的常用属性。【参考答案】<iframeid="fid"src=""width="428"height="30"

marginheight="0"frameborder="0"scrolling="no"vspace="0"

hspace="0"

marginwidth="0"></iframe>

src

--引用链接地址

width

--框架的宽度

height --框架的高度

frameborder

--定义了内容页的边框,取值为(1|0),缺省值为1

marginwidth

--定义了框架中HTML文件显示的左右边界的宽度,缺省值由浏览器决定

marginheight

--定义了框架中HTML文件显示的上下边界的矿度,缺省值由浏览器决定

scrolling

--设置或获取框架是否可被滚动。

auto=自动调整

yes=有滚动条

no=无滚动条4、在Html页面中怎样定义JS脚本?【参考答案】网页中引入JavaScript的方法。方法一:直接在页面中加入JavaScript代码,这是最常用的方法。<scriptlanguage="Javascript"><!-- document.writeln("这是Javascript!采用直接插入的方法!");//-Javascript结束--></script>方法二:引用外部JS文件。<scriptsrc=“url”type="text/javascript"></script>5、在Html页面中怎样定义CSS样式?【参考答案】方法1:在<head>和</head>之间加入语句<STYLE></STYLE>,定义样式方法2:引入已经定义好的CSS文件,使用这句<linkhref="***.css"rel=stylesheet>来连接CSS文件。

课后习题参考答案1、include指令标记与include动作标记有什么区别?【参考答案】include页面指令与include动作的区别主要在:1)JSP页面指令相当于是把被包含文件代码原封不动的放进了包含它的文件中,编译时候生成一个class文件。JSP动作指令被包含的文件和包含的文件在编译时候生成的是两个class文件。2)<jsp:include>动作标记包含的是执行结果,而include页面指令包含的是文件内容。3)<jsp:include>动作元素在请求期间被执行,而include页面指令在编译期页面间被执行。2、在<%!和%>之间声明的变量和在<%和%>之间声明的变量有何区别?【参考答案】1)在<%!%>之间声明的变量在JSP页面内都有效,也就是说说可以理解为<%!%>之间声明的是全局的变量和方法,可以方法可以被公有使用,变量则可以被所有方法调用改变。2)在<%%>之间声明的变量则为局部变量,当运行多个线程时,值不会相互影响。3、说明<jsp:useBean>动作标签的作用。【参考答案】用来装载一个将在JSP页面中使用的JavaBean。其中,class属性指定的类所在包的位置和类名信息,id属性指定JavaBean实例的名称。scope属性定义bean的工作范围。<jsp:useBean>的作用是下指定的工作范围内创建JavaBean的实例。4、Class.forname()方法的作用是什么,其中Class类是属于哪个包。【参考答案】Class.forName(xxx.xx.xx);的作用是要求JVM查找并加载指定的类,也就是说JVM会执行该类的静态代码段动态加载和创建Class

对象,比如想根据用户输入的字符串来创建对象。

Class.forName("类名")在数据库驱动时是很常用的,就是让jvm加载驱动类用的。因为JDBC的DriverManager是个通用的类,显然不可能事先通过硬编码来创建驱动程序的实例,因为它根本不知道用户将使用哪个驱动程序。所以不可能有类似newcom.microsoft.jdbc.sqlserver.SQLServerDriver()这样的代码出现。所以就需要使用DriverManager.getConnection之前调用Class.forName("驱动名")来使JVM加载驱动程序类。5、PreparedStatement与Statement的区别有哪些?【参考答案】1)使用PreparedStatement代码的可读性和可维护性高。2)使用PreparedStatement可能提高性能。3)使用PreparedStatement代码的安全性可以避免这种注入威胁。6、怎样导入数据库驱动的外部Jar包?【参考答案】方法1:使用JavaBuildPath完成导入Jar包如下图所示,在MyEclipse项目单击鼠标右键,选择Properties选项。选中其中的JavaBuildPath,在选中Libraries选项卡。选中右侧的【AddLibrary】进行添加。在点击【AddLibrary】后,出现如下界面,选中其中的【UserLibrary】项进行添加用户包。方法2:使用拷贝方式。可以将外部Jar包直接拷贝的WebRoot/Web-INF/lib目录下,然后刷新项目即可。7、请说出一个JSP的运行原理。【参考答案】当一个JSP页面第一次被访问的时候,JSP引擎将执行以下步骤:1)将JSP页面翻译成一个Servlet,Servlet是一个java类;2)JSP引擎调用java编译器对Servlet进行编译,得到对应class文件;3)JSP引擎调用java虚拟机来解释执行class文件,生成向客户端发送的应答,然后发送给客户端;以上三个步骤仅仅在JSP页面第一次被访问时才会执行,以后的访问速度会因为class文件已经生成而大大提高。当JSP引擎接到一个客户端的访问请求时,首先判断请求的JSP页面是否比对应的Servlet是否有变化,如果发生了改变,对应的JSP需要重新编译,否则,如果JSP页面没有发生变化,将直接调用已经生成的class文件进行执行。

课后习题参考答案1、比较常用隐式对象的作用范围。【参考答案】内置对象名称代表内容范围request客户端发的HTTP请求requestresponse向客户端发的应答pagesession为请求的客户创建的session对象sessionapplication从servlet配置对象获得的servlet上下文(如在getServletConfig(),getContext()的调用中)applicationout向输出流写入内容的对象pagepageContext本JSP的页面上下文pagepage实现处理本页当前请求的类的实例pageconfig本JSP的ServletConfigpageexception表示JSP页面运行时产生的异常Page2、如果要将用户登录信息保存在某个隐式对象中,请问选择哪种隐式对象进行保存比较适合?【参考答案】一般会将用户登录信息存于session隐式对象中。3、归纳总结request隐式对象接收数据的主要方法。【参考答案】1)使用request.getParameter(Stringname)方法获得请求参数的值;2)使用String[]getParameterValues(Stringname)获得Http请求中指定名称集合的所有值;4、写出请求转发与重定向导航语句,并说明区别。【参考答案】请求转发:request.getRequestDispatcher("地址").forward(request,response);重定向:response.sendRedirect("地址");使用请求转发时,JSP容器将使用一个内部方法来调用目标页面,新页面继续处理同一个请求,而浏览器将不会知道这个过程。重定向方式是第一个页面通知浏览器发送一个新的页面请求。因为,当使用重定向时,浏览器中所显示URL会变成新页面的URL,而使用请求转发时,该URL会保持不变。重定向的速度比请求转发慢,因为浏览器还得发出一个新的请求。同时,由于重定向方式产生了一个新的请求,所以经过一次重定向后,request内对象数据将无法使用。下面就仔细考察两种导航形式的执行过程。5、如何设定session有效时间。【参考答案】在JavaWeb项目开发中,可以通过以下两种方式设定session的有效时间。1)java代码request.getSession().setMaxInactiveInterval(1800);以秒为单位,1800=60*30即30分种,这种方式的优先级最高的。2)web.xml中配置session有效时间,以分钟为单位。<session-config><session-timeout>30</session-timeout></session-config>

课后习题参考答案1、Servlet类继承了哪个接口,有哪些主要方法?【参考答案】1)JavaServlet类继承了HttpServlet接口;2)主要包括以下方法1)init()方法在Servlet的生命期中,仅执行一次init()方法。它是在服务器装入Servlet时执行的。无论有多少客户机访问Servlet,都不会重复执行init()。缺省的init()方法通常是符合要求的,但也可以用定制init()方法来覆盖它。2)service()方法service()方法是Servlet的核心。每当一个客户请求一个HttpServlet对象,该对象的service()方法就要被调用,而且传递给这个方法一个“请求”(ServletRequest)对象和一个“响应”(ServletResponse)对象作为参数。在HttpServlet中已存在service()方法。缺省的服务功能是调用与HTTP请求的方法相应的doXXX功能。例如,如果HTTP请求方法为GET,则缺省情况下就调用doGet()。3)doGet()方法doGet()方法是Servlet中的方法之一,用于接受由get模式提交的数据,与此对应还有一个doPost()方法,用于接受由get模式提交的数据。当一个客户通过Html表单发出一个HTTPGET请求或直接请求一个URL时,doGet()方法被调用。与GET请求相关的参数添加到URL的后面,并与这个请求一起发送。4)doPost()方法当一个客户通过Html表单发出一个HTTPPOST请求时,doPost()方法被调用。与POST请求相关的参数作为一个单独的HTTP请求从浏览器发送到服务器。5)destroy()方法destroy()方法仅执行一次,即在服务器停止且卸装Servlet时执行该方法。典型的,将Servlet作为服务器进程的一部分来关闭。缺省的destroy()方法通常是符合要求的,但也可以覆盖它。2、在Web.xml中如何定义和映射Servlet?【参考答案】<servlet><servlet-name>MyFirstServlet</servlet-name><servlet-class>hcit.ch5.MyFirstServlet</servlet-class></servlet><servlet-mapping><servlet-name>MyFirstServlet</servlet-name><url-pattern>/servlet/MyFirstServlet</url-pattern></servlet-mapping> 3、MVC模型包括哪三层,分别的作用是什么?【参考答案】1)视图(View)是用户看到并与之交互的界面;2)模型(Model)是应用程序的主体部分,模型表示业务数据和业务逻辑;3)控制器(Servlet)接受用户的输入并调用模型完成用户的需求,之后能够根据不同要求导航到不同的视图页面或其他的Servlet控制中心。4、request隐式对象在接受数据时,不知道接受数据参数名称,应该用什么方法。【参考答案】1)使用Enumerationrequest.getParameterNames()方法获得参数名数组;2)使用循环,遍历返回的数组,再通过使用request.getParameter()方法获得对应参数的数据。

课后习题参考答案1、<c:forEachitems="?"var="?"></c:forEach>标签中,items和var分别代表什么含义,简述具体作用。【参考答案】<c:foreach>标签的功能是在JSP页面用于迭代隐式对象中保存的集合对象,类似与Java语言中的的for循环功能。语法:<c:forEachitems="collection"[var="varName"][varStatus="varStatusName"][begin="begin"][end="end"][step="step"]>循环本体内容</c:forEach>其中:items为在隐式对象中保存的集合对象名称;var代表迭代对象中当前分量。2、简述<c:if>标签中test和var的作用。【参考答案】<c:if>标签的用途同在JSP页面中起到判断分支作用。语法:<c:iftest="testCondition"[var="varName"][scope=""]>具体内容</c:if>其中:testCondition是判断条件,使用EL表达式;var用来储存test运算后的结果,即true或false。3、结合自定义标签的定义过程,分析JSP页面标签的工作原理。【参考答案】1)每次遇到Jsp标签容器构造一个SimpleTag实例,这个构造方法没有参数;2)setJspContext()、setParent()只有当前的标签在另一个标签之内时才调用setParent()方法;3)设置属性,调用每一个属性的setter方法;4)setJspBody(javax.servlet.jsp.tagext.JspFragmentbody);5)doTag()所有标签的逻辑迭代和Body计算都在这个方法中;6)return();4、简述TagSupport类作用。【参考答案】TagSupport接口定义的标签是不能产生交互效果的,需要用到交互的标签需要使用BodyTagSupport接口。

课后习题参考答案1、Filter接口中有哪些方法,并详细说明每个方法的作用。【参考答案】1)初始化方法:init(),在初试化方法中进行初始化配置或操作;2)过滤器执行方法:doFilter(),过滤器主执行方法,实现过滤过程中的主要业务逻辑定义在这个方法中;3)销毁方法:destroy(),该方法在Filter的生命周期中仅执行一次。在这个方法中,可以释放过滤器使用的资源。2、在Filter接口下的doFilter方法参数中有一个FilterChain类型参数,请说明该参数的作用和用法。【参考答案】doFilter方法内部需要调用FilterChain对象的chain.doFilter(request,response)方法才能把请求交付给Filter链中的下一个Filter,实现多个Filter串联过滤。3、Servlet监听器能够监听哪些隐式对象?【参考答案】1)ServletContext[application]事件监听器;2)HttpSession[session]事件监听器;3)ServletRequest[request]事件监听器。4、监听器在Web.xm中如何配置?【参考答案】<listener><listener-class>hcit.ch7.OnLineListener</listener-class></listener>

课后习题参考答案1、简要说明jQuery中的$.ajax方法使用。【参考答案】$.ajax({ async:true, type:"POST", //请求类型 url:'', //请求地址 data:{key:value,key:value}, //请求参数 dataType:'json', //返回数据类型 success:function(r){ //回调函数 //回调函数中的执行部分 }});其中:url参数代表ajax()方法请求地址,data代表请求过程中向后台发送的数据参数,dataType为返回值的数据类型,一般设定为Json类型,success为回调函数,其中的r代表返回数据。2、jQuery中符号$有什么作用。【参考答案】$是jQuery库提供的一个函数,可以通过$()里的参数进行查找和选择html文档中的元素,是Jquery选择

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论