Java Web应用开发项目教程(第3版) 练习题_第1页
Java Web应用开发项目教程(第3版) 练习题_第2页
Java Web应用开发项目教程(第3版) 练习题_第3页
Java Web应用开发项目教程(第3版) 练习题_第4页
Java Web应用开发项目教程(第3版) 练习题_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

练习1:Web服务器原理学号:__________姓名:__________班级:__________成绩:________一、不定项选择(每题2分,共10分)1.以下哪些属于浏览器的功能(),哪些属于Web服务器的功能()。A.编辑HTML文档 B.展示网页中的图片 C.解析并展示HTML文档D.发送HTTP请求,接收HTTP响应 E.接收HTTP请求,发送HTTP响应2.什么是静态网页?()A.就是指事先存放在Web服务器端文件系统中的HTML文档B.就是不允许包含声音、动画等的HTML文档C.只能包含HTML标签,不能包含其它任何语言代码的HTML文档D.不允许修改的HTML文档3.安装了Tomcat,但无法启动Tomcat,可能是由于哪些原因引起的?()A.没有安装JDKB.Tomcat与JDK的版本不匹配C.安装了JDK,但是环境变量配置不正确D.没有安装浏览器E.没有安装EclipseF.有进程占用了Tomcat的端口4.Javaweb应用的文件必须按照规范部署到服务器上,下面关于部署结构的说法错误的是()A.classes目录在web应用根目录下。B.WEB-INF在web应用根目录下,WEB-INF中包含classes目录,存放的是编译后的class文件。C.页面文件可以直接存放在web应用的根目录下。D.web部署描述符web.xml存放在web应用根目录下的WEB-INF目录中。5.下面关于Eclipse下的web工程,说法正确的是()A.Java文件存放在工程根目录下的JavaResources/src中B.页面文件一般存放在工程根目录下的WebContent中,或者WebContent的子目录中。C.WEB-INF文件夹在WebContent根目录下,包含lib文件夹和web.xmlD.web部署描述符web.xml存放在WebContent根目录下。二、填空(每空1分,共20分)1.一个URL:/http/http-methods.html,它的应用层协议是___________________________________主机(web服务器)域名是_______________________资源路径是_____________________________________2.HTTP响应的状态码中,__________表示响应成功,______________表示请求的资源不存在。3.Tomcat根目录下的__________文件夹用于存放Tomcat的各种命令对应的批处理文件或者可执行程序,该文件夹下的_____________批处理文件可以用于启动tomcat。4.在Tomcat根目录下的________________文件夹一般用于存放web应用。5.web.xml(web部署描述符)存放在web应用根目录下的______________文件夹中。6.安装完Tomcat后,如果想测试是否成功,可以启动Tomcat,并在浏览器中输入地址_________________________________________,如果能看到Tomcat的欢迎页面,表示成功。7.键盘上的________键可以用于启动浏览器的开发者工具,开发者工具的___________选项卡可以用于查看请求和响应,___________选项卡可以用来查看网页元素(填中英文名称均可)。8.假设一个web应用为helloapp,应用中有一个页面hello.html,它的路径是:tomcat根目录/webapps/helloapp/common/hello.html,在浏览器中访问hello.html应该输入的地址:___________________________________________________________________。9.接上题,如果在web.xml中添加了<welcome-file>common/hello.html</welcome-file>配置,在浏览器中访问hello.html地址还可以写成:__________________________________________。10.表单<form>的_________属性用来指定请求提交方法,属性值为__________时请求以GET方式提交,属性值为______________时请求以POST方式提交。___________属性用于指定表单提交地址。11.a.html和b.html两个页面位于同一web应用的同一文件夹下,a.html中有一个超链接,链接到b.html,并携带两个请求参数,参数page的值为1,参数keywords的值为web,请补全超链接:<ahref="______________________________________________________________">提交</a>三、简答(每题10分,共30分)1.请例举会向服务器发送GET请求的场合,描述GET请求的特征。(10分)2.例举会向服务器发送POST请求场合。描述POST请求的特征。(10分)3.下面是一个Eclipse中的web工程,请仔细观察工程结构回答下面的问题。(10分)2)如果用户输入的工作是2)如果用户输入的工作是"医生",年限是"3",请写出请求参数字符串。这是index.html中的表单部分代码,该表单以GET方法提交,该表单提交到check.jsp,请补全下划线。<form___________________________________________>工作:<inputtype="text"name="job"/>年限:<inputtype="text"name="years"/></form>3)假设web应用已经部署到Tomcat,使用浏览器访问index.html,请写出访问地址。4)假设tomcat的根目录为D:/tomcat,应用已经部署到其webapps文件夹下,请按要求写路径:index.html部署后的文件路径:check.jsp部署后的文件路径:web.xml部署后的路径:

