javaweb编程技术第三版微课版课后答案(javaweb编程技术第三版沈

http://www.itjxue.com  2023-02-03 04:36  来源:未知  点击次数: 

java语言程序设计(第三版)清华大学出版社答案

1.5请参照本章例题,编写一个C程序,输出以下信息:

**************************

Very Good!

**************************

解:

mian()

{printf(“**************************”);

printf(“\n”);

printf(“Very Good!\n”);

printf(“\n”);

printf(“**************************”);

}

1.6 编写一个程序,输入a、b、c三个值,输出其中最大值。

解:

mian()

{int a,b,c,max;

printf(“请输入三个数a,b,c:\n”);

scanf(“%d,%d,%d”,a,b,c);

max=a;

if(maxb)

max=b;

if(maxc)

max=c;

printf(“最大数为:“%d”,max);

}

第三章

3.6写出以下程序运行的结果。

main()

{char c1=’a’,c2=’b’,c3=’c’,c4=’\101’,c5=’\116’;

printf(“a%cb%c\tc%c\tabc\n”,c1,c2,c3);

printf(“\t\b%c %c”,c4,c5);

}

解:

aaㄩbbㄩㄩㄩccㄩㄩㄩㄩㄩㄩabc

AㄩN

3.7 要将"China"译成密码,译码规律是:用原来字母后面的第4个字母代替原来的字母.例如,字母"A"后面第4个字母是"E"."E"代替"A"。因此,"China"应译为"Glmre"。请编一程序,用赋初值的方法使cl、c2、c3、c4、c5五个变量的值分别为,’C’、’h’、’i’、’n’、’a’,经过运算,使c1、c2、c3、c4、c5分别变为’G’、’l’、’m’、’r’、’e’,并输出。

解:

#include stdio.h

main()

{ char c1=’C’,c2=’h’,c3=’i’,c4=’n’,c5=’a’;

c1+=4;

c2+=4;

c3+=4;

c4+=4;

c5+=4;

printf("密码是%c%c%c%c%c\n",c1,c2,c3,c4,c5);

}

运行结果:

密码是Glmre

3.9求下面算术表达式的值。

(1)x+a%3*(int)(x+y)%2/4

设x=2.5,a=7,y=4.7

(2)(float)(a+b)/2+(int)x%(int)y

设a=2,b=3,x=3.5,y=2.5

(1)2.5

(2)3.5

3.10写出程序运行的结果。

main()

{int i,j,m,n;

i=8;

j=10;

m=++i;

n=j++;

printf(“%d,%d,%d,%d”,i,j,m,n);

}

解:

9,11,9,10

3.12 写出下面表达式运算后a的值,设原来a=12。设a和n都已定义为整型变量。

(1)a+=a (2) a-=2 (3) a*=2+3 (4)a/=a+a

(5) a%=(n%=2),n的值等于5

(6)a+=a-=a*=a

解:

(1) 24 (2) 10 (3) 60 (4) 0 (5) 0 (6) 0

第四章

4.4若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=’a’,c2=’b’。想得到以下输出格式和结果,请写出程序(包括定义变量类型和设计输出)。

a=_3_ _b=_4_ _c=_5

x=1.200000,y=2.400000,z=-3.600000

x+y=_3.600_ _y+z=-1.20_ _z+x=-2.40

c1=ˊaˊ_or_97(ASCII)

c2=ˊbˊ_or_98(ASCII)

main()

{int a=3,b=4,c=5;

long int u=51274,n=128765;

float x=1.2,y=2.4,z=3.6;

char c1=’a’,c2=’b’;

printf("a=%2d b=%2d c=%2d\n",a,b,c);

printf("x=%f,y=%f,z=%f\n",x,y,z);

printf("x+y=%5.2f y+z=%5.2f z+x=%5.2f\n",x+y,y+z,z+x);

printf("u=%6ld n=%9ld\n",u,n);

printf("%s %s %d%s\n","c1=’a’","or",c1,"(ASCII)");

printf("%s %s %d%s\n","c2=’a’","or",c2,"(ASCII)");

}

4.7用scanf下面的函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=ˊAˊ,c2=ˊaˊ,问在键盘上如何输入?

main()

{

int a,b;float x,y;char c1c2;

scanf("a=%d_b=%d",a,b);

scanf("_x=%f_y=%e",x,y);

scanf("_c1=%c_c2=%c",c1,c2);

}

a=3_b=7

_x=8.5_y=71.82

_c1=A_c2=a

4.8设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。请编程序。

main()

{float r,h,C1,Sa,Sb,Va,Vb;

scanf("%f,%f",r,h);

C1=2*3.14*r;

Sa=3.14*r*r;

Sb=4*Sa;

Va=4*3.14*r*r*r/3;

Vb=Sa*h;

printf("C1=%.2f\n",C1);

printf("Sa=%.2f\nSb=%.2f\nVa=%.2f\nVb=%.2f\n",Sa,Sb,Va,Vb);

}

4.9输入一个华氏温度,要求输出摄氏温度。公式为

c=5(F-32)/9

输出要求有文字说明,取位2小数。

main()

{float F,c;

scanf("%f",F);

c=5*(F-32)/9;

printf("c=%.2f",c);

}

4.10编程序,用getchar函数读入两个字符给c1、c2,然后分别用函数和函数输出这两个字符。并思考以下问题:(1)变量c1、c2应定义为字符型或整形?抑二者皆可?(2)要求输出c1和c2值的ASCII码,应如何处理?用putchar函数还是printf函数?(3)整形变量与字符变量是否在任何情况下都可以互相代替?如:

char c1,c2;

int c1,c2;

是否无条件的等价?

#include"stdio.h"

main()

{char c1,c2;

c1=getchar();c2=getchar();

putchar(c1);putchar(’\n’);putchar(c2);putchar(’\n’);

}

#include"stdio.h"

main()

{char c1,c2;

c1=getchar();c2=getchar();

printf("c1=%d c2=%d\n",c1,c2);

printf("c1=%c c2=%c\n",c1,c2);

}

第五章

5.1 什么是算术运算?什么是关系运算?什么是逻辑运算?

解:略。

5.2 C语言中如何表示“真”和“假”?系统如何判断一个量的“真”和“假”?

解:设有一个逻辑表达式,若其结果为“真”,则以1表示;若其结果为“假”,则以0表示。但是判断一个逻辑量的值时,以0代表“真”,以非0代表“假”。例如35的值为“真”,系统给出35的值为1。

5.3 写出下面各逻辑表达式的值。设a=3,b=4,c=5。

(1) a+bcb==c

(2) a||b+cb-c

(3) !(ab)!c||1

(4) !(x=a)(y=b)0

(5) !(a+b)+c-1b+c/2

解:

(1) 0

(2) 1

(3) 1

(4) 0

(5) 1

5.4 有3个整数a、b、c,由键盘输入,输出其中最大的数。

解:

方法一

#include stdio.h

main()

{ int a,b,c;

printf("请输入3个整数:");

scanf("%d,%d,%d",a,b,c);

if(ab)

if(bc) printf("max=%d\n",c);

else printf("max=%d\n",b);

else if(ac) printf("max=%d\n",c);

else printf("max=%d\n",a);

}

方法二:使用条件表达式,可以使程序更加简明、清晰。

程序如下:

#include stdio.h

main()

{ int a,b,c,temp,max;

printf("请输入3个整数:");

scanf("%d,%d,%d",a,b,c);

temp=(ab)?a:b; /* 将a和b中的大者存人temp中 */

max=(tempc)?temp:c; /* 将a和b中的大者与c比较,取最大者*/

printf("3个整数的最大数是%d\n”,max);

}

5.5 有一函数:

写一程序,输入x值,输出y值。

解:

#include stdio.h

main()

{int x,y;

printf("输入x:");

scanf("%d",x);

if(x1) /* x1 */

{ y=x;

printf("x=%3d, y=x=%d\n",x,y);

}

else if (x10) /* 1≤x-10 */

{ y=2*x-1;

printf("x=%3d, y=2*x-1=%d\n",x,y);

}

else /* x≥10 */

{ y=3*x-11;

printf("x=%3d, y=3*x-11=%d\n",x,y);

}

}

5.6 给一个百分制成绩,要求输出等级’A’、’B’、’C’、’D’、’E’。90分以上为’A’,80~90分为’B’,70~79分为’C’,60分以下为’D’。

解:

程序如下:

#include stdio.h

main()

{ float score;

char grade;

printf("请输入学生成绩:");

scanf("%f",score);

while(score100||(score0)

{ printf("\n输入有误,请重新输入:");

scanf("%f",score);

}

switch((int)(score/10))

{ case 10:

case 9: grade=’A’;break;

case 8: grade=’B’;break;

case 7: grade=’C’;break;

case 6: grade=’D’;break;

case 5:

case 4:

case 3:

case 2:

case 1:

case 0: grade=’E’;

}

printf("成绩是%5.1f,相应的等级是%c。\n",score,grade);

}

说明:对输入的数据进行检查,如小于0或大于100,要求重新输入。(int)(score/10)的作用是将 (score/10) 的值进行强制类型转换,得到一个整型值。

5.7 给定一个不多于5位的正整数,要求:① 求它是几位数;② 分别打印出每一位数字;③ 按逆序打印出各位数字。例如原数为321,应输出123。

解:

#include stdio.h

main()

{ long int num;

int indiv,ten,hundred,thousand,ten_thousand,place;

/*分别代表个位、十位、百位、千位、万位和位数*/

printf("请输入一个整数(0~99999):");

scanf("%ld",num);

if (num9999) place=5;

else if(num999) place=4;

else if(num99) place=3;

else if(num9) place=2;

else place=1;

printf("place =%d\n", place);

ten_thousand=num/10000;

thousand=num/1000%10;

hundred=num/100%10;

ten=num%100/10;

indiv=num%10;

switch(place)

{ case 5: printf("%d,%d,%d,%d,%d",ten_thousand,thousand,hundred,ten,indiv);

printf("\n反序数字为;");

printf("%d%d%d%d%d\n",indiv,ten,hundred,thousand,ten_thousand);

break;

case 4: printf("%d,%d,%d,%d",thousand,hundred,ten,indiv);

printf("\n反序数字为:");

printf("%d%d%d%d\n",indiv,ten,hundred,thousand);

break;

case 3: printf("%d,%d,%d",hundred,ten,indiv);

printf("\n反序数字为:");

printf("%d%d%d\n",indiv,ten,hundred);

break;

case 2: printf("%d,%d",ten,indiv);

printf("\n反序数字为:");

printf("%d%d\n",indiv,ten);

break;

case 1: printf("%d",indiv);

printf("\n反序数字为:");

printf("%d\n",indiv);

break;

}

}

5.8 企业发放的奖金根据利润提成。利润I低于或等于10万元时,奖金可提成10% ;利润高于10万元,低于20万元(100000I≤200000)时,其中10万元按10%提成,高于10万元的部分,可提成7.5% ;200000I≤400000时,其中20万元仍按上述办法提成(下同),高于20万元的部分按5%提成;400000I≤600000时,高于40万元的部分按3%提成;600000〈I≤1000000时,高于60万的部分按1.5%提成;I1000000时,超过100万元的部分按1%提成。从键盘输入当月利润I,求应发放奖金总数。要求:(1)用if语句编程序;(2)用switch语句编程序。

解:计算利润时,要特别注意不同利润的不同提成比例。例如,利润为15万元,其中有10万元按10%的比例提成,另外5万元则按7.5%提成。

(1) 用if语句编程序。

#include stdio.h

main()

{ long i;

float bonus,bon1,bon2,bon4,bon6,bon10;

bon1=100000*0.1; /*利润为10万元时的奖金*/

bon2=bon1+100000*0.075; /*利润为20万元时的奖金*/

bon4=bon2+200000*0.05; /*利润为40万元时的奖金*/

bon6=bon4+200000*0.03; /*利润为60万元时的奖金*/

bon10=bon6+400000*0.015; /*利润为100万元时的奖金*/

printf("请输入利润i:");

scanf("%ld",i);

if(i=100000)

bonus=i*0.1; /*利润在10万元以内按0.1提成奖金*/

else if(i=200000)

bonus=bon1+(i-100000)*0.075; /*利润在10万至20万元时的奖金*/

else if(i=400000)

bonus=bon2+(i-200000)*0.05; /*利润在20万至40万元时的奖金*/

else if(i=600000)

bonus=bon4+(i-400000)*0.03; /*利润在40万至60万元时的奖金*/

else if(i=1000000)

bonus=bon6+(i-600000)*0.015; /*利润在60万至100万元时的奖金*/

else

bonus=bon10+(i-1000000)*0.01; /*利润在100万元以上时的奖金*/

printf(”奖金是%10.2f\n",bonus);

}

此题的关键在于正确写出每一区间的奖金计算公式。例如利润在10万元至20万时,奖金应由两部分组成:①利润为10万元时应得的奖金。即100000ⅹ0.1;②10万元以上部分应得的奖金。即(num-100000)ⅹ0.075。同理,20万~40万这个区间的奖金也应由两部分组成:①利润为20万元时应得的奖金,即100000ⅹ0.1ⅹ10万ⅹ0.075;②20万元以上部分应得的奖金,即(num-200000)ⅹ0.05。程序中先把10万、20万、40万、60万、100万各关键点的奖金计算出来,即bon1、bon2、bon4、bon6、hon10;然后再加上各区间附加部分的奖金。

(2) 用switch语句编程序。

输入利润i,确定相应的提成等级branch

根据branch确定奖金值

0 奖金=i*0.1

1 奖金=bon1+(i-105)*0.075

2 奖金=bon2+(i-2*105)*0.05

3

4 奖金=bon4+(i-4*105)*0.03

5

6 奖金=bon6+(i-6*105)*0.015

7

8

9

10 奖金=bon10+(i-106)*0.01

输出奖金

#include stdio.h

main()

{ long i;

float bonus, bon1, bon2, bon4, bon6, bon10;

int c;

bon1=100000*0.1;

bon2=bon1+100000*0.075;

bon4=bon2+200000*0.05;

bon6=bon4+200000*0.03;

bon10=bon6+400000*0.015;

printf("请输入利润i:");

scanf("%ld",i);

c=i/100000;

if(c10) c=10;

switch(c)

{ case 0: bonus=1*0.1;break;

case 1: bonus=bon1+(i-100000)*0.075;break;

case 2 :

case 3: bonus=bon2+(i-200000)*0.05; break;

case 4:

case 5: bonus=bon4+(i-400000)*0.03;break;

case 6:

case 7:

case 8:

case 9: bonus=bon6+(i-600000)*0.015;break;

case 10: bonus=bon10+(i-1000000)*0.01;

}

printf("奖金是%10.2f",bonus);

}

5.9 输入4个整数,要求按由大到小的顺序输出。

解:此题采用依次比较的方法排出其大小顺序。在学习了循环和数组以后,可以有更多的排序方法。

#include stdio.h

main()

{ int t,a,b,c,d;

printf("请输入4个整数:");

scanf("%d,%d,%d,%d",a,b,c,d);

printf("\n a=%d,b=%d,c=%d,d=%d\n",a,b,c,d);

if(ab) {t=a; a=b; b=t;}

if(ac) {t=a; a=c; c=t;}

if(ad) {t=a; a=d; d=t;}

if(bc) {t=a; b=c; c=t;}

if(bd) {t=b; b=d; d=t;}

if(cd) {t=c; c=d; d=t;}

printf("排序结果如下:\n");

printf("%d, %d, %d, %d\n",a,b,c,d);

}

5.10 有4个圆塔,圆心分别为(2,2)、(-2,2)、(2,-2)、(-2,-2),圆半径为1。这4个塔的高度分别为10m。塔以外无建筑物。今输入任一点的坐标,求该点的建筑高度(塔外的高度为零)。

程序如下:

#include stdio.h

main()

{ int h=10;

float x1=2,y1=2,x2=-2,y2=2,x3=-2,y3=-2,x4=-2,y4=-2,x,y,d1,d2,d3,d4;

printf("请输入一个点(x,y):");

scanf("%f,%f",x,y);

d1=(x-x1)*(x-x1)+(y-y1)*(y-y1); /*求该点到各中心点的距离*/

d2=(x-x2)*(x-x2)+(y+y2)*(y+y2);

d3=(x+x3)*(x+x3)+(y-y3)*(y-y3);

d4=(x+x4)*(x-x4)*(y+y4)*(y+y4);

if(d11d21d31d41) h=0; /*判断该点是否在塔外*/

printf("该点高度为%d\n",h);

}

第六章

第六章 循环控制

6.1输入两个正整数m和n,求其最大公约数和最小公倍数。

main()

{long m,n,i=1,j,s;

scanf("%ld,%ld",m,n);

for(;i=mi=n;i++)

{if(m%i==0n%i==0) s=i;}

if(m=n) j=m;

else j=n;

for(;!(j%m==0j%n==0);j++);

printf("s=%ld,j=%ld\n",s,j);

}

6.2输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。

#include"stdio.h"

main()

{char c;int i=0,j=0,k=0,l=0;

while((c=getchar())!=’\n’)

{if(c=65c=90||c=97c=122) i++;

else if(c=48c=57) j++;

else if(c==32) k++;

else l++;}

printf("i=%d,j=%d,k=%d,l=%d\n",i,j,k,l);

}

6.3求Sn=a+aa+aaa+…+aa…aaa(有n个a)之值,其中a是一个数字。例如:2+22+222+2222+22222(n=5),n由键盘输入。

#include"math.h"

main()

{int n,sum=0,i=1,s=2;

scanf("%d",n);

while(i=n)

{sum=sum+s;s=s+2*pow(10,i);

i++;}

printf("sum=%d\n",sum);

}

6.4 求 ,(即求1!+2!+3!+4!+5!+…+20!)

main()

{int n,i=1;long sum=0,s=1;

scanf("%d",n);

while(i=n) {s=s*i;sum=sum+s;i++;}

printf("sum=%ld\n",sum);

}

6.5 求

main()

{double i=1,j=1,k=1,s1=0,s2=0,s3=0,sum;

for(;i=100;i++) s1=s1+i;

for(;j=50;j++) s2=s2+j*j;

for(;k=10;k++) s3=s3+1/k;

sum=s1+s2+s3;

printf("sum=%f\n",sum);

}

6.6打印出所有"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该本身。例如:153是一个水仙花数,因为153=1^3+5^3+3^3。

#include"math.h"

main()

{int x=100,a,b,c;

while(x=100x1000) {a=0.01*x;b=10*(0.01*x-a);c=x-100*a-10*b;

if(x==(pow(a,3)+pow(b,3)+pow(c,3))) printf("%5d",x);x++;}

}

6.7一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如,6的因子为1、2、3,而6=1+2+3,因此6是"完数"。编程序找出1000之内的所有完数,并按下面格式输出其因子:

6 its factors are 1、2、3

main()

{int m,i,j,s;

for(m=6;m10000;m++)

{s=1;

for(i=2;im;i++)

if(m%i==0) s=s+i;

if(m-s==0)

{printf("%5d its fastors are 1 ",m);for(j=2;jm;j++) if(m%j==0)

printf("%d ",j);printf("\n");}

}

}

main()

{int m,i,j,s;

for(m=6;m1000;m++)

{s=m-1;

for(i=2;im;i++)

if(m%i==0) s=s-i;

if(s==0)

{printf("%5d its fastors are 1 ",m);for(j=2;jm;j++) if(m%j==0)

printf("%d ",j);printf("\n");}

}

}

6.8有一分数序列:

求出这个数列的前20项之和。

main()

{int i=1,n;double t,x=1,y=2,s,sum=0;

scanf("%ld",n);

while(i=n) {s=y/x;sum=sum+s;t=y;y=y+x;x=t;i++;}

printf("%f\n",sum);

}

6.9一球从100米高度自由下落,每次落地后返回原高度的一半,再落下。求它在第10次落地时共经过多少米?第10次反弹多高?

main()

{int i,n;double h=100,s=100;

scanf("%d",n);

for(i=1;i=n;i++)

{h*=0.5;if(i==1) continue;s=2*h+s;}

printf("h=%f,s=%f\n",h,s);

}

6.10猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘多少桃子。

main()

{int i=1,sum=0;

for(;i=10;sum=2*sum+1,i++);

printf("sum=%d\n",sum);

}

6.11用迭代法求 。求平方根的迭代公式为:

要求前后两次求出的得差的绝对值少于0.00001。

#include"math.h"

main()

{float x0,x1,a;

scanf("%f",a);

x1=a/2;

do

{x0=x1;x1=(x0+a/x0)/2;}

while(fabs(x0-x1)=0.00001);

printf("%.3f\n",x1);

}

6.12 用牛顿迭代法求方程在1.5附近的根。

main()

{double x,y;x=1.5;

do{y=2*x*x*x-4*x*x+3*x-6;

x=x-y/(6*x*x-8*x+3);}

while(y!=0);

printf("x=%.3f\n",x);

}

6.13用二分法求方程在(-10,10)之间的根

main()

{double x1,x2,y1,y2;x1=-10;x2=10;

do{y1=2*x1*x1*x1-4*x1*x1+3*x1-6;

x1=x1-y1/(6*x1*x1-8*x1+3);}

while(y1!=0);

do

{y2=2*x2*x2*x2-4*x2*x2+3*x2-6;

x2=x2-y2/(6*x2*x2-8*x2+3);}

while(y2!=0);

printf("x1=%.3f,x2=%.3f\n",x1,x2);

}

6.14打印以下图案

*

* * *

* * * * *

* * * * * * *

* * * * *

* * *

*

java web 编程技术 沈泽刚

推荐北京圣思园张龙老师讲的视频,网上可以下到,比看书好的多!

用java web编程技术既能编写电脑版网页又能编写手机版网页吗?

适配电脑和手机页面的浏览器浏览,主要是靠html和css,通过不同的设备访问,显示出不同的适配来达到最佳浏览效果。Java web编程技术,这个一般来说是指后台服务处理,和前端显示是分开的。

java web 编程实现 用户在购买商品24小时内未付款,商品自动重新上架。麻烦解释详细点,谢谢。

这个要看你数据库怎么设计的,可以做成每个小时查询一次看看是不是订购的商品未付款,未付款的恢复至可购买,也可以做成有人订购某种商品时,检测该商品是不是有超过一小时未付费的。

河南大学java web考试卷,是题库也可以!谢谢啦??

《JAVA WEB开发应用》 第 1 页 共 6 页

期末考试卷(卷)

课程名称: JAVA WEB 考试方式:开卷( )闭卷(√)

题号 一 二 三 四 五 六 总分

统分人签名

得分

考生注意事项:1、本试卷共 4 页,请查看试卷中是否有缺页。 2、考试结束后,考生不得将试卷、答题纸带出考场。

一、 选择题(每小题1分,共20分)

得分 评卷人

1. 表单中的数据要提交到的处理文件由表单的( )属性指定。

A.method B. name C. action D. 以上都不对 2. 要运行JSP程序,下列说法不正确的是( )

A. 服务器端需要安装Servlet容器,如Tomcat等。 B. 客户端需要安装Servlet容器,如Tomcat等。 C. 服务器端需要安装JDK。

D. 客户端需要安装浏览器,如IE等。

3. 当发布Web应用程序时,通常把Web应用程序的目录及文件放到Tomcat

的( )目录下。

A.work B. temp C. webapps D. conf 4. 下面有关HTTP协议的说法不正确的是( )

A. HTTP协议是Web应用所使用的主要协议

B. HTTP协议是一种超文本传输协议(Hypertext Transfer Protocol),

是基于请求/响应模式的

C. HTTP是无状态协议

D. HTTP的请求和响应消息如果没有发送并传递成功的话,HTTP可以保存

已传递的信息

5. 下面有关Servlet的描述错误的是( )。

A. 一个Servlet就是Java中的一个类

B. Servlet是位于Web 服务器内部的服务器端的Java应用程序 C. Servlet可以由客户端的浏览器解释执行

D. 加载Servlet的Web服务器必须包含支持Servlet的Java虚拟机 6. 下面不属于JSP指令的是:( )

A. include B. import C. page D. taglib 7. ( )动作用于转向另一个页面。

A. next B. forward C. include D. param 8. 在项目中已经建立了一个JavaBean,该类为:bean.Student,该bean具

有name属性,则下面标签用法正确的是:( )

A.jsp:useBean id="student" class="Student" scope="session"

/jsp:useBean

B.jsp:useBean id="student" class="Student" scope="session"

/jsp:useBean

C.jsp:useBean id="student" class="bean.Student" scope="session"

/jsp:useBean

D.jsp:getProperty name="name" property="student"/

9. 下列选项中,( )可以准确地获取请求页面的一个文本框的输入(文本框的名称为name)。

A. request.getParameter(name) B. request.getParameter(”name”) C. request.getParameterValues(name)

《JAVA WEB开发应用》 第 2 页 共 6 页

D. request.getParameterValues(“name”)

10. 使用response对象进行重定向时,使用的方法是( )。

A. getAttribute B. setContentType C. sendRedirect D. setAttribute

11. session对象中用于设定指定名字的属性值,并且把它存储在session对

象中的方法是( )。

A. setAttribute B. getAttributeNames C. getValue D. getAttribute

12. 在application对象中用( )方法可以获得application对象中的所有

变量名。

A. getServerInfo B. nextElements() C. removeAttribute D. getRealPath 13. 有关struts 2的说法不正确的是( )

A. Struts是一个用于简化MVC框架(Framework)开发的Web应用框架 B. 应用Struts 2不需要进行配置 C. Struts 2 含有丰富的标签

D. Struts2采用了WebWork的核心技术 14. Web应用的数据共享方式不包括( )。

A.基于请求的共享 B.基于会话的共享 C.基于页面的共享 D.基于应用的共享

15. 要在页面上输出2+3=${2+3},则对应的程序代码应为( )。

A. 2+3=\${2+3} B. 2+3=${2+3} C. 2+3=/${2+3} D. 以上都不对

16. 下面有关EL中“.“和“[ ]“两种存取运算符的说法不正确的是( )

A. 两者在某些情况下是等效的

B. “[ ]“运算符主要用来访问数组、列表或其他集合 C. 如果要动态取值时,两者都可以实现

D. 当要存取的属性名称中包含一些特殊字符,如.或?等并非字母或数字

的符号,就一定要使用“[ ]“

17. 要使用JSTL的核心标签库,需要在JSP源文件的首部加入如下声明语句

( )

A. %@ taglib prefix="c"

uri="" % B. %@ taglib prefix=”x”

uri=””% C. %@ taglib prefix=”fmt”

uri=””% D. %@ taglib prefix=”sql”

uri=””%

18. 以下( )标签用于实现循环功能,类似与Java语句中的for循环。

A. c:set B. c:forEach B. c:Tokens D. c:import 19. 以下URL中语法不正确的是( )

A. B.telnet://bdysseu.bbb.com:70 C. D.www0.btbu.edu.cn

20. page指令用于定义JSP文件中的全局属性,下列关于该指令用法的描述不

正确的是:( )

A. %@ page %作用于整个JSP页面。

B. 可以在一个页面中使用多个%@ page %指令

《JAVA WEB开发应用》 第 3 页 共 6 页

C. 为增强程序的可读性,建议将%@ page %指令放在JSP文件的开头,但不是必须的。

D. %@ page %指令中的属性只能出现一次。

二、 填空题(每空2分,共20分)

得分 评卷人

1.在编写Servlet时,需要继承 类,在Servlet中声明doGet()和doPost()需要 和 类型的两个参数。

2.jsp主要内置对象有: 、exception、 pageContext、 request 、 、_____ __、out、config、page。 3.使用useBean动作标记的时候scope属性有4种选项,作用范围由小到大是_________、_________、_________、_________,其中_________是指当关闭浏览器的时候这个javabean失效, ____ _____是指当关闭服务器的时候这个javabean失效。

4.三种常用的动态网页技术是_________、_________、_________,简称3P技术。

5.JSP利用JDBC操作数据库的步骤:(1)加载驱动程序,调用___________将自动加载驱动程序类;(2)建立连接,若连接字符串为:

String url = "jdbc:mysql://localhost/" + dbName +"?user=" +userName +"password=" +userPwd,其中dbName、userName和userPwd 3个分别代表 、数据库的 和 ,(3)建立StateMent;(4) 、执行sql语句,其中,查询数据库里的表内容是Statement接口使用__ __________方法;(5)关闭数据库。 三、 简答题:(每小题6分,共30 分)

得分 评卷人

1. Tomcat服务器的默认端口是多少?怎样修改tomcat的端口

2.什么是cookie? cookie有什么作用?。

3. 简述JSP中动态include与静态include的区别?

4. 简述表单中POST和GET的区别。

5、MVC中的M、V、C各指的是什么?请述其各自的作用。 四、编程题(每小题15分,共30分)

《JAVA WEB开发应用》 第 4 页 共 6 页

得分 评卷人

1、编写一个简单的JavaBean,通过EL的存取运算符访问其属性。 答案:文件userLogin.java定义了一个用户Bean,包含姓名、密码和电子邮件3个属性,其代码如下:

package bean;

public class userLogin { private String userName; private String (1) private String email; public userLogin() { userName = "李平"; password = "123";

email = "liping@sohu.com";

}

public void setuserName(String userName) { this.userName = userName; }

public String getuserName() { return this.userName; }

public void setpassword(String password) { this.password = password; }

public String getpassword() {

return this.password;

}

public void setemail(String email) { this.email = email;

}

public String getemail() { return this.email; }

}

文件accessBean.jsp使用EL的存取运算符获取JavaBean的属性,其代码如下:

%@ page contentType="text/html; charset=gb2312"% (2)

jsp:useBean id="user" class="bean.userLogin" scope="session" /jsp:useBean html head

title使用存取运算符访问JavaBean的属性/title

/head body !--通过EL存取运算符访问JavaBean的属性-- 用户名:(3) br

密码:(4)

br

电子邮箱:(5)

《JAVA WEB开发应用》 第 5 页 共 6 页

(责任编辑:IT教学网)

更多

推荐Painter教程文章