ServletJSP课后习题解答
JSP课后简答题答案
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.getattribute("namesession").tostring() %><br/>nameapplication:<%=application.getattribute("nameap plication").tostring() %> application:全局作用范围,整个应用程序共享,就是在部署文件中的同一个webApp共享,生命周期为:应用程序启动到停止。
session:会话作用域,当用户首次访问时,产生一个新的会话,以后服务器就可以记住这个会话状态。
生命周期:会话超时,或者服务器端强制使会话失效。
request:请求作用域,就是客户端的一次请求。
JSP课后习题及答案
1. Web技术的设想在()年提出A.1954B.1969C.1989D.19902. JSP页面在第一次运行时被JSP引擎转化为()A.HTML文件B. CGI文件C. CSS文件D.Servlet 文件3. JavaEE体系中Web层技术是()A. HTMLB. JavaBeanC. EJBD. JSP1 用来换行的标签是()A.<P>B.<br>C.<hr>D.<pre>2. 用来建立有序列表的标签是()A.<ol></ol>B.<ul></ul>C.<dl></dl>D.<il></il>3. 用来插入图片的标签是()A.<img>B.<image>C.<bgsound>D.<table>4. css文件的扩展名为()A.docB. textC. htmlD. css1. 有关JSP中的HTML注释叙述正确的是()A.发布网页时看不到,在源文件中也看不到。
B.发布网页时看不到,在源文件中能看到。
C.发布网页时能看到,在源文件中看不到。
D.发布网页时能看到,在源文件中也能看到。
2. JSP支持的语言是()A. C语言B. C++语言C. C#语言D. Java语言3. 在同一个JSP页面中page指令的属性中可以使用多次的是()A. ImportB. sessionC. extendsD. Info4. 用于获取Bean属性的动作是()A.<jsp:useBean>B.<jsp:getProperty>C.<jsp:setProperty>D.<jsp:forward>5. 用于为其他动作传送参数的动作是()A.<jsp:include>B.<jsp:plugin>C.<jsp:param>D.<jsp:useBean>1. Pesponse对象的setHeader(String name,String value)方法的作用是()A.添加HTTP文件头B.设定指定名字的HTTP文件头的值C.判断指定名字的HTTP文件头是否存在D.向客户端发送错误信息2. 设置session的有效时间(也叫超时时间)的方法是()A. setMaxInactiveInterval(int interval)B. getAttributeName()C. setAttributeName(String name,ng.Object value)D. getLastAccessedTime()3. Out对象中能清除缓冲区中的数据,并且把数据输出到客户端的方法是()A. out.newLine()B. out.clear()C. out.flush()D. out.clearBuffer()4. pageContext对象的findAttribute()方法作用是()A. 用来设置默认页面的范围或指定范围之中的已命名对象B. 用来删除默认页面范围或指定范围之中已命名的对象C. 按照页面请求、会话以及应用程序范围的顺序实现对某个已命名属性的搜索D. 以字符串的形式返回一个对异常的描述1. JDBC提供3个接口来实现SQL语句的发送,其中执行简单不带参数SQL 语句的是()A. Statement类B. PreparedStatement类C. CallableStatement类D. DriverStatement类2. Statement类提供3种查询执行方法,用来执行更新操作的是()A. executeQuery()B. executeUpdateC. next( )D. query( )3.负责处理驱动的调入并产生对新的数据库连接支持的接口是()A. DriverManagerB. ConnectionC. StatementD. ResultSet1.在JSP/Servlet的生命周期中,用于初始化的方法是()A.doPost()B. doGet()C. init()D. Destroy()2. Servlet文件在Java Web开发中的主要作用是()A. 开发页面B. 作为控制器C. 提供业务功能D. 实现数据库连接1.以下不是Java Bean的作用域的是()A. boundB. pageC. requestD. Application2.JavaBean分为()种A. 2B. 3C. 4D. 51.当前主流的三大动态Web开发技术是PHP、ASP/和。
《JSP实用教程(第三版)》课后答案
《JSP实用教程(第三版)》课后答案第1章 JSP简介1.安装Tomcat引擎的计算机需要事先安装JDK吗?答:需要。
2.怎样启动和关闭Tomcat服务器?答:bin目录下使用startup.bat启动Tomcat服务器。
bin目录下使用shutdown.bat 关闭Tomcat服务器。
3. Boy.jsp和boy.jsp是否是相同的JSP文件名字?答:不是4. 请在D:\下建立一个名字为water的目录,并将该目录设置成一个Web服务目录,然后编写一个简单JSP页面保存到该目录中,让用户使用虚拟目录fish 来访问该JSP页面。
答:设置方法:①建立D:\ water目录;②修改server.xml文件,在</host>上一行添加:<Context path="/fish" docBase="D:\ water" debug="0" reloadable="true"/>③使用http://localhost:8080/ fish /example1_1.jsp访问example1_1.jsp页面.5. 假设Dalian是一个Web服务目录,其虚拟目录为moon。
A.jsp保存在Dalian 的子目录sea中。
那么在Tomcat服务器(端口号8080)所在计算机的浏览器键入下列哪种方式是访问A.jsp的正确方式?A.http://127.0.0.1:8080/A.jsp B. http://127.0.0.1:8080/Dalian/A.jspC. http://127.0.0.1:8080/moon/A.jspD. http://127.0.0.1:8080/moon/sea/A.jsp 答:D6.如果想修改Tomcat服务器的端口号,应当修改哪个文件?能否将端口号修改为80?答:修改Tomcat服务器的conf目录下的主配置文件server.xml可以更改端口号.若Tomcat服务器上没有其它占有80端口号的程序,可以将其修改为80,否则不能。
JSP课后习题参考答案
第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页面得访问速度会大为提高。
JSP课后习题答案all
第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应用与开发技术第12、13、14章 课后习题答案
第12章Servlet基础1.简述Servlet和JSP的关系。
答:Servlet是服务器端运行的一种Java应用程序。
当浏览器端有请求则将其结果传递给浏览器。
在JSP中使用到的所有对象都将被转换为Servlet或者非Servlet的Java对象,然后被执行,所以执行JSP实际上与执行Servlet是一样的。
2.简述Servlet的生命周期。
答:Servlet的生命周期可分为下面几个阶段:(1)装载Servlet。
(2)实例化一个Servlet实例对象。
(3)调用Servlet的init( )方法进行初始化。
(4)服务。
(5)卸载。
3.简述HttpSession接口的功能和使用方法。
答:.HttpSession接口是Servlet提供会话追踪解决方案。
HttpSession对象存放在服务器端,只是对cookie和url重写技术的封装应用。
使用HttpSession进行会话控制的过程:(1)获得一个HttpSession实例对象;(2)访问和设置与会话相关联信息,维护会话的状态;(3)废弃会话数据。
4.简述开发一个Servlet所需要的步骤。
答:第一步:编写Servlet实例第二步:在web.xml文件中配置该Servlet第三步:编写其它文件5.编写一个html页面和一个Servelt,实现利用Servelt的doPost方法读取html文件中Form表单内容。
答:参考12.6.26.写一个利用HttpSession接口的用户登录的Servlet,当用户已经登录时,返回欢迎信息;否则转向登录页面。
答:第一步:编写Servlet实例SessionServlet.java所示。
package com;import java.io.*;import java.util.*;import javax.servlet.*;import javax.servlet.http.*;/**** 使用HttpSession管理会话的登录Servlet*/public class LoginServlet extends HttpServlet {p rotected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException { doPost(request, response);}p rotected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=GB2312");PrintWriter out = response.getWriter();out.println("<html>");out.println("<body>");out.println("<head>");out.println("<title>使用HttpSession管理会话的登录页面</title>");out.println("</head>");out.println("<body>");// 获取会话对象HttpSession session = request.getSession();// 从会话对象中读取数据Boolean isLogin = (Boolean) session.getAttribute("isLogin");if (isLogin == null) {isLogin = Boolean.FALSE;}String user = request.getParameter("user");String password = request.getParameter("pass");if (isLogin.booleanValue()) {// 从会话对象中读取数据user = (String) session.getAttribute("user");Date loginTime = new Date(session.getCreationTime());out.println("<h2>欢迎您," + user + "!</h2>");out.println("<h2>您的登录时间是:" + loginTime + "!</h2>");} else if ((user != null) && (password != null)) {// 在会话对象中保存数据session.setAttribute("user", user);session.setAttribute("isLogin", Boolean.TRUE);Date loginTime = new Date(session.getCreationTime());out.println("<h2>欢迎您," + user + "!</h2>");out.println("<h2>您的登录时间是:" + loginTime + "!</h2>");} else {out.println("<h2>请在下面输入登录信息</h2>");out.println("<form method=\"post\" action=\"login\">");out.println("<table>");out.println("<tr>");out.println("<td>用户名:</td>");out.println("<td><input name=\"user\" type=\"text\"></td>");out.println("</tr>");out.println("<tr>");out.println("<td>密码:</td>");out.println("<td><input name=\"pass\" type=\"password\"></td>");out.println("</tr>");out.println("<tr>");out.println("<td></td>");out.println("<td><input name=\"ok\" type=\"submit\" value=\"确定\">");out.println("<input name=\"cancel\" type=\"reset\" value=\"重置\"></td>");out.println("</tr>");out.println("</table>");out.println("</form>");}out.println("</body>");out.println("</html>");}}第二步:在web.xml文件中配置该Servlet<web-app>……<!-- ServerInfoServlet definition --><servlet><description></description><display-name>getSession</display-name><servlet-name> getSession </servlet-name><servlet-class>com.SessionServlet</servlet-class></servlet><!-- SessionServlet definition --><servlet-mapping><servlet-name>getSession</servlet-name><url-pattern>/getSession</url-pattern></servlet-mapping>……</web-app>第13章使用Servlet过滤器和监听器1、什么是过滤器?什么是监听器?分别应用在哪些方面?答:对Web应用来说,过滤器就是驻留在服务器端,在源数据和目的数据间,对Web请求和Web响应的头属性(Header)和内容体(Body)进行操作的一种特殊Web组件。
jsp-servlet题库(附答案)
1.B 编写一个Filter,需要()A. 继承Filter 类B. 实现Filter 接口C. 继承HttpFilter 类D. 实现HttpFilter接口2.D 自定义标签的配置文件放在________A. WebRootB. libC. classesD. WEB-INF3. ABC 有关会话跟踪技术描述正确的是( )(多选)A. Cookie是Web服务器发送给客户端的一小段信息,客户端请求时,可以读取该信息发送到服务器端。
B. 关闭浏览器意味着会话ID丢失,但所有与原会话关联的会话数据仍保留在服务器上,直至会话过期。
C. 在禁用Cookie时可以使用URL重写技术跟踪会话。
D. 隐藏表单域将字段添加到HTML表单并在客户端浏览器中显示。
4.C 在J2EE中,重定向到另一个页面,以下()语句是正确的A. request . sendRedirect(“http :// www . svse . com . cn”);B. request . sendRedirect();C. response . sendRedirect(“http: // www . svse . com . cn”);D. response .sendRedirect();5.B EL表达式,${10 mod 3},执行结果为( )A. 10 mod 3B. 1C. 3D. null6. C 自定义标签的作用是( )A. 编写和使用方便B. 规定是这样的,如果不用,别人会说我们不专业C. 可以减少jsp中的java代码,将代码与界面标签分离,简化前台开发D. 连数据库7.B request.getRequestDispatcher().forward(request,response)称之为( )A. 流转B. 转发C. 重定向D. 导航8. BCD 有关Servlet的生命周期说法正确的有( ) (多选)A. Servlet的生命周期由Servlet实例控制。
ServletJSP课后习题解答
ServletJSP课后习题解答第1章课后练习选择题1. 以下何者适合使用GET请求来发送?(A)使用者名称、密码(B)检视论譠页面(C)信用卡资料(D)查询数据的分页答案:B、D提示:敏感性数据不应使用GET来发送。
论譠页面、数据分页可以使用GET,便于使用者设定为书签。
2. 以下何者应该使用POST请求来发送?(A)使用者名称、密码(B)档案上传(C)搜寻引擎的结果画面(D)BLOG文件答案:A、B、D提示:敏感性数据、大量数据不应使用GET来发送。
搜寻引擎结果画面可以使用GET,便于使用者设定为书签。
3. HTTP哪个请求方式,请求参数会出现在网址列上?(A)GET(B)POST答:A4. 以下何者适合使用GET请求来发送?(A)检视静态页面(B)查询商品数据(C)新增商品资料(D)删除商品数据答案:A、B提示:这题在考等幂操作,不改变服务器状态的查询应使用GET。
5. 以下何者应该使用POST请求来发送?(A)查询商品数据(B)新增商品资料(C)更新商品数据(D)删除商品数据答案:B、C、D提示:这题在考非等幂操作,会改变服务器状态的查询应使用POST。
6. 以下何者是属于客户端执行的程序?(A)JSP(B)JavaScript(C)Servlet(D)Applet答案:B、D7. Servlet/JSP主要是属于哪个Java平台的规范之中?(A)Java SE(B)Java ME(C)Java EE答:C8. Servlet/JSP必须基于哪一类型的容器才能提供服务?(A)Applet容器(B)应用程序客户端容器(C)Web容器(D)EJB容器答:C9. Web容器在收到浏览器请求时,会如何处理请求?(A)使用单一执行绪处理所有请求(B)一个请求就建立一个执行绪来处理请求(C)一个请求就建立一个行程来处理请求(D)一个请求就执行一个容器来处理请求答:B10. Java EE中各技术标准最后将由什么文件明订规范?(A)JCP(B)JSR(C)JDK答:B提示:JCP是组织名称。
JSP课后习题参考答案
JSP课后习题参考答案●JSP引擎调用Java虚拟机解释执行.class文件,并将运行结果返回给服务器。
●服务器将运行结果以HTML形式作为响应返回给客户端的浏览器。
由于一个JSP页面在第一次被访问时要经过翻译、编译和执行这几个步骤,所以客户端得到响应所需要的时间比较长。
当该页面再次被访问时,它对应的.class文件已经生成,不需要再次翻译和编译,JSP引擎可以直接执行.class文件,因此JSP页面的访问速度会大为提高。
2. 简述JSP两种体系结构。
答:JSP规范中分别称作JSP Model 1 和JSP Model 2,它们的本质区别在于处理批量请求的位置不同。
Model1,在Model1体系中,JSP页面独自响应请求并将处理结果返回客户。
这里仍然存在显示与内容的分离,因为所有的数据存取都是由JavaBean来完成的。
尽管Model1体系十分适合简单应用的需要,它却不能满足复杂的大型Web应用程序需要。
不加选择地随意运用Model 1,会导致JSP页内被嵌入大量的脚本片段或Java代码。
尽管这对于Java程序员来说可能不是什么大问题,但如果JSP页面是由网页设计人员开发并维护的这就确实是个问题了。
从根本上讲,将导致角色定义不清和职责分配不明,给项目管理带来不必要的麻烦。
Model2体系结构,是一种把JSP与Servlet联合使用来实现动态内容服务的方法。
它吸取了两种技术各自的优点,用JSP生成表示层的内容,让Servlet完成深层次的处理任务。
Servlet充当控制者的角色,负责管理对请求的处理,创建JSP页面需要使用的Bean和对象,同时根据用户的动作决定把哪个JSP页面传给请求者。
在JSP页面内没有处理逻辑,它仅负责检索原先由Servlet创建的对象或JavaBean,从Servlet中提取动态内容插入静态模板。
分离了显示和内容,明确了角色的定义以及实现了开发者与网页设计者的分开。
项目越复杂,使用Model 2体系结构的优势就越突出。
Jsp、Servlet面试题及答案
一、简答题1.forward 和redirect的区别forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。
redirect就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,所以session,request参数都可以获取。
2.说出Servlet的生命周期,并说出Servlet和CGI的区别Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。
与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。
3.JSP中动态INCLUDE与静态INCLUDE的区别?动态INCLUDE用jsp:include动作实现 <jsp:include page="included.jsp" flush="true" />它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数。
静态INCLUDE用include伪码实现,并不会检查所含文件的变化,适用于包含静态页面<%@ includefile="included.htm" %>4.什么情况下调用doGet()和doPost()?Jsp页面中的form标签里的method属性为get时调用doGet(),为post时调用doPost()。
JSP程序设计课后习题答案
JSP程序设计课后习题答案第⼀章 JSP概述1-1 JSP的全称是什么?JSP有什么优点?JSP与ASP、PHP的相同点是什么?JSP的全称是Java Server Pages。
优点:跨平台、分离静态内容和动态内容、可重复使⽤的组件、沿⽤了Java Servlet的所有功能、具有预编译性。
共同点:可以在页⾯中加⼊脚本代码来⽣成动态内容。
1-2 JSP中可重复使⽤的组件有哪些?JavaBean组件、JSP的标准标签和⾃定义标签。
1-3 什么是JSP的预编译特征?预编译是JSP的另⼀个重要的特性。
JSP页⾯在被服务器执⾏前,都是已经被编译好的,并且通常只进⾏⼀次编译,即在JSP页⾯被第⼀次请求时进⾏编译,在后续的请求中如果JSP页⾯没有被修改过,服务器只需要直接调⽤这些已经被编译好的代码,这⼤⼤提⾼了访问速度。
1-4 开发JSP程序需要具备哪些开发环境?Web浏览器、Web服务器、JDK开发⼯具包以及数据库。
1-5 在成功安装JDK后,需要配置哪些环境变量?JAVA_HOME变量、Path变量、CLASSPATH变量1-6 Tomcat的默认端⼝、⽤户名和密码分别是什么?端⼝为“8080”、⽤户名为“admin”、密码为空。
1-7 本章介绍的⽤来开发JSP程序的开发⼯具是什么?Eclipse1-8 开发JSP程序可采⽤哪⼏种开发模式?分别介绍它们的优缺点。
单纯的JSP页⾯编程:优点:通过应⽤JSP中的脚本标志,可直接在JSP页⾯中实现各种功能。
缺点:⼤部分的Java代码与HTML代码混淆在⼀起,给程序的维护和调试带来很多的困难。
JSP+JavaBean编程优点:jsp与javabean的结合,使web程序更加的直观,使⽤简单,不⽤于后台进⾏交互,直接在前端处理业务逻辑,更快速。
缺点:性能不好,jsp作为web的前端程序包含了太多的业务逻辑,给前端jsp造成了压⼒。
不便于维护。
JSP+Servlet+JavaBean编程优点:能够更好的实现表⽰层,逻辑层和数据访问层的分离。
第06章JSP课后习题答案
第6章Servlet核心技术习题答案1.Servlet都有哪些功能?。
答案:Servlet最常见的功能包括以下几种:●基于客户端的响应,给客户端生成并返回一个包含动态内容的HTML页面。
●可生成一个HTML片段,并能将其嵌入到现有HTML 页面中。
●能够在其内部调用其它的Java资源并与多种数据库进行交互。
●可同时与多个客户机进行连接,包括接收多个客户机的输入以及并将结果返回给多个客户机。
●在不同的情况下,可将服务器与Applet的连接保持在不同的状态。
●对特殊的处理采用MIME类型过滤数据。
●将定制的处理提供给所有服务器的标准例行程序。
例如,Servlet可以修改如何认证用户。
2.使用哪个方法可获取用户提交的表单中的数据?答案:可通过ServletRequest接口或其子接口HttpServletRequest提供的getParameter(String name)方法获取表单中的数据,其中参数name是表单属性的名称。
3.使用哪个方法可将数据保存到会话中?答案:HttpSession对象的setAttribute(String name,Object value)方法通过绑定一对名字/值数据,可将相关数据保存到当前会话中,参数name是绑定到会话中的属性名称,参数value是属性的值。
4.如何在Servlet中进行异常处理?答案:在Servlet中,使用下面两种处理异常的方式:●在try/catch语句的catch语句块中直接生成并输出异常信息的页面,或者将异常转发到异常处理的Servlet或JSP页面中。
●在web.xml文件中通过<error-page>元素指定异常处理。
5.使用Servlet做一个用户登录实例。
实例内容:当请求Servlet时,出现一个包含文本框、密码框和提交按钮的界面,当输入用户名和密码,单击【登录】按钮后,将用户的信息放入HttpSession中,并输出欢迎当前用户登录的信息。
jsp程序设计(第2版)习题解答,含题目
习题一1.怎么启动和关闭Tomcat服务器答:确保Tomcat服务器使用的是Java_home环境变量设置的JDK。
3.怎样访问Web服务目录子目录中的JSP页面答:Web服务目录的下的目录称为该Web服务目录下的相对Web服务目录。
浏览器的地址栏中键入:http://IP:8080/Web目录名字/子目录名字/JSP页面。
4.如果想修改Tomcat服务器的端口号,应当修改哪个文件?能否将端口号修改为80?答:修改Tomcat服务器安装目录中conf文件夹中的主配置文件:server.xml,只要没有其他应用程序正在占用80,就可以将端口号设置为80。
习题二1.“<%!”和“%>”之间声明的变量与“<%”和“%>”之间声明的变量与有何不同答:“<%!”和“%>”之间声明的变量在整个JSP页面内都有效,称为JSP页面的成员变量,成员变量的有效范围与标记符号<%!、%>所在的位置无关。
所有用户共享JSP页面的成员变量,因此任何一个用户对JSP页面成员变量操作的结果,都会影响到其他用户。
“<%”和“%>”之间声明的变量称为局部变量,局部变量在JSP页面后继的所有程序片以及表达式部分内都有效。
运行在不同线程中的Java程序片的局部变量互不干扰,即一个用户改变Java 程序片中的局部变量的值不会影响其他用户的Java程序片中的局部变量。
当一个线程将Java程序片执行完毕,运行在该线程中的Java程序片的局部变量释放所占的内存。
2.如果有两个用户访问一个JSP页面,该页面中的Java程序片将被执行几次?答:两次。
5.请编写一个简单的JSP页面,显示大写英文字母表。
答:<%@ page contentType="text/html;charset=GB2312" %><HTML><BODY><%for(char c='A';c<='Z';c++){out.print(" "+c);}%></BODY></HTML>6.请简单叙述include指令标记和include动作标记的不同。
jspservlet试题1
1 .如果做动态网站的开发,以下(D)可以作为服务器端脚本语言,A. HTML B .jsp C javascript D.Java2 .在Web项目的目录结构中,web.xml文件位于(D)中A .src目录 B.文档根目录 C. META-INF目录 D. WEB-INF目录3 .在运行Web项目时,IE提示“404错误‘,可能的原因包括(BCD)(选三项)A.未启动Tomcat服务B.未部署Web项目C. URL中的上下问路径书写错误D. URL中的文件名书写错误4.以下(C)的对象可以使用键/值的形式保存数据A. ArrayListB . LinkedListC. HashMapD. Collection5 .要把一个web应用中的index.html文件设置为该Web应用的欢迎页面,以下代码片段正确的是(C)A. <welecome-file><welcome-file-list>index.html</welcome-file-list></welcome-file>B .<welcome-file-list>index.html</welcome-file-list>C . <welcome-file-list><welcome-file>index.html</welcome-file></welcome-file-list>D . <file-list><welcome-file>index.html</welcome-file></file-list>6 .如果请求页面中存在两个单项按钮(假设单项按钮的名称为sex),分别代表男和女,该页面提交后,为你获得用户的选择项,可以使用以下(B)方法。
A. request.getParameter(sex);B . request.getParameter(“sex”)C . request.getParameterValues(sex);D. request.getParameterValues(“sex”)7 .下列选项中,(B)可以获取到请求页面的一个文本框的输入(假设文本框的名称为name)。
jsp-servlet题库附答案
1. B 编写一个Filter ,需要( )A.继承Filter 类B. 实现Filter 接口C. 继承HttpFilter 类D. 实现HttpFilter 接口2. ________________________________ D3.ABC 有关会话跟踪技术描述正确的是( )(多选)A.Cookie 是Web 服务器发送给客户端的一小段信息,客户端请求时,可以读取该信息发送到服务器端。
B.关闭浏览器意味着会话ID 丢失,但所有与原会话关联的会话数据仍保留在服务器上,直至会话过期。
C.在禁用Cookie 时可以使用URL 重写技术跟踪会话。
D.隐藏表单域将字段添加到HTML 表单并在客户端浏览器中显示。
4. C 在J2EE中,重定向到另一个页面,以下( )语句是正确的A.request . sendRedirect( “ http :// www . svse . com . cn ” );B.request . sendRedirect();C.response . sendRedirect( “ http: // www . svse . com . cn ”);D.response .sendRedirect();5. B EL表达式,${10 mod 3} ,执行结果为( )A.10 mod 3B. 1C. 3D. null6. C 自定义标签的作用是( )A.编写和使用方便B. 规定是这样的,如果不用,别人会说我们不专业C. 可以减少jsp 中的java 代码,将代码与界面标签分离,简化前台开发D. 连数据库7. B request.getRequestDispatcher().forward(request,response) 称之为( )A.流转B. 转发C. 重定向D. 导航8.BCD 有关Servlet 的生命周期说法正确的有( ) (多选)A.Servlet 的生命周期由Servlet 实例控制。
Servlet JSP程序设计课后练习题答案(清华大学出版社)
ServletJSP程序设计课后习题答案第1章Web技术简介1.6.1选择题1.C2.D3.D1.6.2填空题1.JSP2.JSP Model 1和JSP Model 23.JSP+JavaBean+Servlet、J2EE/JavaEE1.6.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页面的访问速度会大为提高。
2.简述JSP的两种体系结构。
答:JSP规范中分别称作JSP Model 1 和JSP Model 2,它们的本质区别在于处理批量请求的位置不同。
Model1,在Model1体系中,JSP页面独自响应请求并将处理结果返回客户。
这里仍然存在显示与内容的分离,因为所有的数据存取都是由JavaBean来完成的。
尽管Model1体系十分适合简单应用的需要,它却不能满足复杂的大型Web应用程序需要。
不加选择地随意运用Model 1,会导致JSP页内被嵌入大量的脚本片段或Java代码。
尽管这对于Java程序员来说可能不是什么大问题,但如果JSP页面是由网页设计人员开发并维护的这就确实是个问题了。
从根本上讲,将导致角色定义不清和职责分配不明,给项目管理带来不必要的麻烦。
Jsp、Servlet面试题及答案
一、简答题1.forward 和redirect的区别forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。
redirect就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,所以session,request参数都可以获取。
2.说出Servlet的生命周期,并说出Servlet和CGI的区别Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。
与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。
3.JSP中动态INCLUDE与静态INCLUDE的区别?动态INCLUDE用jsp:include动作实现 <jsp:include page="included.jsp" flush="true" />它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数。
静态INCLUDE用include伪码实现,并不会检查所含文件的变化,适用于包含静态页面<%@ includefile="included.htm" %>4.什么情况下调用doGet()和doPost()?Jsp页面中的form标签里的method属性为get时调用doGet(),为post时调用doPost()。
JSP第五章课后题答案和实验报告
第五章实验报告5.8.1读取数据库数据(1)在MySQL中创建数据库student,并创建数据库表students如表所示:显示结果5.8.1-1(2)创建Servlet:DBServlet.Java。
实现Servlet程序基本结构的代码如下:package test;import java.io.*;importjava.sql.*;importjavax.servlet.*;importjavax.servlet.http.*;public class DBServlet extends HttpServlet{public void doPost(HttpServletRequestrequest,HttpServletResponse response) throwsServletException,IOException{}public void doGet(HttpServletRequestrequest,HttpServletResponse response) throwsServletException,IOException{doPost(request,response);}}(3)实现数据库连接代码。
当Servlet基本结构完成之后,在Servlet中编写代码实现数据库连接,具体代码如下:static private Connection con = null;static private Statement st = null;static private ResultSetrs = null;public static Connection getConnection(){try{Class.forName("com.mysql.jdbc.Driver");con=DriverManager.getConnection("jdbc:MySQL://localhost:3306/student?"+"user=root&password=123456&characterEncoding=gb2312");if(con!=null){System.out.println("连接成功!!");}else{System.out.println("失败!!");}}catch(ClassNotFoundException e){e.printStackTrace();}catch(SQLException e) {e.printStackTrace();}return con;}当调用getConnection()方法时会返回一个数据库连接对象con。
jsp和servlet考试试题及答案
jsp和servlet考试试题及答案**JSP和Servlet考试试题及答案**一、单项选择题(每题2分,共20分)1. 以下哪个不是Servlet的生命周期方法?A. init()B. service()C. doGet()D. destroy()答案:C2. JSP页面中,以下哪个指令用于指定JSP页面的默认脚本语言?A. <%@ page import="java.util.*" %>B. <%@ page language="java" %>C. <%@ page contentType="text/html" %>D. <%@ page session="true" %>答案:B3. 在Servlet中,以下哪个方法用于处理客户端的POST请求?A. doGet()B. doPost()C. doPut()D. doDelete()答案:B4. JSP页面中,以下哪个对象用于获取客户端传递的参数?A. requestB. responseC. sessionD. out答案:A5. Servlet中,以下哪个对象用于向客户端发送响应?A. requestB. responseC. sessionD. out答案:B6. 在JSP页面中,以下哪个指令用于设置页面不缓存?A. <%@ page import="java.util.*" %>B. <%@ page buffer="none" %>C. <%@ page contentType="text/html" %>D. <%@ page session="true" %>答案:B7. Servlet中,以下哪个方法用于读取请求体中的数据?A. getInputStream()B. getReader()C. getOutputStream()D. getWriter()答案:B8. JSP页面中,以下哪个对象用于向客户端发送数据?A. requestB. responseC. sessionD. out答案:D9. Servlet中,以下哪个对象用于获取当前会话?A. requestB. responseC. sessionD. out答案:C10. 在JSP页面中,以下哪个指令用于设置页面内容类型和字符编码?A. <%@ page import="java.util.*" %>B. <%@ page language="java" %>C. <%@ page contentType="text/html; charset=UTF-8" %>D. <%@ page session="true" %>答案:C二、多项选择题(每题3分,共15分)1. Servlet中,以下哪些方法可以被重写以处理不同的HTTP请求方法?A. doGet()B. doPost()C. doPut()D. doDelete()答案:ABCD2. 在JSP页面中,以下哪些对象是隐式对象?A. requestB. responseC. outD. session答案:ABCD3. Servlet中,以下哪些方法用于获取请求参数?A. getParameter()B. getParameterValues()C. getParameterMap()D. getParameterNames()答案:ABCD4. JSP页面中,以下哪些指令用于设置页面属性?A. <%@ page import="java.util.*" %>B. <%@ page contentType="text/html" %>C. <%@ page session="true" %>D. <%@ page errorPage="error.jsp" %>答案:BCD5. Servlet中,以下哪些对象用于管理请求和响应?A. HttpServletRequestB. HttpServletResponseC. HttpSessionD. ServletContext答案:AB三、填空题(每题2分,共20分)1. Servlet的全称是________,它是一种运行在服务器端的Java 小程序。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第1章课后练习选择题1. 以下何者适合使用GET请求来发送?(A)使用者名称、密码(B)检视论譠页面(C)信用卡资料(D)查询数据的分页答案:B、D提示:敏感性数据不应使用GET来发送。
论譠页面、数据分页可以使用GET,便于使用者设定为书签。
2. 以下何者应该使用POST请求来发送?(A)使用者名称、密码(B)档案上传(C)搜寻引擎的结果画面(D)BLOG文件答案:A、B、D提示:敏感性数据、大量数据不应使用GET来发送。
搜寻引擎结果画面可以使用GET,便于使用者设定为书签。
3. HTTP哪个请求方式,请求参数会出现在网址列上?(A)GET(B)POST答:A4. 以下何者适合使用GET请求来发送?(A)检视静态页面(B)查询商品数据(C)新增商品资料(D)删除商品数据答案:A、B提示:这题在考等幂操作,不改变服务器状态的查询应使用GET。
5. 以下何者应该使用POST请求来发送?(A)查询商品数据(B)新增商品资料(C)更新商品数据(D)删除商品数据答案:B、C、D提示:这题在考非等幂操作,会改变服务器状态的查询应使用POST。
6. 以下何者是属于客户端执行的程序?(A)JSP(B)JavaScript(C)Servlet(D)Applet答案:B、D7. Servlet/JSP主要是属于哪个Java平台的规范之中?(A)Java SE(B)Java ME(C)Java EE答:C8. Servlet/JSP必须基于哪一类型的容器才能提供服务?(A)Applet容器(B)应用程序客户端容器(C)Web容器(D)EJB容器答:C9. Web容器在收到浏览器请求时,会如何处理请求?(A)使用单一执行绪处理所有请求(B)一个请求就建立一个执行绪来处理请求(C)一个请求就建立一个行程来处理请求(D)一个请求就执行一个容器来处理请求答:B10. Java EE中各技术标准最后将由什么文件明订规范?(A)JCP(B)JSR(C)JDK答:B提示:JCP是组织名称。
JDK是Java开发工具箱名称。
第2章课后练习选择题1. 若要针对HTTP请求撰写Servlet类别,以下何者是正确的作法?(A)实作Servlet界面(B)继承GenericServlet(C)继承HttpServlet(D)直接定义一个结尾名称为Servlet的类别答案:C2. 续上题,如何针对HTTP的GET请求进行处理与响应?(A)重新定义service()方法(B)重新定义doGet()方法(C)定义一个方法名称为doService()(D)定义一个方法名称为get()答案:B提示:不建议也不应重新定义HttpServlet所继承下来的service()方法。
3. HttpServlet是定义在哪个套件之中?(A)答案:B提示:与Servlet定义相关的类别或接口都位于套件之中,像是Servlet、GenericServlet、ServletRequest、ServletResponse等。
与HTTP 定义相关的类别或接口都位于套件之中,像是HttpServlet、HttpServletRequest、HttpServletResponse等。
4. 你在中定义了以下的内容:<servlet><servlet-name>Goodbye</servlet-name><servlet-class> <servlet-name>GoodBye</servlet-name><url-pattern>/goodbye</url-pattern></servlet-mapping>哪个URL可以正确的要求Servlet进行请求处理?(A)/GoodBye(B)/(C)/LoguotServlet(D)/goodbye答案:D5. 在Web容器中,以下哪两个类别的实例分别代表HTTP请求与响应对象?(A)HttpRequest(B)HttpServletRequest(C)HttpServletResponse(D)HttpPrintWriter答案:B、C6. 在Web应用程序中,何者负责将HTTP请求转换为HttpServletRequest物件?(A)Servlet物件(B)HTTP服务器(C)Web容器(D)JSP网页答案:C7. 在Web应用程序的档案与目录结构中,是直接放置在哪个目录之中?(A)WEB-INF目录(B)conf目录(C)lib目录(D)classes目录答案:A8. 你在中定义了以下的内容:<servlet><servlet-name>HelloServlet</servlet-name><java-class> <mapping-name>HelloServlet</mapping-name><url-pattern>/hello</url-pattern></servlet-mapping>这个中的定义有哪些错误?(A)<url-pattern>标签中的设定一定要用.do作结尾(B)<mapping-name>标签应改为<servlet-name>,结尾标签名称也要修改(C)<java-name>标签应改为<servlet-class>,结尾标签名称也要修改(D)<servlet>标签应改为<servlet-definition>,结尾标签名称也要修改答案:B、C提示:<url-pattern>可以无需.do结尾,也可以用万用字符(wildcard),例如*.do将会让所有以.do结尾的请求由该Servlet进行处理。
9. 在MVC架构中,谁负责通知应用程序客户端,应用程序本身有状态改变?(A)模型(Model)(B)视图(View)(C)控制器(Controller)答案:A10. MVC与Model 2架构最大的差别在于?(A)Model 2架构的视图是由HTML组成(B)Model 2架构中的模型无法通知视图状态已更新(C)MVC架构是基于请求/响应模型(D)MVC架构只能用于单机应用程序答案:B提示:Model 2架构中呈现视图的技术并没有限制。
MVC架构也可以应用于3-tier 的网络架构中,其中模型通知视图时,可以透过Socket联机来进行。
实作题1.讲师提示:这个练习在让学生动手实作HttpServlet的继承、的定义,并能够自行查询在线API文件,了解HttpServletRequest有哪些方法可以利用。
2.提示:这个练习在让学生动作撰写窗体(学生必须自行学习基本的HTML),了解GET与POST如何在Servlet中进行处理,学生必须重新定义doPost()方法,并了解如何在Servlet中撰写判断分支来呈现不同条件下的结果画面。
第3章课后练习课后练习选择题1. 以下的空格应该填入哪个方法?("text/html;charset=UTF-8");PrintWriter out = ;("<html>");...(A)getPrintWriter()(B)getWriter()(C)getBufferedWriter()(D)getOutputWriter()答案:B2. 请问以下的Servlet程序片段输出结果为何?("第一个Servlet程序");();("").forward(request,response);("Hello!World!");(A)显示"第一个Servlet程序"后转发(B)显示"第一个Servlet程序"与"Hello!World!"(C)直接转发给进行响应(D)丢出IllegalStateException答案:A提示:在flush()之后响应已确认,此时再forward()就会发生IllegalStateException。
3. 你将档案放在WEB-INF目录中,哪个方式或程序片段可以正确让进行响应?(A)使用浏览器请求/WEB-INF/(B)("/WEB-INF/")并进行forward()(C)使用("/WEB-INF/")(D)使用("/WEB-INF/")答案:B4. 如果想知道使用者所使用的浏览器版本等相关讯息,可以执行哪一段程序代码:(A)("User-Agent")(B)("User-Agent")(C)("User-Agent")(D)("User-Agent")答案:C5. 如果想取得输出串流对象对浏览器输出位数据,应该撰写哪一段程序代码?(A)ResponseStream out = ();(B)ResponseStream out = ();(C)ResponseStream out = ();(D)ServletOutputStream out = ();答案:D6. 哪几个程序代码可以取得password请求参数的值?(A)("password");(B)("password")[0];(C)("password")[0];(D)("password");答案:A、C提示:getParameterValues()会用字符串数组传回指定的请求参数值,如果请求参数只有一个值,则透过指定索引值0也可取得该值。
7. 下面这个程序代码片段会输出什么结果?PrintWriter writer = ();("第一个Servlet程序");OutputStream stream = ();("第一个Servlet程序".getBytes());(A)浏览器会看到两段"第一个Servlet程序"的文字(B)浏览器会看到一段"第一个Servlet程序"的文字(C)丢出IllegalStateException(D)由于没有正确地设定内容类型(content-type),浏览器会提示另存新档答案:C提示:同一个请求周期中,HttpServletResponse的getWriter()与getOutputStream()只能择一使用,否则会丢出IllegalStateException。