2021-06-15

《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文件,在上一行添加: ③ 使用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.jsp D. http://127.0.0.1:8080/moon/sea/A.jsp答:D6.如果想修改Tomcat服务器的端口号,应当修改哪个文件?能否将端口号修改为80?答:修改Tomcat服务器的conf目录下的主配置文件server.xml可以更改端口号. 若Tomcat服务器上没有其它占有80端口号的程序,可以将其修改为80,否则不能。
    第2章 JSP语法1."<%!"和"%>"之间声明的变量与"<%"和"%>"声明的变量有何不同?答: "<%!"和"%>"声明的变量为类的成员变量,其所占的内存直到Tomcat服务器关闭才释放."<%"和"%>"为类方法中声明的局部变量,仅在JSP页面后继的程序片及表达式中有效.2. 如果有2个用户访问一个JSP页面,该页面中的Java程序片将被执行几次?答:2次(当有一个用户访问JSP页面,JAVA程序片就被访问一次).5. 假设有两个不同用户访问下列JSP页面hello.jsp,请问第一个访问和第二个访问hello.jsp页面的用户看到的页面的效果有何不同?hello.jsp<%@ page contentType=“text/html;charset=GB2312” %><%@ page isThreadSafe=“false” %><%! int sum=1;void add(int m){ sum = sum +m;}%><% int n =100;add(n);%> <%=sum%>答:第一个客户看到结果是101; 第二个客户看到结果是201;6. 请编写一个简单的JSP页面,显示英文字母表。<%@ page contentType=“text/html;charset=GB2312” %><% for(char c=‘A’;c<=‘Z’;c++) { out.println(" “+c); }%>7. 请简单叙述include指令标记和include动作标记的不同.答: include指令标记:是把被包含的文件的内容放于包含文件中,组成一个文件后编译运行.include动作标记: 是把被包含的文件的运行结果放于包含文件运行产生的结果中,这2个文件各自编译运行.8. 编写三个JSP页面:main.jsp、circle.jsp、ladder.jsp,将三个JSP页面保存在同一web服务目录中。main.jsp使用include动作标记加载circle.jsp和ladder.jsp页面。circle.jsp页面可以计算并显示圆的面积。ladder.jsp页面可以计算并显示梯形的面积。当circle.jsp和ladder.jsp被加载时获取main.jsp页面include动作标记的param子标记提供的圆的半径以及梯形的上底、下底和高的值。答:main.jsp:<%@ page contentType=“text/html;charset=GB2312” %><% double r=3,a=2,b=5,c=2;%>
    加载circle.jsp计算半径为 <%=r%>的圆的面积:<jsp:include page=“circle.jsp”><jsp:param name=“sideR” value=”<%=r%>"/></jsp:include>
    加载ladder.jsp计算上底,下底,高为<%=a%>,<%=b%>,<%=c%>的梯形面积:<jsp:include page=“ladder.jsp”><jsp:param name=“sideA” value="<%=a%>"/><jsp:param name=“sideB” value="<%=b%>"/><jsp:param name=“sideC” value="<%=c%>"/></jsp:include>ladder.jsp:<%@ page contentType=“text/html;charset=GB2312” %><%! public String getArea(double a,double b,double c){if(a>0&&b>0&&c>0){double area=((a+b)c)/2.0;return “”+area;}else{return (""+c+“传递的参数小于零,出现错误!” );}}%><% String sideA=request.getParameter(“sideA”);String sideB=request.getParameter(“sideB”);String sideC=request.getParameter(“sideC”);double a=Double.parseDouble(sideA);double b=Double.parseDouble(sideB);double c=Double.parseDouble(sideC);%>我是被加载的文件,负责计算梯形的面积
    给我传递的上底,下底,高分别是:<%=sideA%>,<%=sideB%>,<%=sideC%>
    圆形的面积:<%=getArea(a,b,c) %>
    circle.jsp:<%@ page contentType=“text/html;charset=GB2312” %><%!public String getArea(double r){if(r>0){double area=3.14
    r*r;return “”+area;}else{return (""+r+“传递的参数小于零,出现错误!请重新检查r的数值!” );}}%><% String sideR=request.getParameter(“sideR”);double r=Double.parseDouble(sideR);%>我是被加载的文件,负责计算圆的面积
    给我传递的半径是:<%=sideR%>
    圆形的面积:<%=getArea® %>

第4章 JSP 内置对象
1.假设JSP使用的表单中有如下的GUI(复选框)鸟苹果猫月亮该表单所请求的JSP可以使用内置对象request获取该表单提交的数据,那么,下列哪些是request获取该表单提交的值的正确语句?A. String a=request.getParameter(“item”);B. String b=request.getParameter(“checkbox”);C. String c[]=request.getParameterValues(“item”);D. String d[]=request.getParameterValues(“checkbox”);答: C.2. 如果表单提交的信息中有汉字,接收该信息的页面应做怎样的处理?答:处理方法有2种:第1种:<%@ page contentType=“textcml;Charset=GB2312” %>指令中的Charset首字母”C”大写.第2种: <% String str1=request.getParameter(“number”); byte c[]=str1.getBytes(“ISO-8859-1”); str1=new String©;%>3.编写两个JSP页面inputString.jsp和computer.jsp,用户可以使用inputString.jsp提供的表单输入一个字符串,并提交给computer.jsp页面,该页面通过内置对象获取inputString.jsp页面提交的字符串,计算并显示该字符串的长度。答: inputString.jsp<%@ page contentType=“textcml;Charset=GB2312” %>
请输入字符串:
computer.jsp<%@ page contentType=“textcml;Charset=GB2312” %> <% String yourString=request.getParameter(“string”); %>

您输入的字符串是:<%=yourString %>

字符串的长度是:<%=yourString.length() %>

return4. response调用sendRedirect(URL: url)方法的作用是什么?答:从一个页面跳转到sendRedirect(URL: url)中url指定的页面,并且这种跳转是客户端跳转.5. 略6. 一个用户在不同Web服务目录中的session对象相同吗?答:不相同.7. 一个用户在同一Web服务目录的不同子目录的session对象相同吗?答:相同. 第5章 JSP与Javabean1. 假设Web服务目录mymoon中的JSP页面要使用一个bean,该bean的包名为blue.sky。请说明,应当怎样保存bean的字节码文件?答:(1)在当前Web服务目录下建立如下目录结构: (2)Web服务目录\WEB-INF\classes (3)根据类的包名,在目录classes下建立相应的子目录.即: Web服务目录\WEB-INF\classes\blue\sky (4)将获得的字节码文件保存在其中.2. tom.jiafei.Circle是创建bean的类,下列哪个标记是正确创建session周期bean的标记?<jsp:useBean id=“circle” class=“tom.jiafei.Circle” scope=“page”/><jsp:useBean id=“circle” class=“tom.jiafei.Circle” scope=“request”/><jsp:useBean id=“circle” class=“tom.jiafei.Circle” scope=“session”/><jsp:useBean id=“circle” type=“tom.jiafei.Circle” scope=“session”/>答: <jsp:useBean id=“circle” class=“tom.jiafei.Circle” scope=“session”/>3. 假设创建bean的类有一个int型的属性number,下列哪个方法是设置该属性值的正确方法?A. public void setNumber(int n) B. void setNumber(int n) { number=n; { number =n; } } C. public void SetNumber(int n) D. public void Setnumber(int n) { number =n; { number =n; } } 答: A.5. 编写一个JSP页面,该页面提供一个表单,用户可以通过表单输入梯形的上底,下底和高的值,并提交给本JSP页面,该JSP页面将计算梯形的面积之任务交给一个bean去完成。JSP页面使用getProperty动作标记显示梯形的面积。答:ladder.jsp:<%@ page pageEncoding=“GBk” %><jsp:useBean id=“ladder” class=“pfc.Ladder” scope=“page”/> 输入梯形上底、下底和高: 上底: 下底: 高: <jsp:setProperty name=“ladder” property="*"/> 输入梯形上底、下底和高: 上底:<jsp:getProperty name=“ladder” property=“top”/>, 下底:<jsp:getProperty name=“ladder” property=“bottom”/>, 高:<jsp:getProperty name=“ladder” property=“height”/>.
面积是: <jsp:getProperty name=“ladder” property=“area”/>
Ladder.java:package pfc;public class Ladder{double top=0,bottom=0,height=0,area=-1;public double getArea() { area=(top+bottom)*height/2; return area; } public double getBottom() { return bottom;}public void setBottom(double bottom) { this.bottom = bottom;}public double getHeight() { return height;}public void setHeight(double height) { this.height = height;}public double getTop() { return top;}public void setTop(double top) { this.top = top;}}
第6章Java Servlet 基础

  1. servlet对象是在服务器端还是在客户端创建的?
    答:服务器端.

  2. servlet对象被创建后首选调用init方法还是service方法?
    答:init方法.

  3. “servlet第一次被请求加载时调用init方法,当后续的客户请求servlet对象时, servlet对象不再调用init方法”, 这样的说法是否正确?
    答:正确.

  4. 假设创建servlet的类是tom.jiafei.Dalian,创建的servlet对象的名字是myservlet,应当怎样配置web.xml文件?
    答:

<?xml version=“1.0” e ncoding="ISO-8859-1"?> myservlet<rvlet-name> tom.jiafei.Dalian<rvlet-class> <rvlet> myservlet<rvlet-name> /lookHello <rvlet-mapping> …..
  1. 如果Servlet类不重写service方法,那么应当重写哪两个方法?
    答:doGet方法或doPost方法。

  2. HttpServletResponse类的sendRedirect方法和RequestDispatcher类的forward方法有何不同?
    答:
    javax.servlet.http .HttpServletResponse提供的方法
    void sendRedirect(String location) throws IOException
    客户端跳转.即当前页面可用request对象获取用户提交参数,而目标页面都不可用request对象获取用户提交参数.
    转发
    javax.servlet .RequestDispatcher接口提供的方法
    void forward(ServletRequest request, ServletResponse response)
    // Forwards a request from a servlet to another resource (servlet, JSP file, or HTML file) on the server.
    服务器跳转.即当前页面和目标页面都可用request对象获取用户提交参数.

  3. Servlet对象怎样获得用户的会话对象?
    答:
    在doGet()或doPost()方法中使用获取当前会话对象.
    HttpSession session=request.getSession(true);
    一个用户在不同的Servlet中获取的session对象是完全相同的,不同的用户的session对象互不相同。

第7章 MVC模式
在JSP中,MVC模式中的数据模型之角色由谁担当?
答:
由Java Bean或EJB充当.

在JSP中,MVC模式中的控制器之角色由谁担当?
答:
一个或多个Servlet对象充当.

在JSP中,MVC模式中的视图之角色由谁担当?
答:
由一个或多个JSP页面或HTML页面充当.

MVC的好处是什么?
答:
MVC模式的核心思想是有效地组合“视图”、“模型”和“控制器”。在JSP技术中,视图是一个或多个JSP页面,其作用主要是向控制器提交必要的数据和为模型提供数据显示;模型是一个或多个Javabean对象,用于存储数据;控制器是一个或多个servlet对象,根据视图提交的要求进行数据处理操作,并将有关的结果存储到Javabean中,然后servlet使用重定向方式请求视图中的某个JSP页面更新显示。

MVC模式中用到的Javabean是由JSP页面还是servlet负责创建?
答:
是servlet负责

第8章 在JSP中使用数据库

  1. 加载MySQL的JDBC数据库驱动程序代码是什么?
    答:
    try{ Class.forName(“com.mysql.jdbc.Driver”);
    }
    catch(Exception e){ }

2.加载SQL server的JDBC数据库驱动程序代码是什么?
答:
try{ Class.forName(“com.microsoft.sqlserver.jdbc.SQLServerDriver”);
}
catch(Exception e){ }

3.使用预处理语句的好处是什么?
答:
预处理语句PreparedStatement会将传入的SQL命令封装在PreparedStatement对象中,事先进行预编译处理等待使用。
当有单一的SQL语句多次执行时,用PreparedStatement类会比Statement类更有效率。

  1. 建立数据warehouse,建表product,共4个字段number(char),name(char),madeTime(datetime),price(float)。
    采用MVC+JDBC+MySql,实现向表中插入记录,并在页面展现查询结果
    (答案见第8章课堂练习)
  • 0
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值