Java和bean(VO)、dao、Servlet、jsp的综合总结复习

news2024/11/25 2:33:30

学到这里,差不多,可以自主完成一个简单的系统了。所以接下来需要总结,然后设计一个简单的系统。分别使用Java和Java Web来实现。(目标:实现简单的购物系统)

要求:能注册,并登录。登录成功,转到商品信息页面。在添加一个商品查询功能,和购物车功能,可以实现添加商品到购物车,以及删除商品。

首先使用Java。考虑使用UML类图来实现。

参考《Java2 实用教程 》书本P348,先把这个例子的UML图画好。

思路分析:

      1.数据模型:只存放数据,提供设置数据和获取数据的方法。

                     注册模型:存放注册需要的,账号,密码,姓名,性别。

                     登录模型:存放登录需要的,账号,密码,是否登录成功的数据。

       2.数据处理:

                    注册处理:连接数据库,将数据库内容写入注册模型。

                    登录处理:连接数据库,查询数据库内容的注册模型是否有该数据。

                    进行测试。

       3.功能分析:

                   登录成功则显示顾客姓名。(跳转页面)

                  

2.UML图设计:

注册模型(Login.java):account:String  、password:String 、sex:、

登录模型(Register.java):account:String  、password:String

注册处理(HandleRegister):writeRegister(Register ):void

登录处理(HandleLogin):queryLogin(Login ):Login  

测试页面(ceshi):main():void   

功能页面(Showname):main():void

3.代码分析:

1.遗忘插入语句的使用:

insert into 表 values();

2.在rs.next()语句里面,忘记如何输出数据库的内容。

使用rs.getString("name")    //注意这个括号里面表示的是数据库里面的varchar。必须加“”。有些表示是string类型的不用加双引号。

比如:conn.statement(sql);   //sql也是一个string类型,它不用再额外加双引号。但上面需要

3.预处理语句结合通配符的使用:

一开始看书,我是这样写的:name like '%?%'   ;

第一次出现的错误是,问号用成中文符号。(×)

第二次出现的错误是:不能这样'%?%' 。因为如果用%%来表示,它匹配的是单个字符,而不是字符串里面的字符。

正确用法:name like ? ;

                 stat.setString(1,"%"+name+"%");      //把通配符放到外面。

在使用JavaWeb的知识。工厂封装模式。

1.beans(Vo类)负责封装数据。:Login、Register

2.Dao类负责连接数据库。

3.Servlet类负责处理数据。接收来自jsp的数据。返回数据给jsp。

补充知识点:

可以不用servlet类,jsp可以直接获取Dao类的数据。(将Dao类变成一个集合类型)

如果使用servlet类的方法。我们来看看到底怎么使用:

基本用法:

添加元素:session.setAttribute("名字",Object);   //String类型的名字不能相同。

但是Object可以是一个集合。这是使用session的关键!!

存:session.setAttribute("名字",Object);

ArrayList 对象 = new ArrayList();

对象.add(String );                               //请牢记!!!

session.setAttribute("名字",Object);//最后可以通过Object添加到session里面。

取:session.getAttribute("名字");

ArrayList 对象 = (ArrayList)session.getAttribute("名字");

for(int i=0;i<对象.seze();i++){

     String 子对象 = (String)对象.get(i);

     out.println(子对象)

}

小结:session存的方法放在后面。取的方法放在前面。

代码分析:

主要错误在Servlet的用法上,建议在学一遍Servlet的方法,然后再去构建错误点。

1.遗忘购物车的用法。(看前面的存和取的方法)

2.遗忘跳转链接的用法:

response.sendRedirect(url);

3.使用request.getParameter(“”)的方法如果没有得到数据。有可能的原因是需要重新部署。因为如果是这个里面的字符写错的原因。字节码是不会发生改变的。

4.在类的方法里面定义的属性需要重新赋值,比如赋值null。但是如果你把这个属性放在类之下,方法之外,相当于全局变量。它就不需要赋值。

1.功能分析没分析好,应该在划分一个叫做查询功能的jsp。

(为什么你会觉得,要把查询功能放在login的下方?。用session就可以做到吗?习惯问题,以为这是一个类一样。定义一个类就是一个方法。但这里不太一样。你要想查询功能会用到哪些组件。很明显会用到提交按钮。你觉得一个<%%>表达式可以实现吗?)
(下次注意,如果你要实现登录成功才能进入到查询功能的话,而查询功能的语法是html,那么就需要在创建一个jsp)