练习2:Servlet基础学号:__________姓名:__________班级:__________成绩:________一、选择(每空1分,共8分)1.Servlet容器通过调用Servlet的__=1\*GB3①__方法来初始化Servlet,并且传递一个__=2\*GB3②__对象给它。横线处应填?()A.=1\*GB3①init()=2\*GB3②ServletConfigB.=1\*GB3①service()=2\*GB3②servletRequestC.=1\*GB3①service()=2\*GB3②ServletConfigD.=1\*GB3①init()=2\*GB3②servletRequest2.当客户请求到达Servlet容器时,容器将请求包装成__=1\*GB3①__对象,将其传递给___=2\*GB3②__方法,从请求对象中获得用户请求信息,进行处理后,把响应信息包装在__=3\*GB3③__对象中,通过I/O流将结果发回客户端。()A.=1\*GB3①ServletRequest=2\*GB3②service()=3\*GB3③ServletResponseB.=1\*GB3①ServletConfig=2\*GB3②init()=3\*GB3③ServletResponseC.=1\*GB3①ServletRequest=2\*GB3②service=3\*GB3③PrintWriterD.=1\*GB3①ServletRequest=2\*GB3②init=3\*GB3③ServletResponse3.在web.xml中使用()元素来设置servlet初始化参数。()元素来定义Web应用上下文参数。A.<init-param>B.<context-param>C.<servlet>D.<servlet-mapping>4.通过()对象的getInitParameter方法取得servlet初始化参数,通过()对象的getInitParameter方法取得Web应用上下文参数。A.ServletRequestB.ServletContextC.ServletConfigD.ServletResponse5.helloapp应用中有一个HelloServlet类,它位于org.javathinker包下。这个应用部署后,HelloServlet类的class文件在什么目录下()

A.helloapp/WEB-INF/src/HelloServlet.class

B.helloapp/WEB-INF/HelloServlet.class

C.helloapp/WEB-INF/classes/HelloServlet.class

D.helloapp/WEB-INF/classes/org/javathinker/HelloServlet.class6.ServletContext对象的说法正确的是?()

A.对于每个HTTP请求,Servlet容器都会创建一个ServletContext对象

B.由JavaWeb应用本身负责为自己创建一个ServletContext对象

C.每个JavaWeb应用启动时,Servlet容器都会为其创建一个ServletContext对象D.一个web服务器启动后,会创建唯一的ServletContext对象,该服务器上的所有应用共享此对象二、填空(每空1分,共12分)1.HttpServlet类的service方法会依据不同类型的请求,调用不同的方法,如果接收到的是GET请求,调用________方法,如果接收到的是POST请求,调用_______________。2.假设一个应用helloapp中有一个ProductServlet,该servlet的url-pattern设置为_____________时,可以通过地址:8080/helloapp/servlet/showProducts来访问它。3.假设有一个Student类型的对象s,通过request.setAttribute("stu",s)语句存储到了当前的请求对象中,通过下面的语句可以将存储的Student对象取出。请补全:_____________________stu=____________________________________________________;4.请求转发方法forward中的路径,如果写绝对路径,应该以_______开头,其代表____________________,如果写相对路径,应该____________开头,该路径相对于___________________________。5.重定向sendRedirect方法中的路径,如果以“/”开头是绝对路径,“/”代表________________________。6.表单/超链接中的路径,如果写绝对路径,应该__________开头,其代表_________________________。三、简答(每题10分,共20分)1、请论述什么是请求转发,什么是重定向,两者的特征和区别。2、请论述请求对象中的参数(parameter)和属性(attribute)的区别。四、程序(20分)1.helloapp应用中有index.jsp页面和HelloServlet类,类在包中。用户在页面中输入姓名和年龄,提交请求给HelloServlet。servlet取出请求中携带的参数,向客户端返回响应“***今年***岁”。(1)HelloServlet在web.xml中的部分配置如下,请补全:<servlet><servlet-name>_____________________________</servlet-name><servlet-class>____________________________</servlet-class></servlet><servlet-mapping><servlet-name>_____________________________</servlet-name><url-pattern>/hello</url-pattern></servlet-mapping>(2)这是index.html中的部分代码(提交按钮代码省略),该表单以POST方法提交给HelloServlet处理,补全下划线。<form_____________________________________________________________>姓名:<inputtype="text"name="realName"/>年龄:<inputtype="text"name="age"/></form>(3)补全HelloServlet的do***方法。publicclassHelloServletextendsHttpServlet{publicvoid__________(HttpServletRequestrequest,HttpServletResponseresponse)…{}}

