JSP-课后答案_red.star.circle是创建bean的类正确创建page周期bean对象的标记是-程序员宅基地

技术标签: jsp  

《JSP第三版》课后答案

第 1 章 JSP

1. 安装 Tomcat引擎的计算机需要事先安装 JDK 吗?
答:需要
2. 怎样启动和关闭 Tomcat服务器 ? 
答:bin 目录下使用 startup.bat启动 Tomcat服务器。bin 目录下使用 shutdown.bat关闭 Tomcat服务
3. Boy.jsp和 boy.jsp是否是相同的 JSP 文件名字?答:
答:不是
4. 请在 下建立一个名字为 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.jsp
C. http://127.0.0.1:8080/moon/A.jsp 
D. http://127.0.0.1:8080/moon/sea/A.jsp
答:D 

6.如果想修改 Tomcat 服务器的端口号,应当修改哪个文件?能否将端口号修改为 80?

答:修改 Tomcat服务器的 conf 目录下的主配置文件 server.xml 可以更改端口号 

若 Tomcat 服务器上没有其它占有 80 端口号的程序,可以将其修改为 80,否则不

第 2 章 JSP

1. "<%!"和" %>"之间声明的变量与" <%"和" %>"声明的变量有何不同 ? 
答:
"<%!"和" %>"声明的变量为类的成员变量 , 其所占的内存直到 Tomcat 服务器关闭才释放

"<%"和" %>"为类方法中声明的局部变量 , 仅在 JSP页面后继的程序片及表达
式中有效 . 
2. 如果有 2 个用户访问一个 JSP页面, 该页面中的 Java 程序片将被执行几次 ? 
答:2 次( 当有一个用户访问 JSP页面,JAVA 程序片就被访问一次 ). 
  1. 假设有两个不同用户访问下列 JSP页面 hello.jsp, 请问第一个访问和第二个访问 hello.jsp 页面的用户看到的页面的效果有何不同 ?


hello.jsp 

<%@ page contentType="text/html;charset=GB2312" %> 
<%@ page isThreadSafe="false" %> 
<BODY><HTML> 
<%! int sum=1; 
void add(int m){
     
sum = sum +m; } 
%> 
<% int n =100; 
add(n); 
%> 
<%=sum%> 
</BODY></HTML>:第一个客户看到结果是 101; 
第二个客户看到结果是 201; 
6. 请编写一个简单的 JSP页面,显示英文字母表。

<%@ page contentType="text/html;charset=GB2312" %> 
<HTML><BODY> 
<% 
for(char c='A';c<='Z';c++) 
{
     
out.println(" "+c); 
} 
%> 
</BODY></HTML> 
7. 请简单叙述 include指令标记和 include动作标记的不同 .

 答: 
include指令标记 :
是把被包含的文件的内容放于包含文件中 ,组成一个文件后编译运行. 

include 动作标记 : 
是把被包含的文件的运行结果放于包含文件运行产生的结果中,这 2 个文件各自编译运行 . 
  1. 编写三个 JSP页面 :main.jsp、circle.jsp、ladder.jsp,将三个 JSP页面保存同一 web服务目录中。main.jsp使用 include动作标记加载 circle.jsp和 ladder页面。 circle.jsp页面可以计算并显示圆的面积。 ladder.jsp页面可以计算并显示梯形的面积。当 circle.jsp和 ladder.jsp被加载时获取 main.jsp 页面 include动标记的 param 子标记提供的圆的半径以及梯形的上底、下底和高的值。
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); 
%> 
<font color=red size=4> 
我是被加载的文件,负责计算梯形的面积 <br> 
给我传递的上底,下底,高分别是 :<%=sideA%>,<%=sideB%>,<%=sideC%> <br>圆形的面积 :<%=getArea(a,b,c) %> </font> 
 答:
 main.jsp:
 
 <%@ page contentType="text/html;charset=GB2312" %> 
<HTML><BODY bgcolor=yellow> <% double r=3,a=2,b=5,c=2; %> 
<br>加载 circle.jsp 计算半径为 <%=r%>的圆的面积:<jsp:include page="circle.jsp"> 
<jsp:param name="sideR" value="<%=r%>"/> 
</jsp:include> 
<br>加载 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> 
</BODY> 
</HTML> 
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); 
%> 
<font color=blue size=4> 
我是被加载的文件,负责计算圆的面积 <br> 
给我传递的半径是 :<%=sideR%> 
<br>圆形的面积 :<%=getArea(r) %> 
</font

第 3 章 JSP 内置

