自学内容网 自学内容网

JavaWeb程序设计(第四版)习题参考答案

JavaWeb程序设计(第四版)习题参考答案

目录

模块1 习题参考答案

模块2 习题参考答案

模块3 习题参考答案

模块4 习题参考答案

模块5 习题参考答案

模块6 习题参考答案

模块7 习题参考答案

模块8 习题参考答案

模块1 习题参考答案

  • 选择题

1 .A  2.C

  • 填空题

1.8080

2.浏览器接收用户输入,客户端向服务器发送请求,数据处理,发送响应

  • 判断题

1.√

2.√

  • 操作题

五、编程题

模块2 习题参考答案

一、选择题

  1. C   2.  A   3. D

二、填空题

<%--  --%>

三、判断题

1.×   2.×   3.×

四、问答题

  1. JSP声明用来定义页面级变量,以保存信息或定义JSP页面的其余部分可能需要的支持方法。
  2. 表达式,其格式<%=表达式%>,<%=%>一次只能嵌入一个表达式,且该表达式必须完整。

3、JSP指令是为JSP引擎而设计的。它们并不直接产生任何可见的输出,而是告诉引擎如何处理其它的JSP页面。

4、静态包含:只生成一个java文件,动态包含:生成多个class文件。

5、JAVA

6、Page指令用来定义JSP文件中的全局属性;

  1. JSP 共有以下 7 种基本动作
  1. <jsp:include>: 在页面被请求的时候引入一个文件。
  2. <jsp:useBean>: 寻找或者实例化一个 JavaBean。
  3. <jsp:setProperty>: 设置 JavaBean 的属性。
  4. <jsp:getProperty>: 输出某个 JavaBean 的属性。
  5. <jsp:forward>:把请求转到一个新的页面。
  6. <jsp:params>: 用于传递参数。
  7. <jsp:plugin>:用于下载JavaBean或Applet到客户端执行。

8、include指令是编译阶段的指令,即include所包含的文件的内容是编译的时候插入到JSP文件中;include动作是在主页面被请求时,将次级页面的输出包含进来。

模块3 习题参考答案

一、选择题

1.C  2.D

二、填空题

1.request、response、session、application、out、page

2.getParameter(“username”)

三、问答题

1.Request< session<application

request 在当前请求中有效;session 在当前会话中有效;application在所有应用程序中有效。

2. 两者的区别:

sendRedirect:该方法不仅可以重定向到当前应用程序的其他资源,而且可以跳转到URL参数指定的其它任何站点的可访问资源。这种跳转可以说是一种完全的跳转,浏览器将请求新的URL地址,在地址栏上显示的是新的URL地址。原页面和新页面之间不能共享request数据。

<jsp:forward>:该指令只能转发到同一个Web应用程序内的资源,它只是向服务器请求目标地址的资源,服务器将相应的响应资源读取过来之后发送给浏览器,所以在客户端浏览器地址栏中不会显示出转向后的地址。转发页面和转发到的页面可以共享request里面的数据。

四、编程题

1.login.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>登陆</title>

</head>

<body>

<h6>用户登录</h6>

<form action=" login_do.jsp" method="post">

用户名:<input type="text" name="username"/><br/>

密码:<input type="text" name="password"/><br/>

<input type="submit" value="登陆"/>

</form>

</body>

</html>

login_do.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>登陆结果</title>

</head>

<body>

<%

String username=request.getParameter("username");

String password=request.getParameter("password");

//假设用户名和密码分别为tom和123就算登陆成功

if(username!=null&&password!=null&&

username.equals("tom")&&password.equals("123")){

//将用户名存入session中

session.setAttribute("username",username);

response.sendRedirect("exam8_welcome.jsp");

}else{

out.println("用户名或密码不正确,5秒后为您跳转回登陆页面...");

response.setHeader("refresh","5;url=exam8_login.jsp");

}

%>

</body>

</html>

2.计数器网站:counter.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<%

String  path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

    <base href="<%=basePath%>">

    <title>计数器网站</title>

    <meta http-equiv="pragma" content="no-cache">

    <meta http-equiv="cache-control" content="no-cache">

    <meta http-equiv="expires" content="0">    

  </head>

  

  <body>

    <%

        if(application.getAttribute("counter") == null)

        {

            application.setAttribute("counter", "1");

        }

        else

        {

            String  strnum = null;

            strnum = application.getAttribute("counter").toString();

            int icount = 0;

            icount = Integer.valueOf(strnum).intValue();

if(session.isNew()){

icount++;

}

            

            application.setAttribute("counter", Integer.toString(icount));

        }

    %>

        您是第<%=application.getAttribute("counter") %>位访问者!

        

  </body>

</html>

模块4 习题参考答案

  • 填空题

Java Database Connectivity

Select,Insert,Delete,Update

  • 判断题

1、√

2、√

3、 x

  • 简答题

1、JDBC是一种用于执行SQL语句的Java API类包,由一组用Java语言编写的类和接口组成,通过它可以构建更高级的工具和接口,使数据库开发人员能够用纯Java API编写数据库应用程序。

2、(1)下载数据库的JDBC驱动(2)将驱动复制到当前工程的lib目录中(3)编写数据库连接程序。

