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

news2024/10/6 7:26:13

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 习题参考答案

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2191401.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

WaveletGPT:基于小波的多尺度表征增强大型语言模型训练效率

斯坦福大学的研究人员首次将小波理论应用于大型语言模型&#xff0c;提出了WaveletGPT&#xff0c;通过在Transformer解码器层中添加多尺度滤波器&#xff0c;加速了模型训练速度&#xff0c;并在文本、音频和音乐等多个领域取得了显著的性能提升。 论文介绍 大型语言模型 (L…

求和问题题解

减 sort拍后就A了 #include <bits/stdc.h> #include <cstring> using namespace std; typedef long long ll; ll n,a[400005],cnt0,b[400005]; bool cmp(long long x,long long y){return x>y; } int main () {cin>>n;for(int i1;i<n;i){cin>>…

查缺补漏----同步,异步,半同步,分离式通信

目录 1.同步通信&#xff08;同步定时方式&#xff09; 2.异步通信 3.半同步通信 4.分离式通信 1.同步通信&#xff08;同步定时方式&#xff09; 同步通信方式&#xff08;比如SPI&#xff09;&#xff0c;是把许多字符组成一个信息组&#xff0c;这样&#xff0c;字符可…

Springboot 整合 durid

文章目录 Springboot 整合 druiddruid的优势配置参数使用整合 Druid配置数据源配置参数绑定配置参数配置监控页面配置拦截器 Springboot 整合 druid druid的优势 可以很好的监控 DB 池连接 和 SQL 的执行情况可以给数据库密码加密可以很方便的编写JDBC插件 配置参数 使用 整…

数据结构之树(4)

摘要&#xff1a;本篇主要讲哈夫曼树、并查集、二叉排序树、平衡二叉树等&#xff0c;非常非常非常重要&#xff01;&#xff01;&#xff01; 一、哈夫曼树 基于霍夫曼树&#xff0c;利用霍夫曼编码进行通信可以大大提高信道利用率&#xff0c;缩短信息传输时间&#xff0c;…

Android2024.2.1升级错误

提示 Gradle 版本不兼容&#xff0c;升级后就报错了 。 1.gradle安装包镜像 distributionBaseGRADLE_USER_HOME distributionPathwrapper/dists //distributionUrlhttps\://services.gradle.org/distributions/gradle-8.5-bin.zip distributionUrlhttps://mirrors.cloud.tencen…

Koa2项目实战1(项目搭建)

前言 在正式开始之前&#xff0c;需要先知道用到的东西&#xff1a; koa&#xff1a;Koa 是一个基于 Node.js 的 Web 应用框架&#xff0c;非常适合开发API服务&#xff0c;可以与前端框架&#xff08;如 Vue.js、React.js&#xff09;结合使用&#xff0c;实现前后端分离的开…

第八篇:磁盘管理(1)

目录 6.1分区 6.1.1基本分区 6.1.1.1磁盘的相关知识 6.1.1.1.1基础知识 6.1.1.1.2命名 1.对于串口硬盘&#xff1a;/dev/sda、/dev/sdb、/dev/sdc......往后都是一个字母一个字母的累加 2.对于并口硬盘&#xff1a;/dev/hda其余相同 6.1.1.1.3磁盘的分区方式 方式1&am…

c++_ 多态

目录 一.多态 1.1多态(polymorphism)的概念 1.2实现多态还有两个必须重要条件&#xff1a; 1.3 重载 和 虚函数的重写/覆盖 和 隐藏 的比对 1.4 协变(了解) 1.5 析构函数的重写 1.6 override 和final关键字 二.纯虚函数和抽象类 三. 多态的原理 3.1虚函数表指针 3.…

黑马JavaWeb开发跟学(十一)SpringBootWeb案例

黑马JavaWeb开发跟学十一.SpringBootWeb案例 SpringBootWeb案例1. 新增员工1.1 需求1.2 接口文档1.3 思路分析1.4 功能开发1.5 功能测试1.6 前后端联调 2. 文件上传2.1 简介2.2 本地存储2.3 阿里云OSS2.3.1 准备2.3.2 入门2.3.3 集成 3. 修改员工3.1 查询回显3.1.1 接口文档3.1…