1.假设 JSP使用的表单中有如下的 GUI( 复选框 ) 
<input type="checkbox" name="item" value="bird"><input type="checkbox" name="item" value="apple">苹果
<input type="checkbox" name="item" value="cat"><input type="checkbox" name="item" value="moon">月亮
该表单所请求的 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="text/html;Charset=GB2312" %>指令中的 Charset 首字母”C”大写.2: 
<% String str1=request.getParameter("number");
 byte c[]=str1.getBytes("ISO-8859-1"); 
str1=new String(c); 
%> 
  1. 编 写 两 个 JSP 页 面 inputString.jsp 和 computer.jsp,用 户 可 以 使 用inputString.jsp提供的表单输入一个字符串,并提交给 computer.jsp页面,该页面通过内置对象获取 inputString.jsp页面提交的字符串, 计算并显示该字符串的长度
inputString.jsp 

<%@ page contentType="text/html;Charset=GB2312" %> 
<HTML><BODY><Font size=5> 
 <FORM action="computer.jsp" method=post name=form> 
 <BR>请输入字符串 :<INPUT type="text" name="string" value=""></BR> 
 <INPUT TYPE="submit" value=" 提交" name="submit"> 
 <INPUT TYPE="reset" value="重置" > 
 </FORM> 
</FONT></BODY></HTML> 
computer.jsp 

<%@ page contentType="text/html;Charset=GB2312" %>
<HTML><BODY><Font size=5> 
  <% String yourString=request.getParameter("string"); %> 
  <P> 您输入的字符串是 :<%=yourString %></P> 
  <p>字符串的长度是 :<%=yourString.length() %></p> <a href = "inputString.jsp">return</a> 
</FONT></BODY></HTML> 
4. response调用 sendRedirect(URL: url)方法的作用是什么 ?:从一个页面跳转到 sendRedirect(URL: url)中 url 指定的页面 ,并且这种跳转是客户端跳转.
6. 一个用户在不同 Web 服务目录中的 session对象相同吗 ?:不相同 . 
7. 一个用户在同一 Web 服务目录的不同子目录的 session对象相同吗 ?:相同

第 4 章 JSP 与 Javabe

1. 假设 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. 
  1. 编写一个 JSP页面,该页面提供一个表单, 用户可以通过表单输入梯形的上
    底,下底和高的值,并提交给本 JSP 页面,该 JSP 页面将计算梯形的面积之任
    务交给一个 bean去完成。 JSP 页面使用 getProperty动作标记显示梯形的面积
ladder.jsp: 

<%@ page pageEncoding="GBk" %> 
<jsp:useBean id="ladder" class="pfc.Ladder" scope="page"/> 
<HTML><BODY bgcolor=yellow><Font size=3> 
<FORM action="" Method="post" > 
输入梯形上底、下底和高:
上底:<Input type=text name="top" value=0> 
下底:<Input type=text name="bottom" value=0>:<Input type=text name="height" value=0>
<BR>面积是: <jsp:getProperty name="ladder" property="area"/> </FONT></BODY></HTML> 

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; 
} 
} 
  1. 编写两个 JSP 页面 a.jsp 和 b.jsp,a.jsp 页面提供一个表单,用户可以通过表单输入矩形的两个边长提交给 b.jsp页面, b.jsp调用一个 bean去完成计算矩形面积的任务。 b.jsp页面使用 getProperty动作标记显示矩形的面积
a.jsp: 
<%@ page pageEncoding="GBk" %> <jsp:useBean id="ladder" class="pfc.Ladder" scope="page"<HTML><BODY bgcolor=yellow><Font size=3> <FORM action="b.jsp" Method="post" > 
输入矩形的长和宽:
长:<Input type=text name="longside" value=0>:<Input type=text name="width" value=0> 
<Input type=submit value="提交"> 
</FORM> 
</FONT></BODY></HTML> 
b.jsp: 

<%@ page pageEncoding="GBk" %> <jsp:useBean id="rectangle" class="pfc.Rectangle" scope="request"/>
<HTML><BODY bgcolor=yellow><Font size=3> 
<jsp:setProperty name="rectangle" property="*"/> 
矩形的长和宽:
长:<jsp:getProperty name="rectangle" property="longside"/>, 
宽:<jsp:getProperty name="rectangle" property="width"/>, 
<BR>面积是: <jsp:getProperty name="rectangle" property="area>
</FONT></BODY></HTML> 
Rectangle.java:

 package pfc; 