3、Driver接口、DriverManager接口、Connection接口、Statement接口、PreparedStatement接口、ResultSet接口

模块5 习题参考答案

一.填空题

1.<jsp:useBean> , 代表JavaBean对象的ID,引用JavaBean对象的局部变量名

2. session

3.属性、方法

二.选择题

1.A  2.C   3 .C  4.C

三.编程题

TimeBean.java

-----------------------------------------------------------

 package com.bean;

import java.text.SimpleDateFormat;

import java.util.Date;

public class TimeBean {

// 成员变量

private Date date;

private SimpleDateFormat simpleDateFormat;

// 生成get和set方法

public Date getDate() {

return date;

}

public void setDate(Date date) {

this.date = date;

}

public SimpleDateFormat getSimpleDateFormat() {

return simpleDateFormat;

}

public void setSimpleDateFormat(SimpleDateFormat simpleDateFormat) {

this.simpleDateFormat = simpleDateFormat;

}

// 默认无参的构造方法

public TimeBean() {

}

// 获取系统时间

public static String toLongDateString(Date date) {

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日  HH时mm分ss秒  E ");

return simpleDateFormat.format(date);

}

}

time.jsp

-------------------------

<%@page import="com.bean.TimeBean,java.util.Date"%>

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

<jsp:useBean id="time" class="com.bean.TimeBean"></jsp:useBean>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>显示时间</title>

</head>

<body>

<%

TimeBean timeBean = new TimeBean();

    Date date = new Date();

    out.println(TimeBean.toLongDateString(date));

    

    response.setHeader("Refresh", "2");

%>

</body>

</html>

四.简答题

 1.

数据库连接是一种有限的昂贵的资源,数据库连接影响到程序的性能指标。数据库连接池正是针对这个问题提出来的。数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而再不是重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。这项技术能明显提高对数据库操作的性能。

2.

在已经创建好的web项目JavaWebExperiment中的目录servers下,找到server.xml,如图5-7所示。然后将下面的代码添加到<context>标签中。

图5-7 server.xml

<Context docBase="JavaWebExperiment" path="/JavaWebExperiment" reloadable="true" source="org.eclipse.jst.jee.server:Wa">

<Resource auth="Container" type="javax.sql.DataSource"

name="jdbc/WebDataPool" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://127.0.0.1:3306/study?useUnicode=true&characterEncoding=utf-8&autoReconnect=true"

username="root" password="root" logAbandoned="true" maxActive="100"

maxIdle="30" maxWait="28800" removeAbandoned="true"

removeAbandonedTimeout="30" testOnReturn="true" testWhileIdle="true"

validationQuery="select now()" />

</Context>

模块6 习题参考答案

一、选择题

1.B  2.C  3.A  4.C  5.B  6.B  7.A

二、填空题

1.HttpServletResponse

2. jakarta.servlet.*;     jakarta.servlet.http.*; 

3.判断值是否为空

  1. .     [ ]
  2. 6     11

三、问答题

1、Servlet的生命周期由Servlet容器来控制,主要有初始化、运行和销毁三个过程来完成,

(1)初始化Servlet,Servlet第一次被请求加载时,服务器创建一个Servlet对象,Servlet容器调用Servlet对象的init方法进行初始化。

(2)运行Servlet,创建的Servlet对象根据客户端的请求,调用 Service 方法响应客户端的请求。

(3)销毁Servlet,当Web应用被终止时,Servlet容器会先调用Servlet对象的destrory方法,然后再销毁Servlet对象,释放Servlet对象占用的资源。

在Servlet生命周期中,Servlet的初始化和和销毁阶段只会发生一次,而service方法执行的次数则取决于客户端的请求次数。

2、redirect() 会丢失request的所有信息  它属于页面级的重定向,仅仅让你的浏览器重新访问一个新的url,作为浏览者,能很明显的看到浏览器url地址的变化,这和点击了一个普通的超链接的后果是一样的。而 RequestDispatcher 的forward() 方法,是转发,需要request 和 response为参数,就是将用户的请求,连同请求信息等内容,一起转发到服务器的另外一个servlet去处理,它不会丢失request信息。这一过程是服务器内部完成的,作为访问者,是感觉不到了,或者说是透明的,因此访客浏览器的url 是不会发生变化的。

3、当一个客户通过HTML 表单发出一个HTTP GET请求或直接请求一个URL时,doGet()方法被调用。与GET请求相关的参数添加到URL的后面,并与这个请求一起发送。当不会修改服务器端的数据时,应该使用doGet()方法。当一个客户通过HTML 表单发出一个HTTP POST请求时,doPost()方法被调用。与POST请求相关的参数作为一个单独的HTTP 请求从浏览器发送到服务器。当需要修改服务器端的数据时,应该使用doPost()方法。

4、Filter接口定义了以下三个方法:

① public void init(FilterConfig filterConfig)throws ServletException、

② public void doFilter(ServletRequest request,ServletResponse response,FilterChain chain) throws java.io.IOException,ServletException

③ public void destroy()

四、编程题

 略。

模块7 习题参考答案

模块8 习题参考答案


原文地址:https://blog.csdn.net/m0_60318025/article/details/142716377

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!