性能测试笔记2-总

安装路径&#xff1a;先装jdk,后装JMeter 安装JDK&#xff1a; 下载JDK – 安装JDK – 配置环境变量 – 验证 安装Jmeter&#xff1a; 下载Jmeter – 安装Jmeter – 配置环境变量 – 启动验证 注意点&#xff1a; 下载JDK时&#xff0c;注意电脑操作系统是32位/64位 下载…

力扣 简单 110.平衡二叉树

文章目录 题目介绍解法 题目介绍 解法 平衡二叉树:任意节点的左子树和右子树的高度之差的绝对值不超过 1 //利用递归方法自顶向下判断以每个节点为根节点的左右子树的最大深度是否大于1 class Solution {public boolean isBalanced(TreeNode root) {if(root null){return tr…

Uniapp API

1.uni.showToast 显示消息提示框 unishowToast({ obj参数 }) 2.uni.showLoading 显示 loading 提示框, 需主动调用 uni.hideLoading 才能关闭提示框。 3.uni.showModal 显示模态弹窗&#xff0c;可以只有一个确定按钮&#xff0c;也可以同时有确定和取消按钮。类似于一个A…

windows上安装python环境

前言 最近电脑重装了系统&#xff0c;需要重新安装python环境 &#xff0c;因此记录一下 1.下载 打开python官网下载&#xff0c;下载链接&#xff1a;https://www.python.org/downloads/windows/ 点击下载 &#xff0c;我这里使用64位操作系统(大部分电脑)&#xff0c;根据…

怎么查看网站是否被谷歌收录,查看网站是否被谷歌收录的简便方法

查看网站是否被谷歌收录&#xff0c;有多种简便方法可供选择。以下是一些常用的简便方法&#xff1a; 一、使用“site:”指令 打开谷歌搜索引擎&#xff1a; 在浏览器中打开Google.com&#xff0c;确保使用的是谷歌的官方搜索引擎。 输入查询指令&#xff1a; 在搜索框中输…

网关路由登录校验

网关过滤器 登录校验必须在请求转发到微服务之前做&#xff0c;否则就失去了意义。而网关的请求转发是Gateway内部代码实现的&#xff0c;要想在请求转发之前做登录校验&#xff0c;就必须了解Gateway内部工作的基本原理。 暂时无法在飞书文档外展示此内容 如图所示&#xff…

15分钟学 Python 第38天 :Python 爬虫入门(四)

Day38 : Python爬虫异常处理与反爬虫机制 章节1&#xff1a;异常处理的重要性 在爬虫开发过程中&#xff0c;网络请求和数据解析常常会遭遇各种异常。正确的异常处理可以提高程序的稳定性&#xff0c;避免崩溃&#xff0c;并帮助开发者快速定位问题。 章节2&#xff1a;常见…

requests案例——腾讯新闻数据的爬取

需求&#xff1a; 1.利用requests方法爬取该i.news.qq.com网站的数据&#xff08;包括名字和对应链接&#xff09; 2.实现翻页的爬取 3.将爬取下来的数据保存在excel文件中 4.利用jsonpath来解析获取的数据 5.使用openpyxl库处理 Excel 文件 注意&#xff1a; 1.如果报以…

一个不错的 SQL 编码风格的指南

前言 SQL语句的编写对于我们后端开发者而言是一个必备的技巧&#xff0c;在日常工作中&#xff0c;SQL语言编写的质量不仅仅会影响到团队的合作效率与项目的可维护性&#xff0c;还直接关系到数据库的性能优化与数据安全。今天大姚给大家分享一个不错的 SQL 编码风格的指南&am…

卡码网KamaCoder 117. 软件构建

题目来源&#xff1a;117. 软件构建 C题解&#xff08;来源代码随想录&#xff09;&#xff1a;拓扑排序&#xff1a;给出一个 有向图&#xff0c;把这个有向图转成线性的排序。拓扑排序也是图论中判断有向无环图的常用方法。 拓扑排序的过程&#xff0c;其实就两步&#xff1…