public class Rectangle 
{
     
double longside=0,width=0,area=-1; 
public double getArea() 
{
     area=longside*width; return area; 
} 
public double getLongside() {
     
return longside; } 
public void setLongside(double longside) {
     
this.longside = longside; 
} 
public double getWidth() {
     
return width; 
} 
public void setWidth(double width) {
     
this.width = width; 
} 

第 5 章 Java Servlet

1. servlet对象是在服务器端还是在客户端创建的 ?:服务器端 . 
2. servlet对象被创建后首选调用 init 方法还是 service方法?:init 方法. 
3. “servlet第一次被请求加载时调用 init 方法,当后续的客户请求 servlet对象时 , 
servlet对象不再调用 init 方法”
 这样的说法是否正确 ?:正确. 
  1. 假设创建 servlet 的类是 tom.jiafei.Dalian,创建的 servlet 对象的名字是myservlet,应当怎样配置 web.xml文件?
<?xml version=1.0 ” e ncoding="ISO -8859-1"?> 
<web-app> 
<servlet> <!--创建一个 servlet对象 --> 
<servlet-name>myservlet</servlet-name> <!--对象名 --> 
<servlet-class>tom.jiafei.Dalian</servlet-class><!--指定创建对象的 servlet --> 
</servlet> 
<servlet-mapping> <!--为 Servlet 进行 映射地址 --><!-- 必须与 Servlet 标记中的 servlet-name指定的名称相同 -->

 <servlet-name>myservlet</servlet-name><!--具体的映射路径, 前面必须有一个/ --> 
<url-pattern>/lookHello</url-pattern>

 </servlet-mapping>..</web-app> 
5. 如果 Servlet 类不重写 service方法,那么应当重写哪两个方法?

答:doGet方法或 doPost
6. 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对象获取用户提交参数 
7. Servlet对象怎样获得用户的会话对象 ?:doGet()doPost()方法中使用获取当前会话对象 

. HttpSession session=request.getSession(true);

一个用户在不同的 Servlet 中获取的 session 对象是完全相同的,不同的用户的session对象互不相

第 6 章 MVC

1. 在 JSP中,MVC 模式中的数据模型之角色由谁担当 ?: 
由 Java Bean或 EJB 充当. 
2. 在 JSP中,MVC 模式中的控制器之角色由谁担当 ?: 
一个或多个 Servlet 对象充当 . 
3. 在 JSP中,MVC 模式中的视图之角色由谁担当 ?: 
由一个或多个 JSP页面或 HTML 页面充当 . 
4. MVC 的好处是什么 ?: 
MVC 模式的核心思想是有效地组合“视图” 、“模型”和“控制器”。

在 JSP技术中,视图是一个或多个 JSP页面,其作用主要是向控制器提交必要的数据和为模型提供数据显示;

模型是一个或多个 Javabean对象,用于存储数据;

控制器是一个或多个 servlet 对象,根据视图提交的要求进行数据处理操作,并将有关的结果存储到 Javabean中,然后 servlet 使用重定向方式请求视图中的某个 JSP页面更新显示
5. MVC 模式中用到的 Javabean是由 JSP页面还是 servlet负责创建 ?: 
是 servlet

第 7 章 在 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){
     } 
4. 使用预处理语句的好处是什么?

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

第 8 章 JSP 中的文件

1. File 对象能读写文件吗?

答:不
2. File 对象怎样获取文件的长度?

答:调用 public long length()
3. 准备读取文件“ A.java”,下列哪些是正确创建输入流的代码?
4. A.try{
     FileInputStream in=new FileInputStream(“A.java );} 
catch(IOException e){
    } 

B. try{
     InputStream in=new InputStream(“A.java );} 
catch(IOException e){
    } 

C. try{
     FileReader in=new FileInputStream(new File(“A.java ));} 
catch(IOException e){
    } 

D. try{
     FileReader in=new FileReader (new File(“A.java ));} 
catch(IOException e){
    } 

答:A 和 D
4. RandomAccessFile类创建的流在读写文件时有什么特点?

答:RandomAccessFile类既不是输入流类 InputStream类的子类,
也不是输出流类 Outputstream类的子类。 想对一个文件进行读写操作时, 
可以创建一个指向该文件的 RandomAccessFile流,
这样我们既可以从这个流中读取这个文件的数据,也可以通过这个流给这个文件写入数
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_43929303/article/details/110012017

智能推荐

数据导入到Access特别慢的解决办法-程序员宅基地

文章浏览阅读1k次。数据导入到Access有人说用事务,我在开发中用了事务还是特别慢,可能是因为Access数据库不支持批量执行SQL语句的原因吧,虽然微软建议使用ADO.NET操作数据库,但对于Access来说效率太差了,可有时候又迫不得已只能用Access,那么我们只用换一种操作数据库的方式了,这次用到了ADODB,虽然ADODB已经过时了,但它对数据库的直接操作还是要比封装好的ADO.NET快很多。下面是代码。..._excel向access追加记录 很慢 vb.net

