JSP课后简答题答案
- 格式:doc
- 大小:13.00 KB
- 文档页数:1
1、请简单叙述include指令标记和include动作标记的不同。
答:include指令标记的作用是在JSP页面出现该指令的位置处,静态插入一个文件,即JSP页面和插入的文件合并成一个新的JSP页面,然后JSP引擎再将这个新的JSP页面转译成Java文件。
因此,插入文件后,必须保证新合并成的JSP页面符合JSP语法规则,即能够成为一个JSP页面文件。
(3分)include动作标记告诉JSP页面动态加载一个文件,不把JSP页面中动作指令include所指定的文件与原JSP页面合并一个新的JSP页面,而是告诉Java 解释器,这个文件在JSP运行时(Java文件的字节码文件被加载执行)才被处理。
如果包含的文件是普通的文本文件,就将文件的内容发送到客户端,由客户端负责显示;如果包含的文件是JSP文件,JSP引擎就执行这个文件,然后将执行的结果发送到客户端,并由客户端负责显示这些结果。
(3分)2、JSP有几个内置对象?作用分别是什么?答:有9个内置对象request,请求对象(1分)response,响应对象,网页传回用户端的回应(1分)session,会话对象,与请求有关的会话期(1分)application,应用程序对象,正在执行的内容(1分)out,输出对象,用来传送回应的输出(1分)page,页面对象,网页本身(1分)config,页面配置对象,构架部件(1分)exception,异常对象,针对错误网页,未捕捉的例外(1分)pageContext,页面上下文对象,网页的属性是在这里管理(1分)3、简单描述解决中文汉字编码问题的两种常用方法?答:方法1:将获取的字符串用IS0-8859-1进行编码,并将编码存放到一个字节数组中,然后再将这个数组转化为字符串对象。
(3分)方法2: request. setCharacterEncoding( "GBK" ) ; (3 分)4^〈jsp: forward〉与response. sendRedirect ()实现页面转向有什么区别?答:(1)〈jsp:forward〉在本网站内跳转response. sendRedirect ()跳转到任何一个地址的页面。
第1章Web技术简介1、7、1 选择题1、Web技术得设想于哪一年提出()。
A、1954年B、1969年C、1989年D、1990年2、JSP页面在第一次运行时被JSP引擎转化为()。
A、HTML文件B、CGI文件C、CSS文件D、Servlet文件3、JavaEE体系中Web层技术就是()。
A、HTMLB、JavaBeanC、EJBD、JSP参考答案:1、C 2、D 3、D1、7、2 填空题1、当前主流得三大动态Web开发技术就是:PHP、ASP/ASP、NET与______________。
2、JSP得两种体系结构就是:______________与______________。
3、JSP开发Web站点得主要方式有:直接JSP、JSP+JavaBean、______________、______________与SSH。
参考答案:1、JSP2、JSP Model1与JSP Model23、JSP+JavaBean+Servlet、J2EE/JavaEE1、7、3 简答题1、简述JSP得工作原理。
答:所有得JSP应用程序在首次载入时都被翻译成Servlet文件,然后再运行,这个工作主要就是由JSP引擎来完成。
当第一次运行一个JSP页面时,JSP引擎要完成以下操作:●将JSP文件翻译成Servlet文件,Servlet文件就是Java应用程序。
●JSP引擎调用Java编译器,编译Servlet文件得到可执行得代码文件(、class文件)。
●JSP引擎调用Java虚拟机解释执行、class文件,并将运行结果返回给服务器。
●服务器将运行结果以HTML形式作为响应返回给客户端得浏览器。
由于一个JSP页面在第一次被访问时要经过翻译、编译与执行这几个步骤,所以客户端得到响应所需要得时间比较长。
当该页面再次被访问时,它对应得、class文件已经生成,不需要再次翻译与编译,JSP引擎可以直接执行、class文件,因此JSP页面得访问速度会大为提高。
第1章:参考答案:一、填空题(1)HTTP、HTML、RSS/ATOM(2)Java Server Pages、Sun Microsystem、Java(3)path、classpath、C:\jdk\bin、.;C:\Java\jdk\lib\da.jar;C:\Java\jdk\lib\tools.jar;(4)JSP、Servlet二、选择题1-5:ABCD、ABD、D、D、D第2章:参考答案:实验指导:2.5.1.第一处需要填写的代码:page contentType="text/html;charset=GB2312" import="java.util.*;"第二处需要填写的代码:break;2.5.2.第一处需要填写的代码:int i=1;i<=n;i++第二处需要填写的代码:sum=Factorial(j);2.5.3.第一处需要填写的代码:page="jspinclude.jsp"/第二处需要填写的代码:i>0;i--习题集:一、填空题(1)include 、page(2)i++; double p=(a[0]+a[1]+a[2])/2;(3)Math.PI*2*r; double r;(4)声明了一个long型变量sum:然后调用方法continueSum,将调用方法continueSum得到的值显示到客户:1到101的连续和是:5151您计算的项数超过100项了。
(5)year%4==0 year%100==0 year%400==0二、选择题1-3:B、A、B第3章答案:3.6.1.第一处需要填写的代码:String username=request.getParameter("username");第二处需要填写的代码:"admin".equals(username)&&"admin".equals(password) 3.6.2.第一处需要填写的代码:!goodsName.equals("")第二处需要填写的代码:list.add(goodsName);3.6.3.第一处需要填写的代码:oCount==null第二处需要填写的代码:String dateTime = dateFm.format(new java.util.Date()); 第二处需要填写的代码:一、填空题(1)session、application、request、response、out。
JSP课后习题答案单元3 课本60页课后练习填空题1、tomcat服务器的默认端口是:80802、静态网页的内容是相对固定的,而动态网页的内容是随着访问时间的访问者发生变化。
(填:动态网页或静态网页)3、在tomcat成功安装和启动后,可以在浏览器中输入http://localhost:8080来测试安装配置是否正常。
4、在WEB-INF下必须有一个XML文件是web.xml选择题1、B2、D3、A4、D单元4 课本87页课后练习填空题1、脚本程序是一段在客户端请求时需要先被服务器执行的java 代码,它可以产生输出,同时也是一段流控制语句。
2、在jsp的3种指令中,用来定义与页面相关的指令是Page指令;用于在jsp页面中包含另一个文件的指令是Include指令(静态包含);用来定义一个标签库以及其自定义标签前缀的指令是Taglib指令。
3、<jsp:include>动作元素允许在页面被请求时包含一些其他资源,如一个静态的HTML文件和动态的JSP文件。
4、Page指令的MIME类型的默认值为text/html,默认字符集是iso-8859-1 。
5、Jsp的隐藏注释格式为<%-- --%>或者<%--comment--%> Jsp的输出注释的格式是<!-- -->。
选择题1、A2、A3、D4、C5、B6、D简答题(答案在课本79页)请查阅资料并结合课堂上所讲内容,阐述include静态包含和动态包含<jsp:include>指令的区别。
答:动态include指令是在执行时才将对包含的文件进行处理,要进行编译,可以带参数;静态的include的指令是简单的将两个文件进行合并,使其成为一个新的文件。
单元5 课本130页课后练习填空题1、在jsp内置对象中,用于请求相关的对象是Request对象。
该对象可以使用getParameter(String s)方法来获取表单元素提交的信息。
一、选择题(每小题2分)1.浏览器对下列那些程序可以执行解释(C)A. Jsp程序 B Java Bean C Java Script D Servlet2.下列代码<form action=”login.jsp”>Username:<input type=”text” name=”username” id=”myname” value=”user”><input type=”submit” value=”submit”></form>执行提交后,服务器正确取得文本框值是(D )A 无法取得,因为代码在html中B request.getAttribute(“username”)C request.getParameter(“myname”)D request.getParameter(“username”)3.开发一个JSP项目最合理的做法是(C )A 直接编写代码B 分析、设计、编码C分析、设计、寻求成功可用案例、最后编码D前面都不正确,具体问题要具体分析4.不同客户端要共享信息,需要使用(A )A Application对象B Sesion对象C Request对象D 响应对象5.关于Session对象,下列那个是正确的(B)A 关闭服务器,在启动Session依然存在B Session是内存对象C Session创建在服务器,保存在客户端D 在购物车应用中不能使用session二、分析写出下列程序功能,并对画线部分进行说明(20分)Chap1.htm<html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"></head><body bgcolor="#FFCCCC"><form method="post" action="1.jsp"> //指定表单提交后由服务器1.jsp执行<p>数1:<input name="base" type="text" size="15"><br>数2:<input name="seq" type="text" size="15"></p><input type="submit" value="计算" ><input type="reset" value="清除" > //定义一个复位按钮</form></body></html>1.jsp<html><head><title>计算结果</title></head><body bgcolor="#FFCCCC"><%String base=request.getParameter( "base" );String seq=request.getParameter( "seq" ); //得到数2的值int base_i=Integer.parseInt(base);int seq_i=Integer.parseInt(seq);int result=1;for(int i=1;i<=seq_i;i++)result=result*base_i; //计算Base的seq次方%><hr><font color="#663333" size="4" face="隶书">计算结果为:</font><font color="#663333" size="4" ><%=result%></font><p><a href="javascript: history.back();">返回</a></p> //返回到上一个页面</body></html>/////////////////////////////////////功能:Base的seq次方三、完善程序,填空。
第1章1.什么是静态网页?什么是动态网页?两者的区别是什么?试举例说明。
答:在设计中,纯粹HTML格式的网页通常被称为“静态网页〞,早期的一般都是由静态网页制作的。
静态网页是相对于动态网页而言,是指没有后台数据库、不含程序和不可交互的网页。
你编的是什么它显示的就是什么、不会有任何改变。
静态网页相对更新起来比拟麻烦,适用于一般更新较少的展示型。
静态网页的网址形式通常为:.example./eg/eg.htm,也就是以.htm、.html、.shtml、.xml等为后后缀的。
在HTML格式的网页上,也可以出现各种动态的效果,如.GIF格式的动画、FLASH、滚动字母等,这些“动态效果〞只是视觉上的,与下面将要介绍的动态网页是不同的概念。
我们将静态网页的特点简要归纳如下:〔1〕静态网页每个网页都有一个固定的URL,且网页URL以.htm、.html、.shtml等常见形式为后缀,而不含有“?〞;〔2〕网页容一经发布到效劳器上,无论是否有用户访问,每个静态网页的容都是保存在效劳器上的,也就是说,静态网页是实实在在保存在效劳器上的文件,每个网页都是一个独立的文件;〔3〕静态网页的容相对稳定,因此容易被搜索引擎检索;〔4〕静态网页没有数据库的支持,在制作和维护方面工作量较大,因此当信息量很大时完全依靠静态网页制作方式比拟困难;〔5〕静态网页的交互性穿插,在功能方面有较大的限制动态网页是与静态网页相对应的,也就是说,网页URL的后缀不是.htm、.html、.shtml、.xml等静态网页的常见形式,而是以.asp、.jsp、.php、.perl、.cgi等形式为后缀,并且在动态网页网址中有一个标志性的符号——“?〞,如有这样一个动态网页的地址为:.pagehome./ip/index.asp?id=1这就是一个典型的动态网页URL形式。
这里说的动态网页,与网页上的各种动画、滚动字幕等视觉上的“动态效果〞没有直接关系,动态网页也可以是纯文字容的,也可以是包含各种动画的容,这些只是网页具体容的表现形式,无论网页是否具有动态效果,采用动态技术生成的网页都称为动态网页。
1、简述JSP页面的运行原理(JSP页面的请求执行过程)。
(1)当客户第一次请求JSP页面时,JSP引擎会通过预处理把JSP文件中的静态数据(HTML文本)和动态数据(Java脚本)全部转换为Java代码。
(2)JSP引擎把生成的.java文件编译成Servlet类文件(.class)。
(3)编译后的class对象被加载到容器中,并根据用户的请求生成HTML格式的响应页面。
2、如果表单提交的信息中有汉字,接受该信息的页面应做怎样的处理?解决中文乱码在获取表单信息之前使用setCharacterEncoding(String code)设置统一字符编码request.setCharacterEncoding(“UTF-8”);对获取的信息进行重新编码new String(request.getParameter(“Name”).getBytes(“ISO-8859-1”),”UTF-8”);3、请简单叙述<%@include%>、<jsp:include>两者的区别。
<%@include%>:页面请求之前预编译,所有代码包含进来之后,一起进行处理,把所有代码合在一起,编译成一个servlet。
<jsp:include>:所有代码分别处理,在页面被请求的时候才编译,被编译成多个servlet,页面语法相对独立,处理完成之后再将代码的处理结果组合起来。
PPT上答案为:Include指令标记是先将JSP页面与所要嵌入的页面合并成一个新的JSP页面,然后再由JSP引擎将新页面转化为java文件处理并运行。
Include动作标记在把JSP页面转译成java文件时,并不合并两个页面;而是在java文件的字节码文件被家在执行时,才去处理include动作标记引入的文件。
4、分析下面连接数据库的程序代码,将正确的表达式或语句填入空白import java.sql.*;public class DbUtil{public static void main(String args[]){Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");String uri="jdbc:sqlserver://127.0.0.1:1433;DatabaseName=db";Connectioncon = DriverManager.getConnection(uri,"sa","123");Statementst= con.createStatement();ResultSetrs = st.executeQuery("select * from member");}}请将上面的空填好,填完整这个程序后,这个程序有问题吗?应该怎样改正?5、假设创建servlet的类是tom.jiafei.Dalian,创建的servlet对象的名字是myservlet,应该怎样配置web.xml?<servlet><servlet-name>myservlet</servlet-name><servlet-class>tom.jiafei.Dalian</servlet-class></servlet><servlet-mapping><servlet-name>myservlet</servlet-name><url-pattern>/lookhello</url-pattern></servlet-mapping>6、JSP有哪些内置对象,作用分别是什么?(至少列举4种)out 页面输出request 得到用户的请求信息response 服务器向客户端的回应信息session 用来保存每一个用户的信息application 用来表示所有用户的共享信息pageContext JSP的页面容器config 服务器配置,可以取得初始化参数page 表示从该页面中表示出来的一个servlet实例exception 表示JSP页面所发生的异常,在错误页面才起作用7、简述JSP中MVC模式的具体实现。
第1章(1)JSP的特点与优势答:1。
一次编写,到处运行2.系统的多平台支持3。
内容和显示分离4.生成可重用的组件5。
健壮的存储管理和安全性(2)使用JSP开发项目的常用方式答: 1.直接使用JSP2。
JSP+JavaBean3。
JSP+Servlet+JavaBean4.Java EE 开发模型5.框架整合应用一、在HTML中加入CSS的方法有哪几种?并简述其使用方法?答:1。
嵌入式样式表:只要在需要应用样式的HTML标签上添加CSS就可以了,这种方法主要用于对具体的标签做具体的样式设置,其作用范围只限于本标签。
2.内嵌式样式表:内嵌式样式表利用〈style></style>标签对样式表定义在HTML 文档的<head>〈/head〉标签对之间,内联式样式表的作用范围是本HTML文档;3.内联式样式表:内联式样式表是将定义好的CSS单独放到一个以.css为扩展名的纯文本文件名,再做用<link>标签连接到网页中。
二、在网页设计过程中,定义样式表的方法主要是那几种?并简述其定义格式.答:1.通过HTML标签定义样式表。
格式:引用样式对象{标签属性:属性值;标签属性:属性值;……}2.使用id样式定义表。
格式:#id名称{属性标签:属性值;属性标签:属性值;……}使用时只需要将要用该样式的网页内容前加一个id=”id名称”。
3. 使用class样式定义表.格式:(1)标签名.类名{标签属性:属性值;标签属性:属性值;……}(2) .类名{标签属性:属性值;标签属性:属性值;……}第5章(1)简述page指令、include指令和taglib指令的作用.答:page 指令用来定义JSP文件中的全局属性,它描述了与页面相关的一些信息,其作用域为它所在JSP页面和其包含的文件。
include指令用于在JSP编译时,为页面插入一个静态文件,如JSP页面、HTML 页面、文本文件或是一段Java程序。
1. 请回答:JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么?简单的说,SUN首先发展出SERVLET,其功能比较强劲,体系设计也很先进,只是,它输出HTML语句还是采用了老的CGI方式,是一句一句输出,所以,编写和修改HTML非常不方便。
后来SUN推出了类似于ASP的镶嵌型的JSP,把JSP TAG镶嵌到HTML语句中,这样,就大大简化和方便了网页的设计和修s改。
新型的网络语言如ASP,PHP,JSP都是镶嵌型的SCRIPT语言。
从网络三层结构的角度看,一个网络项目最少分三层:data layer,business layer, presentation layer。
当然也可以更复杂。
SERVLET用来写business layer 是很强大的,但是对于写presentation layer就很不方便。
JSP则主要是为了方便写presentation layer而设计的。
当然也可以写business layer。
写惯了ASP,PHP,CGI的朋友,经常会不自觉的把presentation layer和business layer混在一起。
就象前面那个朋友,把数据库处理信息放到JSP中,其实,它应该放在business layer中。
根据SUN自己的推荐,JSP中应该仅仅存放与presentation layer有关的东东,也就是说,只放输出HTML网页的部份。
而所有的数据计算,数据分析,数据库联结处理,统统是属于business layer,应该放在JAVA BEANS中。
通过JSP调用JAVA BEANS,实现两层的整合。
实际上,微软前不久推出的DNA技术,简单说,就是ASP+COM/DCOM技术。
与JSP+BEANS完全类似,所有的presentation layer由ASP完成,所有的business layer由COM/DCOM完成。
通过调用,实现整合。
为什么要采用这些组件技术呢?因为单纯的ASP/JSP语言是非常低效率执行的,如果出现大量用户点击,纯SCRIPT语言很快就到达了他的功能上限,而组件技术就能大幅度提高功能上限,加快执行速度。
第一章1、简述JSP 工作的具体流程答案:当客户端浏览器向服务器发出请求访问一个JSP 页面后,服务器根据该请求加载相应的JSP 页面,并对该页面进行编译,然户执行。
JSP 工作的具体流程如下:(1)客户端通过浏览器向服务器发出请求,在该请求中包含了请求的资源路径,这样当服务器接收到该请求后就可以知道被请求的资源。
(2)服务器根据接收到客户端的请求来加载被请求的JSP 文件。
(3)Web 服务器中的JSP 引擎会将被加载的JSP 文件转化为Servlet 代码。
(4)JSP 引擎将生成的Servlet 代码编译成Class 文件。
(5)服务器执行这个Class 文件(6)最后服务器将执行结果并发送给浏览器进行显示。
5.实例实例内容:编写一个JSP 程序,在页面中输入系统时间,要求:输入的系统时间时判断当前时间是“上午”、“中午”还是“下午”,并给出友好的提示信息。
例如,当前系统时间是上午,在页面输出“早上好!新的一天即将开始,您准备好了吗?”;当前系统时间是中午,在页面输出“午休时间!正午好时光”;当时系统时间是下午,在页面中输出“下午继续努力工作吧”。
答案:<%@ page language="java" pa geEncoding="gb2312 "%><%@ page import="java.util.Date,java.text.*"%><html><head>< title>自定义标签的实现</title></head><%Date date=new Date();int hour=date.getHours();Sim pleDateFormat format=new SimpleDateFormat( "yyy-MM-dd HH:mm:ss");Stri ng time=format.format(date);%><b ody>当前时间:<%=time %><br> <br> <br><%if(h our>=24&&hour<5)out.print("现在是凌晨,时间还很早,再睡一会儿吧!");e lse if(hour>=5&&hour<10)out.print("早上好,新的一天即将开始,您准备好了吗?");e lse if(hour>=10&&hour<13)out.print("午休时间,正午好时光!"); e lse if(hour>=13&&hour<18)out.print("下午继续努力工作吧!");e lse if(hour>=18&&hour<21)out.print("晚上好,自由时间!");e lse if(hour>=21&&hour<24)out.print("已经是深夜了,注意休息!");%>< /body></html>第二章7.实例实例内容:编写一个电子商城的用户注册页面,该主页面中需要包含用户设置的用户名、密码、真实姓名、性别、年龄等表单,并使用JavaScript 编写函数,当用户单击【提交】按钮时,会检测用户名、密码、真实姓名项是否为空。
1、怎样应用request、session、application进行参数存取?比较3
钟方法的优点与不足。
答:request范围变量保存在request隐式对象中,如:request.setattribute("namerequest","name in request"); session范围变量保存在session隐式对象中,如:session.setattribute("namesession","name in session"); application范围变量保存在application 隐式对象中,如:application.setattribute("nameapplication","name in application"); 读取:namerequest:<%=request.getattribute("namerequest").tostring() %><br/>namesession:<%=sessio n.geta
ttribute("namesession").tostring() %><br/>nameapplication:<%=application.getattribute("nameap plication").tostring() %> application:全局作用范围,整个应用程序共享,就是在部署文件中的同一个webApp共享,生命周期为:应用程序启动到停止。
session:会话作用域,当用户首次访问时,产生一个新的会话,以后服务器就可以记住这个会话状态。
生命周期:会话超时,或者服务器端强制使会话失效。
request:请求作用域,就是客户端的一次请求。
2、什么是数据库连接池?在JSP中怎样实现数据库连接池?
答:数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。
对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。
数据库连接池正是针对这个问题提出来的。
数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而再不是重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。
这项技术能明显提高对数据库操作的性能。
3、怎样实现JavaBean的一个属性与输入参数关联?怎样实现JavaBean中的所有属性与请求参数关联?
答:1)
如果类的成员变量的名字是xxx,那么为了更改或获取成员变量的值,即更改或获取属性,在类中可以使用两个方法:
a.getXxx(),用来获取属性xxx。
b.setXxx(),用来修改属性xxx.。
2) 类中方法的访问属性都必须是public的。
3) 类中如果有构造方法,那么这个构造方法也是public的并且是无参数的
4、Servlet和Servlet之间以及Servlet与JSP之间是怎样实现通信的?
答:(1)应用ServletContext a.在Servlet A中,用setAttribute()设置你要共享的数据 b.在Servlet B中,用getAttribute()读取以上的object 一个servlet直接调用另一个servlet的doget 或dopost方法,将所有参数都传过去。
(2)a. jsp-->servlet: 直接使用<jsp:forward>或者sendRedirect 可以访问任何URL (当然也包括servlet)。
b.servlet-->jsp: RequestDispatcher接口的forward(req, res)方法,请求信息需要显式传递(在req、res参数中或者通过sendRedirect。