2.同理,在jsp里面,既然创建了query的功能,那么应该也要对应一个查询功能的servlet程序。而不是在registerservlet里面放查询模块。
 

5.students.add()方法。有两个易错点。第一个是students类型的错误。它的类型必须是ArrayList。不是泛型。如果写成泛型。那么add括号里面就不能是对象。

第二个错误是student对象的错误。括号里面只能写对象。不能写其它的。这样才会得到每遍历一次获得一个集合空间。

第三个错误是它所在的循环rs.next。只能用while循环。因为是模糊查询。可能有多个符合条件的集合。

6.卡住点:Register类型,它本身是一个集合。可以直接输出。将它看作一种集合类型去使用。于是可以在jsp里面,将从session取出来的数据赋给Register的对象。但前提是,赋予方也必须是一个单集合。(去看‘取’和‘存’的用法。)

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

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

相关文章

【python】四舍五入保留N位小数,截断保留小数

目录 一.环境 二.适用场景 三.具体方法代码及描述 1.方法一&#xff1a;numpy-around()方法&#xff0c;四舍五入 2.方法二&#xff1a;字符串格式化&#xff08;有两种方式&#xff0c;均为四舍五入&#xff09;【推荐】 1&#xff09;%.4f 法 2) {:.4f} 法 3.方法三…

QT入门基础知识

什么是QT QT是一个跨平台的C图像用户界面应用程序框架QT在1991年由奇趣科技开发QT的优点 跨平台,几乎支持所有平台接口简单&#xff0c;容易上手一定程度上简化了内存回收机制有很好的社区氛围可以进行嵌入式开发 QWidget QT注意事项 命名规范 类名 首字母大写&#xff0c;单…

kakfa 常见错误(长期更新)

kafka版本 2.13-3.40 一、消费者相关1.1 消费组1.1.1 查看消费组命令找不到消费组 1.2 主题1.2.1 kafka默认主题_consumer_offsets 不小心删除 二、发布者相关三、Spring Boot连接相关3.1 消费者相关3.1.1 连接报错3.1.1.2 消费报错 一、消费者相关 1.1 消费组 1.1.1 查看消费…

vue中Cascader 级联选择器实现

<template> <div style"padding-left:20px;"> <!-- 添加或修改 --> <el-dialog :title"title" :visible.sync"open" width"500px" append-to-body> <el-form ref"form" :model"form"…

二分类结局变量Logistic回归临床模型预测—— 模型评价(二)

本节讲的是二分类结局变量的临床模型预测,与之前讲的Cox回归不同,https://lijingxian19961016.blog.csdn.net/article/details/124088364https://lijingxian19961016.blog.csdn.net/article/details/124088364https://lijingxian19961016.blog.csdn.net/article/details/1240…

如何运行一个 SSM 项目以及解决 JDBC 连接数据库遇到的问题(已解决)

文章目录 &#x1f4cb;前言&#x1f3af;运行与配置&#x1f3af;报错与解决&#x1f9e9;问题分析&#x1f9e9;解决过程 &#x1f3af;知识点补充&#x1f9e9;关于 com.mysql.jdbc.Driver 和 com.mysql.cj.jdbc.Driver 的区别 &#x1f4dd;最后 &#x1f4cb;前言 这篇文…

【严重】GeoServer 存在 sql 注入漏洞(POC已公开)

漏洞描述 GeoServer是一款开源地图服务器&#xff0c;主要用于发布、共享和处理各种地理空间数据。 在GeoServer 的受影响版本中由于未对用户传入的 CQL_FILTER参数进行安全校验&#xff0c;在以数据库作为数据存储时&#xff0c;攻击者可构造攻击语句&#xff0c;绕过GeoSer…

Maven(三):Maven的组成详解

文章目录 坐标和依赖坐标详解依赖配置依赖范围传递性依赖依赖调节可选依赖优化排除依赖归类依赖优化依赖 仓库本地仓库远程仓库仓库镜像常用搜索地址 生命周期与插件三套生命周期clean生命周期default生命周期site生命周期 插件 聚合与继承更加灵活的构建常见问题使用jdk来运行…

使用UglifyJS实现一条指令打包发布项目实例

在前端页面开发中&#xff0c;使用Vue、Angular、React等框架构建的项目通常都会自动配置集成相关代码压缩发布的工具&#xff0c;开发者只需要执行指定命令即可完成项目的整体压缩发布操作。对于没有使用框架的项目&#xff0c;需要开发者手动配置使用相关工具完成对应操作&am…

【OBS】SpringBoot + Vue + el-upload 通过临时 URL 上传文件到 OBS

