mvc模式test2

news2024/11/25 16:28:50

关于上篇book.java中使用类型不一样导致的报错

是在bookdao.java中解决

bookservlet.java

package servlet;
import java.io.IOException;
import beans.Book;
import dao.BookDao;
import java.util.ArrayList;
import javax.servlet.ServletException;
import javax.servlet.ServletContext;
import javax.servlet.RequestDispatcher;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class BookServlet extends HttpServlet
{
	public void service(HttpServletRequest request, HttpServletResponse response)
	throws ServletException, IOException
	{
		String id =request.getParameter("id");
		BookDao dao=new BookDao();
		ArrayList books=dao.queryBookById( id);
		request.setAttribute("books", books);
		ServletContext application =this.getServletContext();
		RequestDispatcher rd=application.getRequestDispatcher("/showBook.jsp");
		rd.forward(request, response);	
	}
}

新建表books

bookdao.java

package dao;
import java.io.IOException;
import beans.Book;
import java.sql.*;
import java.util.ArrayList;
public class BookDao {
public ArrayList queryBookById(String id) {
		Connection conn=null;
		ArrayList books=new ArrayList();
		try {
			try {
				Class.forName("com.mysql.jdbc.Driver");
			      } 
catch (ClassNotFoundException e)
       {
				e.printStackTrace();
			      }

			String url="jdbc:mysql://localhost:3306/book?useUnicode=true&charaterEncoding=UTF-8";
			conn=DriverManager.getConnection(url,"root","123456");
			String sql="select * from books where id=?";
			PreparedStatement ps=conn.prepareStatement(sql);
			ps.setString(1, id);
			ResultSet rs=ps.executeQuery();
			while(rs.next()){
				Book book=new Book();
				book.setId(rs.getInt(1));
				book.setName(rs.getString(2));
				book.setPrice(rs.getDouble(3));
				books.add(book);
				}
			rs.close();
			ps.close();
			} 
catch (SQLException e) {
				e.printStackTrace();
			}
finally {
				try{
				        if(conn!=null){
					conn.close();
					conn=null;
					}
			}
catch(Exception e){}
			}
			return books;
		}
}

同时把class文件删去,重启启动tomcat6.0

成功访问

使用的是tomcat6.0+jdk1.6+mysql8.0+myeclipse10

注意

创建servlet,先建包

继续更改

tomcat6.0重启,测试结果

附上做好的项目下载链接,可直接导入

https://www.123pan.com/s/9QRqVv-WCuY.html

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

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

相关文章

[跑代码-遇到问题-报错3]BK-SDM. KeyError: ‘up_blocks.0‘

File "src/kd_train_text_to_image.py", line 790, in mainKeyError: up_blocks.0 出问题的原因 dict acts_tea读到dict acts_stu没有读到dict 原因是 unet_teacher的结构后面直接接down_blocks(正常)unet_teacher.down_blocks 但是unet的结构…

神经网络模型流程与卷积神经网络实现

神经网络模型流程 神经网络模型的搭建流程,整理下自己的思路,这个过程不会细分出来,而是主流程。 在这里我主要是把整个流程分为两个主流程,即预训练与推理。预训练过程主要是生成超参数文件与搭设神经网络结构;而推理…

Vue3 pinia的基本使用

pinia的使用跟vuex很像,去除了很多没用的api,写法有两种,一种老式的选项式api还有一种组合式api,用哪种根据自己喜好来,以下示例为组合式api 更多教程参考官网:pinia官网https://pinia.vuejs.org/zh/ 安装…

无线网优AP、SW发现控制器

目录 无线网优解决的问题 1、信号覆盖不足的原因 2、信道繁忙 3、非802.11干扰 4、协商速率低 5、漫游效果差 6、有线带宽阻塞 无线网优方法 交换机发现与激活 一,交换机发现控制器方式 1、二层广播 2、DHCP option43方式 3、DNS域名解析方式 4、trou…

创建vue3数学符号选择器(vue3+elementPlus+ts)