练习3:JDBC学号:__________姓名:__________班级:__________成绩:________一、选择(每题1分,共10分)1.JDBC能做哪几件事?()A.和数据库建立连接 B.向数据库发送SQL语句 C.处理数据库的查询结果 D.以上全部2.使用JDBC要导入哪个包?()A.java.sql B.java.jdbc C.java.util D.javax.swing3.在编写访问数据库的Java程序时,Connection对象的作用是()。A.用来表示与数据库的连接 B.存储查询结果C.在指定的连接中处理SQL语句D.建立新数据库连接4.在编写访问数据库的Java程序时,ResultSet对象的作用是()。A.建立新数据库连接 B.用来表示与数据库的连接C.在指定的连接中处理SQL语句 D.存储查询结果5.执行查询后产生的结果集对象,其游标初始化位于()。A.结果集第一行 B.结果集最后一行 C.结果集第一行之前 D.结果集最后一行之后6.关于ResultSet的next方法,叙述正确的是()。(多选)A.如果当前不在最后一行,调用一次next方法,查询结果的游标下移一行,且返回trueB.如果当前在最后一行,调用一次next方法,返回falseC.如果当前在最后一行,调用一次next方法,程序出现异常D.调用next方法没只会让游标下移一行,没有返回值7.表中某字段类型是varchar,可以通过ResultSet对象的()方法获得当前行这个字段的值。A.getInt B.getChar C.getVarchar D.getString8.执行SQL语句selectid,name,agefromtb_student之后,结果集对象为rs,使用哪两句语句可以取得age字段的值?()()A.rs.getInt(3) B.rs.getInt(2) C.rs.getInt("age") D.rs.getInt(age)9.预处理一条SQL语句"insertintotb_student(name,age)values(?,?)",得到pStmt对象,要把第一个占位符的值设置为"zs",第二个占位符的值设置为18,使用下面哪组语句?()A.pStmt.setString(0,"zs"); pStmt.setInt(1,18);B.pStmt.setInt(1,"zs"); pStmt.setInt(2,18);C.pStmt.setString(1,"zs"); pStmt.setInt(2,18);D.pStmt.setString("name","zs"); pStmt.setInt("age",18);10.executeUpdate()方法返回int值,其含义是()。A.受影响的记录的条数 B.0代表成功,1代表失败C.数据表的总记录数 D.0代表成功,非0代表失败二、程序填空(30分)1.本机MySQL服务的端口号为3306,用户名sa,密码123。数据库名为studb,数据表tb_account包含两个字段user_name和password,分别代码用户名和密码,其中用户名为主键,示例结构和数据如下。请补充login方法,该方法用于验证用户名、密码是否正确,正确返回true,否则返回false。user_namepasswordwy123xxqadminpublicbooleanlogin(StringuserName,Stringpassword)throwsException{StringdbDriver="com.mysql.jdbc.Driver";Stringurl="jdbc:mysql://localhost:3306/____________";Class.forName(dbDriver);Connectionconn=DriverManager.getConnection(________,"________","___________");PreparedStatementpStmt=conn.PreparedStatement("select*fromtb_accountwhereuser_name=?andpassword=?");pStmt.setString(___________,_________________);pStmt.setString(___________,_________________);ResultSetrs=pStmt.executeQuery();if(___________________){ return______________;}return____________;}2.数据表同上题,请编写方法通过用户名查询密码,返回密码,查不到返回null,补充下面方法。publicStringgetPasswordByUserName(StringuserName)throwsException{Connectionconn=数据库连接省略;}3.数据表同上题,该方法根据用户名删除记录,删除成功返回true,没有符合条件的记录返回false,补充方法。publicbooleandeleteAccount(StringuserName)throwsException{Connectionconn=数据库连接省略;PreparedStatementpStmt=conn.PreparedStatement("___________________________________________________________");pStmt.________________________(___________,_________________);intresult=pStmt._____________________();//执行删除,返回受影响的记录的条数return________________________________}

练习4:JSP入门学号:__________姓名:__________班级:__________成绩:________一、选择(每空1分,共12分)1.下面关于JSP和Servlet的优缺点,说法错误的是()A.Servlet长处在于处理“逻辑”,而不是处理“表现”B.使用Servlet可以实现非常复杂的Web应用逻辑,但是无法向客户端提供页面C.Servlet可以生成页面,但是HTML语句都写在了输出语句中,不适合向客户端提供复杂的页面效果D、从形式上看JSP更接近HTML页面,因此它比Servlet更适合表达网页的外观。2.下面关于JSP执行过程,说法正确的是()(多选)A.客户第一次请求JSP页面时,JSP引擎会将JSP页面转译成java代码(Servlet源文件)。B.客户每次请求JSP页面时,JSP引擎都会将JSP页面转译成Servlet源文件。C.如果JSP文件未发生变化,再次访问它时,发现其对应的servlet类文件已经存在,则直接调用servlet的服务方法,不会重新进行转译和编译。D.只要将JSP文件转译成Servlet源文件,并进行编译之后,不论以后何时访问,JSP文件是否有变化,都不会再次进行转译。3.一个JSP文件需要引入java.io包和java.util.Date类,以下哪些选项的语法是正确的?()A.<%@pageimport="java.io.*,java.util.Date"%>B.importjava.io.*;importjava.util.Date;C.<%@pageimport="java.io.*;java.util.Date"%>D.<%@pageimport="java.io.*"

import="java.util.Date"%>4.关于page指令中contentType属性和pageEncoding属性的说法正确的是?()(多选)A.没有区别B.前者用于设置JSP页面响应结果的MINE类型和编码方式,后者用于设置JSP页面的编码方式C.设置pageEncoding属性,就相当调用request.setCharacterEncoding方法设置请求编码D.设置contentType属性,就相当于使用的response.setContentType方法5.如果要在JSP文件中注释N行Java代码最好使用(),如果要注释N行HTML代码最好使用(),如果要注释的代码既包含HTML也包含Java代码,使用()A.<!---->B.<%----%>C./**/D.//6.在JSP文件中有这样的注释语句<!--<%=(int)(Math.random()*10)%>-->,说法正确的是()A.代码不会被执行B.代码还是会执行,但客户在页面上看不到执行结果C.代码还是会执行,客户在页面上能看到执行结果D.代码不会在服务器端执行,会在发送到浏览器后执行7.在helloapp应用中有页面,路径为:tomcat根目录/webapps/helloapp/hello/hello.jsp,在浏览器端访问hello.jsp的地址是()A.http://localhost:8080/webapps/helloapp/hello/hello.jspB.http://localhost:8080/helloapp/hello.jspC.http://localhost:8080/helloapp/hello/hello.jspD.http://localhost:8080/hello/hello.jsp8.在helloapp应用中有页面,其在Eclipse工程中的路径为helloapp/WebContent/pages/hello.jsp,在浏览器端访问hello.jsp的地址是()A.http://localhost:8080/helloapp/WebContent/pages/hello.jspB.http://localhost:8080/helloapp/pages/hello.jspC.http://localhost:8080/WebContent/pages/hello.jspD.http://localhost:8080/pages/hello.jsp9.关于静态包含和动态包含,下面那些说法正确()(多选)A.静态包含先把目标组件的源代码融合到源组件中,然后对融合后的源组件进行转译和编译B.动态包含先把目标组件的源代码融合到源组件中,然后对融合后的源组件进行转译和编译C.动态包含会分别转译和编译源组件和目标组件,目标组件的响应结果被包含到源组件的响应结果中D.静态包含发生在JSP的翻译阶段,动态包含则发生在运行阶段10.helloapp应用中有a.jsp和b.jsp两个文件,路径分别为:helloapp/a.jsp,helloapp/dir/b.jsp,以下哪些选项中的代码能使a.jsp文件正确地动态包含b.jsp?()(选两个)A.<jsp:includepage="b.jsp"/> B.<jsp:includepage="/helloapp/dir/b.jsp"/>C.<jsp:includepage="/dir/b.jsp"/> D.<jsp:includepage="dir/b.jsp"/>二、判断(每题1分,共8分)1.JSP引擎在第一次处理JSP请求时,因为有转译和编译的过程,用户收到响应的时间会有延迟。2.JSP转译后的java和class文件可以删掉,访问页面时,还会重新进行转翻译和编译。3.在tomcat根目录/work文件夹中有转译生成的Servlet源文件和其编译后的class文件。4.静态包含时两个组件使用的是同一个request对象,动态包含时两个组件使用的是不同的request对象。5.静态包含在两个文件中不能定义同名的变量(非局部代码块中的变量),而动态包含允许。6.JSP页面中可以直接使用request和response对象,无需定义。7.在JSP中使用<%out.print("<b>你好</b>");%>和<b>你好</b>,两句效果是相同的。8.使用<%out.print(“hi”);%>的效果和使用<%System.out.print(“hi”);%>的效果是一样的。三、填空(每空1分,共4分)1.helloapp应用中有a.jsp和b.jsp两个文件,路径分别为:helloapp/dir1/a.jsp,helloapp/dir1/dir2/b.jsp,a.jsp文件的一个超链接要正确的链接到b.jsp,请写出两种路径:<ahref="____________________________________________________________">链接到b.jsp</a>

<ahref="____________________________________________________________">链接到b.jsp</a>

2.helloapp应用中有a.jsp和b.jsp两个文件,路径分别为:helloapp/dir1/a.jsp,helloapp/dir1/dir2/b.jsp,a.jsp文件要正确地包含b.jsp,请写出两种路径:<jsp:includepage="___________________________________________________________________"><jsp:includepage="___________________________________________________________________">四、程序(6分)1.一个servlet在request对象中存储了两个属性,一个名为"num1",另一个名为"num2",属性值均为Integer类型,并将请求转发给了index.jsp。index.jsp中将属性值取出,求和,并向客户端展示结果,页面展示的内容为"num1的值+num2的值=结果"

(例如3+19=22),请完成index.jsp的代码。无需写page指令、html、head、body标签,只需写最核心的代码,注意<%%>的使用。

练习5:Servlet和JSP进阶学号:__________姓名:__________班级:__________成绩:________一、选择(每题2分,共20分)1.URL重写技术的缺点是(),优点是()。(多选)A.必须对所有动态生成的URL进行重写,代码比较繁琐。 B.不能用于HTML文档。C.既适用于JSP页面也适用于HTML页面。 D.用户是匿名的。E.会话信息作为参数在URL上可见的,存在安全隐患。2.下面关于cookie说法正确的是()(多选)A.由服务器端程序创建,存储在服务器上。B.由服务器端程序创建,存储在客户端计算机上。C.持久维持会话信息,浏览器关闭也可以维护D.所有浏览器都支持,但用户可以选择禁用3.客户端首次访问某网站时,请求中____携带该网站的cookie,服务器收到请求后,可以将cookie随着______发送到客户端保存起来。当用户再次访问同一网站时,请求中______携带该网站的cookie。()A.会,响应,不会B.不会,请求,不会C.不会,响应,会D.会,响应,会4.关于cookie有效期,下面说法正确的是()(多选)A.cookie的默认生存期为-1,表示cookie永不失效B.cookie的默认生存期为-1,表示浏览器关闭后cookie就失效C.使用setMaxAge方法将生存期设置为正数,只要在生存期内,就算浏览器被关闭,cookie依然存在D.使用setMaxAge方法将生存期设置为正数,如果浏览器不关闭,只要在生存期内,cookie都会存在,但是只要浏览器关闭,cookie就失效了5.cookie.setMaxAge(60)的含义是()A.将cookie的生存期设置为1分钟,过期后服务器不会再向浏览器发送cookieB.将cookie的生存期设置为1分钟,过期后浏览器不会把这个cookie发送给服务器C.将cookie的生存期设置为1个小时,过期后浏览器不会把这个cookie发送给服务器D.将cookie的生存期设置为1个小时,过期后服务器不会再向浏览器发送cookie6.关于session,以下哪些说法正确()(多选)A.对于发往服务器的每个HTTP请求,Servlet容器都会创建一个HttpSession对象B.Servlet容器为每一个会话分配一个HTTPSession对象,并为每个HttpSession对象分配唯一的SessionIDC.Servlet容器为每一个会话分配一个HTTPSession对象,JavaWeb应用程序负责为HttpSession分配惟一的SessionIDD.Servlet容器为每一个会话分配一个HTTPSession对象,而SessionID是由客户端浏览器创建,并随着cookie发送给服务器。7.关于session,以下哪些说法正确()(多选)A.Servlet容器会把sessionID作为Cookie发送到客户端来跟踪会话B.JavaWeb应用程序无法获取HttpSession对象的SessionID

温馨提示

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

评论

0/150

提交评论