- 1.09 MB
- 2022-04-22 11:51:58 发布
- 1、本文档共5页,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
- 文档侵权举报电话:19940600175。
'1.7习题1.单选题(1)在HTML中超链接标记为()A.和B.和 C.和D.和答案:A(2)表单中的数据要提交到的处理文件由表单的()属性指定。A.methodB.nameC.actionD.以上都不对答案:C(3)当标记的type属性值为()时,代表一个多选框。A.textB.radioC.checkboxD.button答案:C(4)以下URL中语法不正确的是()A.http://www.bta.net.cn:80/software/home.htmlB.telnet://bdysseu.bbb.com:70C.ftp://ftp.btbu.edu.cnD.www0.btbu.edu.cn答案:D2.上机练习用记事本或Dreamweaver制作如下几个页面(建议用Dreamweaver制作):link.html:此页面只有一个超级链接,用户单击此链接后将链接到login.html登录页面。login.html:此页面为用户登录页面,用户可以在此页面输入用户名和密码,然后提交表单。login_success.jsp:接收用户输入并显示“登录成功!”。三个页面运行后的效果如图1.8所示。图1.8练习题页面运行效果答案:link.html代码如下:HTML练习 点击这里登录
login.html代码如下:登录页面 用户名
密 码
login_success.jsp代码如下:<%@pagecontentType="text/html;charset=gb2312"%>无标题文档 登录成功!2.7习题1.单选题(1)要运行JSP程序,下列说法不正确的是()
A.服务器端需要安装Servlet容器,如Tomcat等。B.客户端需要安装Servlet容器,如Tomcat等。C.服务器端需要安装JDK。D.客户端需要安装浏览器,如IE等。答案:B(1)当发布Web应用程序时,通常把Web应用程序的目录及文件放到Tomcat的()目录下。A.workB.tempC.webappsD.conf答案:C2.上机练习(1)按照本章所介绍的方法,下载和安装JDK和Tomcat,配置Windows操作系统下的JavaWeb应用开发环境。l安装j2sdk,配置系统的环境变量,测试j2sdk安装是否成功。l安装并配置Tomcat,安装完成后发布Tomcat的默认主页,完成Tomcat的启动和停止操作。l创建一个虚拟发布目录,将例helloapp.jsp存入虚拟目录发布。(2)练习建立MyEclipseWebProject,并在其中建立几个HTML文件及JSP文件。答案:略。请参考相关章节。3.6习题1.单选题(1)下面有关HTTP协议的说法不正确的是()A.HTTP协议是Web应用所使用的主要协议B.HTTP协议是一种超文本传输协议(HypertextTransferProtocol),是基于请求/响应模式的C.HTTP是无状态协议D.HTTP的请求和响应消息如果没有发送并传递成功的话,HTTP可以保存已传递的信息答案:D(2)下面有关Servlet的描述错误的是()。A.一个Servlet就是Java中的一个类B.Servlet是位于Web 服务器内部的服务器端的Java应用程序C.Servlet可以由客户端的浏览器解释执行D.加载Servlet的Web服务器必须包含支持Servlet的Java虚拟机答案:C(3)有关Servlet的调用,下列说法错误的是()。A.可以通过在浏览器的地址栏中输入URL来调用Servlet。B.可以通过表单的action属性来调用一个Servlet接收表单信息。C.可以在标记中调用Servlet。D.只有上述三种调用Servlet的方法。答案:D
4.6习题1.单选题(1)下面不属于JSP指令的是:()A.includeB.importC.pageD.taglib答案:B(2)page指令用于定义JSP文件中的全局属性,下列关于该指令用法的描述不正确的是:()A.<%@page%>作用于整个JSP页面。B.可以在一个页面中使用多个<%@page%>指令。C.为增强程序的可读性,建议将<%@page%>指令放在JSP文件的开头,但不是必须的。D.<%@page%>指令中的属性只能出现一次。答案:D(3)下列标签使用正确的是:()A. B.C. D. 答案:A(4)()动作用于转向另一个页面。A.nextB.forwardC.includeD.param答案:B(5)在项目中已经建立了一个JavaBean,该类为:bean.Student,该bean具有name属性,则下面标签用法正确的是:()A.B.C.D. 答案:C(6)jsp:useBean动作的scope属性设置为()将使同一用户在不同页面共享Beans。A.pageB.sessionC.applicationD.request答案:B(7)在JSP中使用标记时,不会出现的属性是:()A.nameB.propertyC.valueD. 以上皆不会出现
答案:C2.上机练习(1)应用Date函数读取系统当前时间,根据不同的时间段,在浏览器输出不同的问候语,例如上午0~12点之间输出“早上好”,同时把系统的年、月、日、小时、分、秒和星期输出到用户的浏览器。答案:文件date.jsp代码如下:<%@pagecontentType="text/html;charset=gb2312"import="java.util.*"%>jsp基本语法应用案例 <%Datetoday=newDate();intyear0=today.getYear();intyear=year0+1900;intmonth0=today.getMonth();intmonth=month0+1;intdate=today.getDate();intday=today.getDay();inthours=today.getHours();intminutes=today.getMinutes();intseconds=today.getSeconds();if(hours>=0&&hours<12){out.println("朋友们,早上好!");}elseif(hours>=12&&hours<19){out.println("朋友们,下午好!");}elseout.println("朋友们,晚上好!");out.println("
现在是:"+year+"年"+month+"月"+date+"日星期"+day+"
"+hours+"时"+minutes+"分"+seconds+"秒");%> 程序运行结果如图4.1所示。
图4.1上机练习(1)运行结果(2)加载动态文件,制作一个JSP文件,计算一个数的平方,然后再制作一个JSP文件,应用动作加载上述的JSP文件,在客户端显示出来,并在客户端的“查看源文件”中观察源文件。答案:计算一个数的平方的文件square.jsp代码如下:<%@pagecontentType="text/html;charset=gb2312"%>jsp:include <%Stringstr=request.getParameter("num");if(str==null){str="1";}intn=Integer.parseInt(str);doublef;f=n*n;%><%=n%>的平方等于<%=f%>包含此文件的JSP文件include.jsp文件代码如下:<%@pagecontentType="text/html;charset=gb2312"language="java"import="java.lang.Math"%>jsp:include 求一个数的平方
文件运行结果如图4.2所示。
图4.2上机练习(2)运行结果(3)设计表单,制作读者选购图书的界面,当读者选中一本图书后,单击“确定”按钮,用“jsp:forwardpage=”语句将页面跳转到介绍该图书信息页面。答案:读者选择图书页面selectBook.jsp代码如下:<%@pagecontentType="text/html;charset=gb2312"%>选择图书 《WEB技术应用基础》 《信号与系统》
接受用户的选择并根据用户的选项转向图书信息页面的文件receiveBook.jsp代码如下:<%@pagecontentType="text/html;charset=gb2312"%><%request.setCharacterEncoding("GB2312");%>JSP:动作 <%Stringgetsel;getsel=request.getParameter("book");if(getsel.equals("web")){%> <%}elseif(getsel.equals("signal")){%> <%}%>显示图书信息的页面bookInfo.jsp代码如下:<%@pagecontentType="text/html;charset=gb2312"%><%request.setCharacterEncoding("GB2312");%>无标题文档
你选择的是:<%=request.getParameter("bookname")%>
作者是:<%=request.getParameter("auther")%>文件运行结果如图4.3各图所示。图4.3上机练习(3)运行结果5.11习题1.单选题(1)下列选项中,()可以准确地获取请求页面的一个文本框的输入(文本框的名称为name)。A.request.getParameter(name)B.request.getParameter(”name”)C.request.getParameterValues(name)D.request.getParameterValues(“name”)答案:B(2)使用response对象进行重定向时,使用的方法是()。A.getAttributeB.setContentTypeC.sendRedirectD.setAttribute答案:C(3)session对象中用于设定指定名字的属性值,并且把它存储在session对象中的方法是()。A.setAttributeB.getAttributeNamesC.getValueD.getAttribute答案:A(4)在application对象中用()方法可以获得application对象中的所有变量名。A.getServerInfoB.nextElements()C.removeAttributeD.getRealPath答案:B2.上机练习 (1)制作一个购书页面,要求用户输入用户名和密码,并通过下拉菜单选择需要购买的图书,单击“确定”按钮,将信息发往服务器端,服务器端文件接收用户输入并输出用户名和所购图书。答案:读者选购图书页面buyBook.jsp代码如下:选购图书 用户名
密 码
图 书Web技术应用基础信号与系统高等数学
接收用户输入的服务器端文件receiveUser.jsp代码如下:<%@pagecontentType="text/html;charset=gb2312"%>
无标题文档 <%request.setCharacterEncoding("GB2312");StringuserName=request.getParameter("username");Stringbook=request.getParameter("book");%><%=userName%>你好
你要购买的图书为:《<%=book%>》
文件运行结果如图5.1所示。图5.1上机练习(1)运行结果(2)设计表单,制作读者选购图书的界面,当读者选中一本图书后,单击“确定”按钮,页面跳转到介绍该图书信息页面,要求使用response对象sendRedirect方法。答案:读者选购图书页面buyBook2.htm代码如下:选购图书 请选择需要的图书:
《Web技术应用基础》 《微型计算机原理及应用技术》 文件receiveBook2.jsp接收用户的选择并根据用户的选择转向不同的页面,其代码如下:<%Stringbv=request.getParameter("bv");if(bv.equals("")){response.sendRedirect("buyBook2.htm");}elseif(bv.equals("1")){response.sendRedirect("webBook.htm");}elseif(bv.equals("2")){response.sendRedirect("computerBook.htm");}%>图书介绍页面webBook.htm代码如下:Web技术应用基础
《Web技术应用基础》 清华大学出版社 樊月华主编 35.0元 图书介绍页面computerBook.htm代码如下:微型计算机原理及应用技术 《微型计算机原理及应用技术》 机械工业出版社 朱金钧麻新旗编著
31.0元 文件运行结果如图5.2所示。图5.2上机练习(2)运行结果(3)设计网上考试界面如图8.24所示,应用session对象存储测试数据,当考生完成试题,单击“确定”按钮,将答案与正确答案比较,给出结果和答题所用的时间。图5.3上机练习(3)运行结果答案:考试页面exam.jsp代码如下:<%@pagecontentType="text/html;charset=gb2312"%><%
Stringname=request.getParameter("name");Stringnum=request.getParameter("num");Stringanswer1=request.getParameter("question1");Stringanswer2=request.getParameter("question2");if(name!=null&&num!=null&&answer1!=null&&answer2!=null){session.putValue("name",name);session.putValue("num",num);session.putValue("answer1",answer1);session.putValue("answer2",answer2);%>查看考试结果及答案<%}else{%>考试页面 考试系统
考试时间:<%=((session.getLastAccessedTime()-session.getCreationTime())/1000)%>秒
1.IP协议对应OSI协议中的哪一层:
会话层 传输层 数据链路层
网络层
2.JSP文件中使用下面哪种语言作为服务器端程序默认的语言:
VC++ Java Qbasic JavaScript
<%}%>提交后查看考试结果及答案页面answer.jsp代码如下:<%@pagecontentType="text/html;charset=gb2312"import="java.util.Date"%>考试结果 考试结果
<%ObjectQ1=session.getValue("answer1");ObjectQ2=session.getValue("answer2");{if(Q1.equals("4")){out.print("第一题正确
");out.print("正确答案是:网络层。
");}else{ out.print("第一题错误
");out.print("正确答案是:网络层。
");}}{if(Q2.equals("2")){out.print("第二题正确
");out.print("正确答案是:Java。
");}else{out.print("第二题错误
");out.print("正确答案是:Java。
");}}%>提交题目后页面及查看考试结果页面如图5.4所示。图5.4上机练习(3)提交后页面及查看考试结果页面6.6习题1.单选题(1)创建数据表应该用以下()指令。A.INSERTB.CREATEC.SELECTD.UPDATE答案:B(2)创建数据表时如果要指定某一个字段为主键,应该用()参数。A.NOTNULLB.Auto_IncrementC.PrimaryKeyD.Key答案:C(3)要删除数据表中的一条记录应该用以下的()命令。A.INSERTB.DELETEC.SELECTD.UPDATE答案:B2.上机练习(1)启动MySQL的命令行管理工具,用MySQL的建库语句建立一个名为company的数据库。(2)在company库中建立雇员表emp,表的数据项及数据类型如下所示: empnoint(4)notnullprimarykey,enamevarchar(10),jobvarchar(10),hiredatedatetime,salarydouble(3)建立一个JSP文件,通过JDBC连接数据库,然后执行如下操作:l在雇员表emp中插入几行测试数据(英文数据,日期格式为YYYY-MM-DD)。l查看表中的数据。l修改表中的某条记录。l删除表中的某条记录。答案:(1)建库语句为:createdatabasecompany;(2)首先使用下列语句选中company数据库为当前数据库:usecompany;然后通过以下语句建立雇员表emp:createtableemp(empnoint(4),enamevarchar(10),jobvarchar(10),hiredatedatetime,salarydouble,primarykey(empno));(3)l文件jdbcAdd.jsp实现在emp表中插入两条记录并查看插入后表中的数据,其代码如下:<%@pagecontentType="text/html;charset=gb2312"%><%@pagelanguage="java"%><%@pageimport="com.mysql.jdbc.*"%><%@pageimport="java.sql.*"%>往数据库表中插入记录 <%//驱动程序名StringdriverName="com.mysql.jdbc.Driver";//数据库用户名StringuserName="root";//密码StringuserPwd="123";//数据库名StringdbName="company";//表名
StringtableName="emp";//连接字符串Stringurl="jdbc:mysql://localhost/"+dbName+"?user="+userName+"&password="+userPwd;Class.forName("com.mysql.jdbc.Driver").newInstance();java.sql.Connectionconn=DriverManager.getConnection(url);java.sql.Statementstatement=conn.createStatement();Stringsql0="insertinto"+tableName+"values(2,"Mary","manager","2009-03-01",5000)";statement.executeUpdate(sql0);sql0="insertinto"+tableName+"values(3,"Tina","CEO","2009-05-01",50000)";//sql0="insertinto"+tableName//+"values(1,"Tom","worker","2009-03-01",5000)";statement.executeUpdate(sql0);Stringsql1="select*from"+tableName;java.sql.ResultSetrs=statement.executeQuery(sql1);%>插入两条记录后表中的数据雇员编号 雇员姓名 雇员工作 雇用日期 雇员工资 <%while(rs.next()){%><%=rs.getString(1)%>
<%=rs.getString(2)%> <%=rs.getString(3)%> <%=rs.getString(4)%> <%=rs.getString(5)%> <%}%><%rs.close();statement.close();conn.close();%>文件运行结果如图6.1所示。图6.1往表中插入两条记录l文件jdbcUpdate.jsp实现将emp表中编号为2的记录的工资修改为6000,并查看插入后表中的数据,其代码如下:<%@pagecontentType="text/html;charset=gb2312"%><%@pagelanguage="java"%><%@pageimport="com.mysql.jdbc.*"%><%@pageimport="java.sql.*"%>更新数据库表中的记录 <%//驱动程序名
StringdriverName="com.mysql.jdbc.Driver";//数据库用户名StringuserName="root";//密码StringuserPwd="123";//数据库名StringdbName="company";//表名StringtableName="emp";//连接字符串Stringurl="jdbc:mysql://localhost/"+dbName+"?user="+userName+"&password="+userPwd;Class.forName("com.mysql.jdbc.Driver").newInstance();java.sql.Connectionconn=DriverManager.getConnection(url);java.sql.Statementstatement=conn.createStatement();Stringsql0="update"+tableName+"setsalary=6000whereempno=2";statement.executeUpdate(sql0);Stringsql1="select*from"+tableName;java.sql.ResultSetrs=statement.executeQuery(sql1);%>更改第二条记录中的工资项后表中的数据雇员编号 雇员姓名 雇员工作 雇用日期 雇员工资 <%while(rs.next()){%>
<%=rs.getString(1)%> <%=rs.getString(2)%> <%=rs.getString(3)%> <%=rs.getString(4)%> <%=rs.getString(5)%> <%}%><%rs.close();statement.close();conn.close();%>文件运行结果如图6.2所示。图6.2修改表中的数据l文件jdbcDelete.jsp实现将emp表中编号为1的记录删除,并查看插入后表中的数据,其代码如下:<%@pagecontentType="text/html;charset=gb2312"%><%@pagelanguage="java"%><%@pageimport="com.mysql.jdbc.*"%><%@pageimport="java.sql.*"%>删除数据库表中的记录
<%//驱动程序名StringdriverName="com.mysql.jdbc.Driver";//数据库用户名StringuserName="root";//密码StringuserPwd="123";//数据库名StringdbName="company";//表名StringtableName="emp";//连接字符串Stringurl="jdbc:mysql://localhost/"+dbName+"?user="+userName+"&password="+userPwd;Class.forName("com.mysql.jdbc.Driver").newInstance();java.sql.Connectionconn=DriverManager.getConnection(url);java.sql.Statementstatement=conn.createStatement();Stringsql0="deletefrom"+tableName+"whereempno=1";statement.executeUpdate(sql0);Stringsql1="select*from"+tableName;java.sql.ResultSetrs=statement.executeQuery(sql1);%>删除第一条记录后表中的数据雇员编号 雇员姓名 雇员工作 雇用日期 雇员工资 <%while(rs.next()){%>
<%=rs.getString(1)%> <%=rs.getString(2)%> <%=rs.getString(3)%> <%=rs.getString(4)%> <%=rs.getString(5)%> <%}%><%rs.close();statement.close();conn.close();%>文件运行结果如图6.3所示。图6.3删除表中的记录7.6习题1.单选题(1)有关JavaBean的说法不正确的是()A.JavaBean其实就是一个Java类B.应用JavaBean可以将表示层和业务逻辑层分开C.编写JavaBean和编写普通的Java类要求一样D.JavaBean降低了JSP程序的复杂度,同时也增加了软件的可重用性
答案:C(1)以下不属于JavaBean作用范围的是()。A.requestB.sessionC.applicationD.scope答案:D(2)JSP中JavaBean是通过指令标签()来访问的。A.<%@page%>B.C.D.答案:B2.上机练习制作一个页面,如图7.8所示,在本页面设置表单提交后页面的背景颜色,文字的大小、字体和颜色。表单提交后转向的页面使用本页面的设置进行显示。要求应用JavaBean完成。表7.8设置页面属性答案:文件pageBean.java定义了实现该功能的JavaBean,文件代码如下:packagebean;importjava.io.*;publicclasspageBean{privateStringbgColor;privateStringtxtSize;privateStringtxtFont;privateStringtxtColor;publicpageBean(){bgColor="green";txtSize="4";txtFont="宋体";txtColor="red";}publicvoidsetbgColor(StringbgColor){this.bgColor=bgColor;}publicStringgetbgColor(){returnthis.bgColor;}
publicvoidsettxtSize(StringtxtSize){this.txtSize=txtSize;}publicStringgettxtSize(){returnthis.txtSize;}publicvoidsettxtFont(StringtxtFont){this.txtFont=txtFont;}publicStringgettxtFont(){returnthis.txtFont;}publicvoidsettxtColor(StringtxtColor){this.txtColor=txtColor;}publicStringgettxtColor(){returnthis.txtColor;}}文件pageJavaBean.jsp文件调用定义的JavaBean,通过JavaBean实现页面属性的设置。文件代码如下:<%@pagelanguage="java"import="java.util.*"pageEncoding="GB2312"%><%@pageimport="bean.pageBean"%>通过JavaBean设置页面属性 <%request.setCharacterEncoding("GB2312");%>>"face="<%=pageAtr.gettxtFont()%>"size="<%=pageAtr.gettxtSize()%>">JavaBean
密 码
login_success.jsp代码如下:<%@pagecontentType="text/html;charset=gb2312"%>
现在是:"+year+"年"+month+"月"+date+"日星期"+day+"
"+hours+"时"+minutes+"分"+seconds+"秒");%>
作者是:<%=request.getParameter("auther")%>文件运行结果如图4.3各图所示。图4.3上机练习(3)运行结果5.11习题1.单选题(1)下列选项中,()可以准确地获取请求页面的一个文本框的输入(文本框的名称为name)。A.request.getParameter(name)B.request.getParameter(”name”)C.request.getParameterValues(name)D.request.getParameterValues(“name”)答案:B(2)使用response对象进行重定向时,使用的方法是()。A.getAttributeB.setContentTypeC.sendRedirectD.setAttribute答案:C(3)session对象中用于设定指定名字的属性值,并且把它存储在session对象中的方法是()。A.setAttributeB.getAttributeNamesC.getValueD.getAttribute答案:A(4)在application对象中用()方法可以获得application对象中的所有变量名。A.getServerInfoB.nextElements()C.removeAttributeD.getRealPath答案:B2.上机练习 (1)制作一个购书页面,要求用户输入用户名和密码,并通过下拉菜单选择需要购买的图书,单击“确定”按钮,将信息发往服务器端,服务器端文件接收用户输入并输出用户名和所购图书。答案:读者选购图书页面buyBook.jsp代码如下:
请输入个人信息并选择要购买的图书
密 码
图 书
你要购买的图书为:《<%=book%>》
文件运行结果如图5.1所示。图5.1上机练习(1)运行结果(2)设计表单,制作读者选购图书的界面,当读者选中一本图书后,单击“确定”按钮,页面跳转到介绍该图书信息页面,要求使用response对象sendRedirect方法。答案:读者选购图书页面buyBook2.htm代码如下:
请输入姓名:
请输入考号:
1.IP协议对应OSI协议中的哪一层:
2.JSP文件中使用下面哪种语言作为服务器端程序默认的语言:
<%}%>提交后查看考试结果及答案页面answer.jsp代码如下:<%@pagecontentType="text/html;charset=gb2312"import="java.util.Date"%>
<%ObjectQ1=session.getValue("answer1");ObjectQ2=session.getValue("answer2");{if(Q1.equals("4")){out.print("第一题正确
");out.print("正确答案是:网络层。
");}else{ out.print("第一题错误
");out.print("正确答案是:网络层。
");}}{if(Q2.equals("2")){out.print("第二题正确
");out.print("正确答案是:Java。
");}else{out.print("第二题错误
");out.print("正确答案是:Java。
");}}%>提交题目后页面及查看考试结果页面如图5.4所示。图5.4上机练习(3)提交后页面及查看考试结果页面6.6习题1.单选题(1)创建数据表应该用以下()指令。A.INSERTB.CREATEC.SELECTD.UPDATE答案:B(2)创建数据表时如果要指定某一个字段为主键,应该用()参数。A.NOTNULLB.Auto_IncrementC.PrimaryKeyD.Key答案:C(3)要删除数据表中的一条记录应该用以下的()命令。A.INSERTB.DELETEC.SELECTD.UPDATE答案:B2.上机练习(1)启动MySQL的命令行管理工具,用MySQL的建库语句建立一个名为company的数据库。(2)在company库中建立雇员表emp,表的数据项及数据类型如下所示: empnoint(4)notnullprimarykey,enamevarchar(10),jobvarchar(10),hiredatedatetime,salarydouble(3)建立一个JSP文件,通过JDBC连接数据库,然后执行如下操作:l在雇员表emp中插入几行测试数据(英文数据,日期格式为YYYY-MM-DD)。l查看表中的数据。l修改表中的某条记录。l删除表中的某条记录。答案:(1)建库语句为:createdatabasecompany;(2)首先使用下列语句选中company数据库为当前数据库:usecompany;然后通过以下语句建立雇员表emp:createtableemp(empnoint(4),enamevarchar(10),jobvarchar(10),hiredatedatetime,salarydouble,primarykey(empno));(3)l文件jdbcAdd.jsp实现在emp表中插入两条记录并查看插入后表中的数据,其代码如下:<%@pagecontentType="text/html;charset=gb2312"%><%@pagelanguage="java"%><%@pageimport="com.mysql.jdbc.*"%><%@pageimport="java.sql.*"%>
文字大小