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

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

模拟退火算法简介

什么是模拟退火算法&#xff1f; 模拟退火算法&#xff08;Simulated Annealing&#xff0c;SA&#xff09;是一种基于随机化搜索的优化算法&#xff0c;灵感来源于金属退火过程。在金属制造中&#xff0c;金属被加热到高温并缓慢冷却&#xff0c;这一过程可以减少内部缺陷&am…

L111213 【哈工大_操作系统】内核级线程内核级线程实现操作系统之“树”

L2.4 内核级线程 切换进程&#xff0c;实际上是切换内核级线程&#xff0c;没有用户级进程说法&#xff0c;进程只能在内核中。 多核与多处理器的区别在于是否共用资源。多核多线程 并发&#xff1a;同时触发&#xff0c;交替执行&#xff0c;在一个核上 并行&#xff1a;同…

三菱FX3U定位控制接线示例(脉冲控制伺服)

一、FX3u系列基本单元(DC24V输入) 二、FX3u系列基本单元(晶体管输出) 脉冲输出用端子Y000、 Y001、 Y002为高速响应输出。 三、FX3UPLC链接MR-J4-A伺服连接实例 1、为了安全起见&#xff0c;不仅仅在可编程控制器侧&#xff0c;在伺服放大器侧也请设计正转限位和反转限位的限位…

数字安全新时代:聚焦关键信息基础设施安全保障——The Open Group 2024生态系统架构·可持续发展年度大会盛大来袭

在全球数字化转型的浪潮中&#xff0c;关键信息基础设施&#xff08;Critical Information Infrastructure&#xff0c;简称CII&#xff09;的安全保障已成为各国政府和企业共同关注的焦点。随着技术的飞速发展和网络威胁的日益复杂&#xff0c;如何构建高效、灵活且安全的数字…

vue2接入高德地图实现折线绘制、起始点标记和轨迹打点的完整功能(提供Gitee源码)

目录 一、申请密钥 二、安装element-ui 三、安装高德地图依赖 四、完整代码 五、运行截图 六、官方文档 七、Gitee源码 一、申请密钥 登录高德开放平台&#xff0c;点击我的应用&#xff0c;先添加新应用&#xff0c;然后再添加Key。 ​ 如图所示填写对应的信息&…

【最新华为OD机试E卷-支持在线评测】简单的自动曝光(100分)多语言题解-(Python/C/JavaScript/Java/Cpp)

🍭 大家好这里是春秋招笔试突围 ,一枚热爱算法的程序员 💻 ACM金牌🏅️团队 | 大厂实习经历 | 多年算法竞赛经历 ✨ 本系列打算持续跟新华为OD-E/D卷的多语言AC题解 🧩 大部分包含 Python / C / Javascript / Java / Cpp 多语言代码 👏 感谢大家的订阅➕ 和 喜欢�…

[Linux]开发环境搭建

RPM和YUM 安装JDK 安装Tomcat 安装IDEA 安装MySql

Kotlin真·全平台——Kotlin Compose Multiplatform Mobile(kotlin跨平台方案、KMP、KMM)

前言 随着kotlin代码跨平台方案的推出&#xff0c;kotlin跨平台一度引起不少波澜。但波澜终归没有掀起太大的风浪&#xff0c;作为一个敏捷型开发的公司&#xff0c;依然少不了Android和iOS的同步开发&#xff0c;实际成本和效益并没有太多变化。所以对于大多数公司来说依然风平…

精选算法入门——day2

精选算法入门——day2 题目一题干解题思路一解题思路二解题思路三思路三代码 题目二题干解题思路代码 题目三题干解题思路一代码解题思路二代码解题思路三代码 题目四题干解题思路代码 题目一 题干 数组中有一个数字出现的次数超过数组长度的一半&#xff0c;请找出这个数字。…

PDF转换为TIF,JPG的一个简易工具(含下载链接)

目录 0.前言&#xff1a; 1.工具目录 2.工具功能&#xff08;效果&#xff09;&#xff0c;如何运行 效果 PDF转换为JPG&#xff08;带颜色&#xff09; PDF转换为TIF&#xff08;LZW形式压缩&#xff0c;可以显示子的深浅&#xff09; PDF转换为TIF&#xff08;CCITT形…