华为云OBS的官方文档&#xff08;链接&#xff1a;https://support.huaweicloud.com/sdk-java-devg-obs/obs_21_0901.html#section1&#xff09;中关于上传文件的内容&#xff0c;只提供了使用JAVA获取临时上传链接&#xff0c;并使用JAVA创建请求上传纯文本的方法。想要把这部…

离线分析fsimage文件进行数据深度分析

以离线分析FsImage文件进行数据深度分析 整个方案的基本架构&#xff1a; FsImage文件时HDFS存放在NameNode中的镜像文件&#xff0c;里面包括了整个HDFS集群的目录和文件信息&#xff0c;(类似于一个索引目录部分数据的文件)&#xff0c;而且HDFS提供了命令可以将FsImage文件…

【严重】VMware Aria Operations for Networks 远程代码执行漏洞(存在POC)

漏洞描述 VMware Aria Operations for Networks (前名为vRealize Network Insight)是 VMware 公司提供的一款网络可视性和分析工具&#xff0c;用于优化网络性能或管理各种VMware和Kubernetes部署。 VMware Aria Operations for Networks 6.x版本中由于 createSupportBundle…

How to fix the global rice crisis 如何应对全球稻米危机 | 经济学人20230401版双语精翻

4月1日《经济学人》周报封面即社论区&#xff08;Leaders&#xff09;精选文章&#xff1a;《如何应对全球稻米危机》&#xff08;How to fix the global rice crisis&#xff09;。 “民以食为天”语出《孟子公孙丑上》&#xff0c;强调&#xff1a;人民的生命福祉和国家的繁荣…

每日一练 | 华为认证真题练习Day62

1、广播地址是网络地址中主机位全部置为1的一种特殊地址&#xff0c;它也可以做为主机地址使用。 A. True B. False 2、如图所示&#xff0c;如果管理员希望能够提升此网络的性能&#xff0c;则下面哪一种方法最合适&#xff1f; A. 使用交换机把每台主机连接起来&#xff0c…

java8 (jdk 1.8) 新特性——Stream ApI以及具体实例

在java8 中&#xff0c;有两个最重要的改变&#xff0c;一个就是之前了解的Lmbda java8 (jdk 1.8) 新特性——Lambda ,还有一个就是Stream Api 1. 什么是Stream API 简单来说就是一个类库&#xff0c;里边有一些方法方便我们对集合数据进行操作&#xff0c;就好像使用 SQL 语…

是单例模式,不是单身

✍&#x1f3fc;作者&#xff1a;周棋洛&#xff0c;计算机学生 ♉星座&#xff1a;金牛座 &#x1f3e0;主页&#xff1a;点击学习更多 &#x1f310;关键&#xff1a;JavaScript 单例 设计模式 单例模式的定义是&#xff1a;保证一个类仅有一个实例&#xff0c;并提供一个访问…

数据结构05:树与二叉树[C++][线索二叉树:先序、中序、后序]

图源&#xff1a;文心一言 考研笔记整理1.4W字&#xff0c;小白友好、代码先、中序可跑&#xff0c;后序代码有点问题仅作记录~~&#x1f95d;&#x1f95d; 第1版&#xff1a;查资料、写BUG、画导图、画配图~&#x1f9e9;&#x1f9e9; 参考用书&#xff1a;王道考研《2024…

领域事件解读

文章目录 EventBus简介DDD领域事件架构简析快速入门pom依赖bean配置PublisherSubscriber 设计原理PublisherSubscriber 事件总线(EventBus)&#xff0c;设计初衷是解耦系统模块&#xff0c;将系统中的各类业务操作抽象为事件模型&#xff0c;我们把产生事件的部分称之为事件的发…

电容笔哪个厂家的产品比较好?时下热门的平替苹果笔

苹果原装的Pencil&#xff0c;在市场上可是炙手可热的&#xff0c;而且苹果的这款pencil&#xff0c;也不是什么便宜的。当然&#xff0c;你可以用这个苹果笔搭配iPad&#xff0c;不过&#xff0c;如果你不想花很多钱&#xff0c;那就可以换一支普通的平替电容笔。就当前的技术…

一篇搞定C语言操作符(详解含示例)

目录 一.操作符是什么&#xff1f; 基本特征 语义 优先级 结合性 二.操作符的分类 三.操作符各类详解 1.算数操作符&#xff08; - * / %&#xff09; &#xff08;1&#xff09;优先级&#xff1a; &#xff08;2&#xff09;除法操作符&#xff08;…