IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 关于做java web课程设计时遇到的一些坑(宿舍报修系统) -> 正文阅读

[Java知识库]关于做java web课程设计时遇到的一些坑(宿舍报修系统)

关于做java web课程设计时遇到的一些坑(宿舍报修系统)

在做课设初期,一定要先想好逻辑思路,明白需求和要实现的功能,最好使用画图工具画出逻辑流程

一开始很多人不知道从哪开始,不知道从何下手,其实只要迈开第一步后面的都会迎刃而解了

在写代码之初,想好所有功能,系统流程,设计好数据库表,用prosess on或者pencil这类的工具来构建出整体的流程,这样后面就可以按照构建好的逻辑流程来一步步实现各个功能就好了
在这里插入图片描述

数据库表一定要仔细想好有哪些表,每个表里有哪些内容,有哪些需要设计主键外键,每个属性的类型,属性的长度都需要考虑,同样将每个表的设计思路记录下来,在设计数据库时参考使用
在这里插入图片描述

系统功能的实现一直都是增删改查,增删改查的每个功能的方法写在DAO里,一个DAO对应一个实体类,一个实体类对应一个数据库的表。如果涉及到多个表联立的增删改查,那就对需要增删改查的属性构建初一个实体类写get set方法和DAO
在这里插入图片描述

举个栗子,就登录的功能实现,首先需要对用户表user创建一个实体类,再写一个用户表的userDAO,在userDAO里写查询操作的方法,查询方法里传进用户名username和用户密码userpassword两个参数,select的sql语句对用户表进行查询,有则返回TRUE无则返回FALSE

那这两个参数,username和userpassword从哪里来的呢?那肯定是我们自己输入的呀,通过用户自己输入的两个值来查询用户表中有无对应的。具体是从jsp页面,form表单要包裹住input标签和button按钮,form表单action属性写自己登录的servlet,method方式推荐使用post,按钮的type属性设置为submit这样才能提交表单,input标签的name属性,servlet里就是同过name获取值的,跟js通过id获取是类似的,servlet是通过name。

大致的流程是,通过jsp页面里,form表单中设置好input的name属性,提交到servlet里,在servlet里request.getParameter(“name属性名”)获得到输入的值也就是value,调用DAO里的方法,将值传进去,查询数据库有则用户名密码正确无用户名或密码错误

在这里插入图片描述

基本上所有的功能都是这样的流程了,在jsp页面展示数据,form提交表单或a连接到Servlet,在Servlet调用DAO操控数据库,转发到另外的jsp页面,灵活使用这样的流程就可以实现功能了

遇到的一些坑

1、

input disabled="disabled"

input的这个属性是禁用输入框,也就是不能输入内容了,但是提交表单后在Servlet里不能通过request.getParameter()来获取里面的内容了,我在做数据回传时显示了value值,但是并不能提交表单后获取到它的value值,没办法我在它上面又加了个input表单只不过设置了dispaly:none隐藏了它拿到的,后来搜了之后才发现,用readOnly="readOnly"可以实现与disable相同的效果,并且request.getParameter()还能拿到数据回显的value值。还是学艺不精啊!

2、

查询数据库中为空的字段要使用is null

在查询数据库表中某一字段为空的时候,下意识sql语句就用了where后面的条件age=null,然后什么也查询不到,原因在于写条件语句某个字段是空的要用is null来代表,比如这里就应该写为age is null,注意不是等于null,是is null
在这里插入图片描述

3、

有时候查询某个字段时查询不到,检查一下是否有空格或回车,这个特别搞人心态,查了半天sql语句明明没有问题,却就是查询不到,如果说在图形化界面用sql语句查询特定字段查不到,就仔细看看有没有空格,表里那有空格而写的sql语句里没有,那肯定是查不到的

另外文本域标签<textarea type="text" style="resize:none;" ></textarea>这后面的尖括号一定要对齐放在同一行,中间不要有回车空格,不然在文本域里的光标不会定在第一个,这样写入数据时会有空格
在这里插入图片描述
假如写的是<textarea type="text" style="resize:none;" > </textarea>这种那就会有空格
在这里插入图片描述
或者写成这种有回车的,也有
在这里插入图片描述

4、

有需要传递某个参数,最好用form表单提交到Servlet,用session有些占资源,用?传参的话在页面特别丑而且不安全。在一开始做课设时我用?加&传递参数,在跳转时页面的地址栏就显示出id啊name什么的,特别不安全且不美观。如果在遇到需要传递for : 循环里的get的某个值时,可以用js来传递,也或者用a链接加?<%=要传递的参数%>传递到Servlet

一些建议

无论是写DAO还是实体类,或者写jsp页面和Servlet,最好按照规范来,用多个包来分别装,这样写到后面不会很混乱,找对应的jsp或Servlet会方便很多,在写DAO里的sql语句时,先在图形化界面写sql语句运行,成功的话再对照着写sql语句,因为sql语句里的单引号双引号很容易出错。起名按照规范起,也能看的清楚找的方便。

想不起来了,后面想起来再补充吧

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-11-16 18:41:57  更:2021-11-16 18:43:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 1:44:53-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码