uniapp+Android智慧居家养老服务平台 0fjae微信小程序

目录 项目介绍支持以下技术栈&#xff1a;具体实现截图HBuilderXuniappmysql数据库与主流编程语言java类核心代码部分展示登录的业务流程的顺序是&#xff1a;数据库设计性能分析操作可行性技术可行性系统安全性数据完整性软件测试详细视频演示源码获取方式 项目介绍 老年人 登…

IDEA:Properties in parent definition are prohibited

问题背景 如果你在POM.xml中使用了自定义版本&#xff0c;那么IDEA就没办法很动态检测&#xff08;其实可以做到的&#xff0c;不是吗&#xff09;&#xff0c;就会有一个Properties in parent definition are prohibited 的错误信息&#xff08;禁止使用父级定义中的属性&…

吊打ChatGPT4o!大学生如何用上原版O1辅助论文写作(附论文教程)

目录 1、用ChatGPT生成论文选题2、用ChatGPT生成论文框架3、用ChatGPT进行文献整理4、用ChatGPT进行论文润色5、用ChatGPT进行问题求解6、用ChatGPT进行思路创新7、用ChatGPT进行论文翻译8、如何直接使用ChatGPT4o、o1、OpenAI Canvas 9、OpenAI Canvas增强了啥&#xff1f;10、…

打造自己的RAG解析大模型:Windows部署OCR服务(可商业应用)

在上一篇文章中&#xff0c;我们介绍了如何在 Windows 环境中配置 OCR 相关模型&#xff0c;并完成了模型验证。本篇文章将基于之前的内容&#xff0c;进一步讲解如何将文本检测、方向分类和文本识别模型进行串联&#xff0c;最终搭建一个基础的 OCR 应用服务。通过这些模型的串…

降重秘籍:如何利用ChatGPT将重复率从45%降至10%以下?

AIPaperGPT&#xff0c;论文写作神器~ https://www.aipapergpt.com/ 重复率高达45%&#xff1f;很多人一查论文的重复率&#xff0c;瞬间想“完了&#xff0c;这次真的要重写了”。但其实不用这么绝望&#xff01;有了ChatGPT&#xff0c;降重真的没那么难。今天就教你几招&a…

网络安全概述:从认知到实践

一、定义 网络安全&#xff0c;即致力于保护网络系统所涵盖的硬件、软件以及各类数据&#xff0c;切实保障其免遭破坏、泄露或者篡改等不良情形的发生。 二、重要性 个人层面&#xff1a;着重于守护个人隐私以及财产安全&#xff0c;为个人在网络世界中的各项活动提供坚实的保…

日语发音

中文 阴平&#xff08;第一声&#xff09;&#xff0c;用“ˉ”表示&#xff0c;如lā&#xff1b;阳平&#xff08;第二声&#xff09;&#xff0c;用“ˊ”表示&#xff0c;如l&#xff1b;上声&#xff08;第三声&#xff09;&#xff0c;用“ˇ”表示&#xff0c;如lǎ&am…

pWnos1.0 靶机渗透 (Perl CGI 的反弹 shell 利用)

靶机介绍 来自 vulnhub 主机发现 ┌──(kali㉿kali)-[~/testPwnos1.0] …

个人网站,怎么操作才能提升个人网站的流量

运营个人网站以提升流量是一个综合性的过程&#xff0c;涉及内容优化、技术调整、用户体验提升以及外部推广等多个方面。以下是一些专业建议&#xff0c;旨在帮助个人网站运营者有效提升网站流量&#xff1a; 1.精准关键词研究与优化 -关键词研究&#xff1a;利用工具如谷歌…

MATLAB图像去雾系统

应用背景 现在工业发展迅速&#xff0c;产生的废气很严重&#xff0c;导致雾霾厉害&#xff0c;现在虽然有硬件来拍摄&#xff0c;可以清晰化视野&#xff0c;但是硬件成本昂贵&#xff0c;急需寻求一种算法来帮助雾霾的清晰处理。显得经济。 采用算法原理 本文采用全局直方…