ffmpeg下载安装教程_ffmpeg官网下载-程序员宅基地

文章浏览阅读2.1k次。ffmpeg下载安装教程_ffmpeg官网下载

内核开发基础——'make menuconfig' requires the ncurses libraries-程序员宅基地

文章浏览阅读92次。root@zhangbin-desktop-ubuntu:/usr/src/linux-headers-2.6.32-27# make menuconfig HOSTCC scripts/basic/fixdep HOSTCC scripts/basic/docproc HOSTCC scripts/basic/hash HOSTCC scripts/kconfig..._make menuconfig' requires the ncurses libraries.

Emacs之ditaa与PlantUML与dot绘图环境配置-程序员宅基地

文章浏览阅读688次。本文介绍如何使用ditaa与PlantUML与dot进行绘制流程图。ditaa与PlantUML都依赖java环境,所以事先需要有Java环境(不管我们使用的是何种OS)。Java环境的设置很简单,如果本地没有Java环境,请到Oracle官网下载之,这里就省略了。而dot绘图语言需要安装graphviz软件。本文作者使用的Windows环境..._ditaa图 plantuml

Ajax框架,DWR介绍,应用,样例-程序员宅基地

文章浏览阅读93次。使用Ajax框架1. 简化JavaScript的开发难度2. 解决浏览器的兼容性问题3. 简化开发流程经常使用Ajax框架Prototype一个纯粹的JavaScript函数库,对Ajax提供良好支持jQuery1.很优秀的JavaScript库,对Ajax提供了良好的支持2.与Prototype设计思想不同的是在使用jQuery之后,开..._dwr ajax简单介绍

如何在vue中拖动改变侧边栏div的宽度-程序员宅基地

文章浏览阅读4k次。先贴html代码<template> <div class="box-wrap"> <div class="box" id="box"></div> <div class="drag-btn" id="dragBtn" @mousedown.stop.prevent="mouseDownLeft"></div>..._vue 侧边栏拉伸宽度

随便推点

java根据IP获取当前区域天气信息-程序员宅基地

文章浏览阅读476次。java根据IP获取当前区域天气信息大致思路是客户端发起请求,我们首先根据请求获取到外网IP,然后再根据外网IP获取到用户所在城市,最后根据城市获取到天气信息获取外网IP万网获取外网IP地址: http://www.net.cn/static/customercare/yourip.asp/** * @Description:获取客户端外网ip 此方法要接入互联网才行,内网不行 **/public static String getPublicIp() { try {

python实现通讯录功能_Python 实现简单的电话本功能-程序员宅基地

文章浏览阅读1k次。#!/usr/bin/python# -*- coding: utf-8 -*-import reclass PhoneBook(object):'''这是一个电话簿脚本。该脚本能够实现AddContact:添加联系人信息ShowContact:查找姓名显示联系人SaveContacts:存储联系人到 TXT 文档(存储格式——姓名:号码/号码)LoadContacts:从 txt 文档中载入联系..._python输入电话号码按列显示

mysql添加列和索引_添加列且甚索引-程序员宅基地

文章浏览阅读3.8k次。mysql添加列 alter table to_o2o_point_record add COLUMN channel VARCHAR(64) NULL DEFAULT NULL COMMENT ‘积分渠道’; alter table to_o2o_point_record add COLUMN channel VARCHAR(64) NULL DEFAULT NULL COMMENT ‘积分渠_添加列且甚索引

初识函数-----函数的定义及用法_程序设计函数的定义是-程序员宅基地

文章浏览阅读1.9k次,点赞4次,收藏9次。初识函数-----函数的定义及用法_程序设计函数的定义是

python在医学领域应用 课程_《Python程序设计与应用》在线课程使用说明-程序员宅基地

文章浏览阅读492次。《Python程序设计与应用》在线课程使用说明网页版链接 20200223 更新一、简介本课程内容包括Python基础语法与Python应用(数据处理、可视化等)。具体章节:Python基础、内置基本数据类型、程序结构、函数、异常处理、集合与字典类型、文件操作、Python应用(科学计算numpy、pandas、matplotlib、seaborn、网络信息安全基础)。主要资源:超星MOOC平台:..._python语言程序设计与医学实践

c/c++ assert的头文件_c++ assert头文件-程序员宅基地

文章浏览阅读2.5k次。#include <iostream>#include <assert.h>using namespace std;int writestr(const char *p){ assert(0!=p);//如果p等于0,则报错误 cout<<p<<endl;}int _tmain(int argc, _TCHAR* argv[]){ char *str="hello"; writestr(str); ..._c++ assert头文件