本文包含两种效果: 效果一:数学符号只能选择一次,选中的数学符号高亮 效果二:相同的数学符号可以选择多次,当前选中的数学符号高亮 首先创建math.ts定义常见数学符号数组 : export const symbols [{ id: 1, value: …

Flutter桌面应用程序定义系统托盘Tray

文章目录 概念实现方案1. tray_manager依赖库支持平台实现步骤 2. system_tray依赖库支持平台实现步骤 3. 两种方案对比4. 注意事项5. 话题拓展 概念 系统托盘:系统托盘是一种用户界面元素,通常出现在操作系统的任务栏或桌面顶部。它是一个水平的狭长区…

物联网水表和4G水表的区别有哪些?

随着科技的发展,水表也不再是传统的机械表,而是经过数字化和智能化改造的物联网水表和4G水表。这两种水表具有很多的不同点。那么,物联网水表和4G水表的区别有哪些? 首先,物联网水表和4G水表的通信方式不同。物联网水表…

指针进阶知识超详细讲解(C语言)(中)

前言 苦苦等待,终于迎来了我们的指针讲解第二期,如果有还没有看过上一期的小伙伴,那赶紧点击这个链接学习后再来看这篇博客吧。链接:指针基础知识超详细讲解(C 语言)(上) 如果对学习…

Leetcode1423. 可获得的最大点数

Every day a Leetcode 题目来源:1423. 可获得的最大点数 解法1:前缀和 后缀和 基于贪心的思想,要使得获得的点数最大,每次拿卡牌都应该选点数尽量高的卡牌。 但是拿卡牌有限制,每次行动,只可以从行的…

21、pytest参数化中标记单独的测试用例

官方实例 # content of test_expectation_xfail import pytestpytest.mark.parametrize("test_input, expected",[("35",8),("24",6),pytest.param("6*9",42,markspytest.mark.xfail)], ) def test_eval(test_input, expected):asser…

Linux基本指令(2.0)

周边知识: 1.Linux中, 一切皆文件 构建大文件 输入如下shell命令 i1; while [ $i -le 10000]; do echo "hello Linux $i"; let i; done 此时大文件已经创建在big.txt 此时我们发现cat查看无法查看开始内容 我们使用more 当占满一屏之后就不…

JavaScript <md5加密的两种不同输出结果分析>--案例(二点一)

前言: 问题是这样的,在浏览器中看到这段代码 然后在控制台进行输出.得到: 紧接着,就在,js文件里面进行转译: 可是,得到的结果是: 这是问题!!! 正题: 为什么相同的js代码,在 .js 文件中的输出与 Chrome 控制台中的输出不一样? 环境差异:不同的JavaScript环境&…

STM32F1中断NVIC

目录 1. 中断系统 2. 中断向量表 3. NVIC基本结构 4. NVIC优先级分组 5. NVIC程序编写 5.1 中断分组 5.2 中断结构体变量 5.3 中断通道选择 5.4 抢占优先级和响应优先级配置 6. 中断程序执行 1. 中断系统 中断:在主程序运行过程中&#xff0…

Java基础数据类型

Java有八种基础的数据类型,它们被分为两个主要的类别:原始类型和引用类型。原始类型又被分为四类:整型、浮点型、字符型和布尔型。 整型(Integral Types): 这些类型用于存储整数。它们包括: ○…

七大经典高效学习方法

金字塔学习模型 金字塔学习是美国学习专家爱德加戴尔1946年提出的。 他将学习分为主动学习和被动学习两种类型,用数字形象地呈现了采用不同学习方式,学习者在两周后还能记住的内容有多少。 被动学习:通过听讲、阅读、视听、演示这些活动&a…

【Windows本地端口占用脚本自动化】

本地启动多个Java微服务,因为停电或者内存回收原因,IDEA直接退出;再次启动各个服务会提示端口占用。 每次都cmd输入命令手动Kill比较繁琐,可以把此脚本放在桌面上作为一个小工具,运行即可。 代码(核心部分是chatGPT自…

高压放大器研究方向及其应用领域

高压放大器是一种电子设备,用于将输入信号的电压增大到较高的输出电压。它在许多领域中有广泛的应用,包括通信、医疗、科学研究等。 高压放大器的研究方向主要集中在以下几个方面: 提高功率效率:高压放大器需要能够提供足够的输出…

信号可靠性剖析

问题 基于信号发送的进程间通信方式可靠吗??? 信号查看(kill -l) 信号的分类 不可靠信号 (传统信号) 信号值在 [1, 31] 之间的所有信号 可靠信号 (实时信号) 信号值在 [SIGRTMIN,SIGRTMAX],即:[34&…

数据挖掘 分类模型选择

选择的模型有: 决策树、朴素贝叶斯、K近邻、感知机 调用的头文件有: import numpy as np import pandas as pd from matplotlib import pyplot as plt from sklearn.linear_model import Perceptron from sklearn.naive_bayes import GaussianNB from s…

二极管:TVS瞬态抑制二极管

一、什么是TVS二极管 TVS(Transient Voltage Suppressors),即瞬态电压抑制器,又称雪崩击穿二极管。 TVS二极管的符号如下图所示 什么是雪崩击穿 雪崩击穿是有必要了解一下的,不然后面还有齐纳击穿,搞不…