javaWeb——日记本系统
日记本系统(更新中)
写在前面
系统采用传统的Jsp+Servlet+Model的MVC开发模式,前端采用主流的BootStrap技术,数据库采用Mysql,实现了个人日记本系统,亮点是Bootstrap的综合运用,ckeditor的运用以及FileUpload组件上传图片,以及MD5加密的应用(该项目是非本人开发,只是学习其中的知识);
一、需求:
- 登陆注册
- 日记的增删该查
- 日记分类(增删改查)
- 个人中心(头像,名字,签名等信息)
二、数据库设计:
三张表:
t_user(userId,userName,password,nickName,imageName,mood)//password因为采用MD5加密,所以设置长一点(50)
t_diary (diaryId,title,content,typeId,releaseDate )//content 内容长,datatype用text,releaseDate的格式用datetime
t_diaryType(diaryTypeId,typeName)主外键设置(外键:其他表中的主键称为外键):
t_diary 中的 typeId外键 关联 t_diaryTaye中的 diaryTypeId主键 (对应关系为多对1)
navicat设置外键:
外键名(name):可以不填, 系统自动生成;
栏位名(Field Name): 就是设置‘typeId’为外键;
参考数据库(Reference DadaBase): 外键关联的数据库;
引用表(Reference Table): 关联的表;
外栏位名(Outside field name): 关联的字段(这里是“diaryTypeId”, 可以与栏位名相同);
删除时:删除时候选择的动作
刷新时:更新时候选择的动作
(在设置外键的时候,删除时和更新时两列有四个值可以选择:CASCADE、NO ACTION、RESTRICT、SET NULL,自己全亲自试了一遍,它们的区别如下:
CASCADE:父表delete、update的时候,子表会delete、update掉关联记录;
SET NULL:父表delete、update的时候,子表会将关联记录的外键字段所在列设为null,所以注意在设计子表时外键不能设为not null;
RESTRICT:如果想要删除父表的记录时,而在子表中有关联该父表的记录,则不允许删除父表中的记录;
NO ACTION:同 RESTRICT,也是首先先检查外键;)设计表注意事项:
1.对于id这种主键:int 型,主键,不允许为空,自动递增
2.对于日期,需要特殊格式:如datetime
3.像比较长的文本如日记内容可设置格式为text
4.对于其他的属性,只要是包含汉字型的,如名称,密码都将类型设置为varchar,长度根据需求设置即可。
三.后台代码
四个包:
Dao:数据访问对象层
Model:模型层
Util:工具层
Web:web访问层
- Util:
连接数据库:
注意事项:添加mysql得jar包:mysql-connector-java
public class DbUtil2 {private String dbUrl="jdbc:mysql://localhost:3306/db_diary";private String dbUserName="root";private String dbPassword="l1542735938";private String jdbcName="com.mysql.jdbc.Driver";
//获取连接:先加载驱动,再连接public Connection getCon() throws Exception{Class.forName(jdbcName);
Connection con =DriverManager.getConnection(dbUrl,dbUserName,dbPassword);return con;}
//关闭连接public void closeCon(Connection con) throws Exception{if (con!=null){con.close();}}
- model
根据数据库中的表建相关的类; - dao
用于登陆账号密码的验证等
如验证登陆信息:
public User login(Connection con ,User user) throws Exception{User resultUser=null;//若不存在则返回Null//查找数据库中是否存在userString sql="select *from t_user where userName=?and password=?";PreparedStatement pstmt=con.prepareStatement(sql);pstmt.setString(1, user.getUserName());pstmt.setString(2, user.getPassword());ResultSet rs=pstmt.executeQuery();if(rs.next()){//如果存在,就初始化resultUserresultUser=new User();resultUser.setUserId(rs.getInt("userId"));resultUser.setUserName(rs.getString("userName"));resultUser.setPassword(rs.getString("password"));}return resultUser;}
- web
注意事项:- 先将tomcat的包添加(buildPath)
- 继承HttpServlet
- 覆盖父类的doPost,doGet方法
代码
package web;import java.io.IOException;
import java.sql.Connection;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;import dao.UserDao;
import model.User;
import util.DbUtil;public class LoginServlet extends HttpServlet{private static final long serialVersionUID = 1L;@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {this.doPost(req, resp);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//获取session对象,用于保存当前登陆对象HttpSession session=req.getSession();//获取前台用户信息,用于验证是否合法String userName=req.getParameter("userName");String password=req.getParameter("password");Connection con= null;DbUtil dbUtil=new DbUtil();UserDao userDao=new UserDao();try {con=dbUtil.getCon();User currentUser=userDao.login(con, new User(userName,password));if(currentUser==null){}else{session.setAttribute("currentUser", currentUser);resp.sendRedirect("main.jsp");}} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();} finally{try {dbUtil.closeCon(con);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}
javaWeb——日记本系统相关推荐
- JavaWeb项目实战 - SpringBoot日记本系统(第一期)
哈喽,我是兔哥呀,终于啊,这个SpringBoot日记本系统完成啦.(虽然留了一堆BUG) 撒花,写教程是真的很累的一件事情. 第一期教程一共9个小节: 大家可以直接关注这个专栏: SpringBoo ...
- jsp servlet mysql项目_JSP+Servlet+JDBC+mysql实现的个人日记本系统
项目简介 本系统基于JSP+Servlet+Mysql 一个基于JSP+Servlet+Jdbc的个人日记本系统.涉及技术少,易于理解,适合JavaWeb初学者学习使用. 难度等级:入门 技术栈 编辑 ...
- mysql日记本程序_JSP+Servlet+JDBC+mysql实现的个人日记本系统
项目简介 本系统基于JSP+Servlet+Mysql 一个基于JSP+Servlet+Jdbc的个人日记本系统.涉及技术少,易于理解,适合JavaWeb初学者学习使用. 难度等级:入门 技术栈 编辑 ...
- JavaWeb购物系统(七)购物系统主页,商品的管理
效果图 未登录状态 登陆状态 商品管理页面 商品修改模态框 功能 商品展示 添加商品到购物车 查看商品 商品的信息的修改 正文 index.jsp <%@ taglib prefix=" ...
- SpringBoot日记本系统全程直播09:项目一期完结
大家好,我是兔哥呀.我又来啦,这个SpringBoot日记本系统已经接近尾声了,目前已经完成的模块有日记本的增删改查,类型的增删改查,头像上传,还有个人中心. 最后一节呢,我们来做一个收尾工作哈. 目 ...
- Java实战项目之个人日记本系统【源码+课后指导】_Java毕业设计/计算机毕业设计
供大家练习学习用的Java实战项目来咯--[个人日记本系统]!Java实战项目之个人日记本系统[源码+课后指导]_Java毕业设计/计算机毕业设计https://www.bilibili.com/vi ...
- 用java做日记本系统_jsp+servlet开发java web个人日记本系统
项目描述 Jsp_Servlet技术使用个人日记本系统,主要有日记分类,添加日记,删除日记和一些个人资料的修改. 运行环境 jdk8+tomcat7+mysql5.6+IntelliJ IDEA(ec ...
- 计算机课程设计-ssm在线点餐系统(沙箱支付)-javaweb外卖系统
计算机课程设计-ssm在线点餐系统(沙箱支付)-javaweb外卖系统 1 开发环境及工具下载 开发语言:Java 后台:SSM(Spring+SpringMVC+Mybatis) 前端:HTML+C ...
- JSP养老院管理系统JSP养老院系统javaweb养老院系统JSP敬老院管理系统JSP敬老院系统
JSP养老院管理系统JSP养老院系统javaweb养老院系统JSP敬老院管理系统JSP敬老院系统 protected void doGet(HttpServletRequest req, HttpSe ...
- 基于LayUI框架的Jsp日记本系统
基于LayUI框架的Jsp日记本系统 先看几张效果图 下载地址: 链接: https://pan.baidu.com/s/1Aa_qUcpi2_B4-QIpl4FWGw 提取码: 5r5k
最新文章
- fbx 转 gltf glb 文件
- firedac的TFDStoredProc动态创建并调用存储过程
- 从Cell的视图推出一个新的界面
- node 遍历读取制定后缀文件名
- java 检查进程是否存在
- SQL Server 和 Oracle 以及 MySQL 有哪些区别?
- 【JSP开发】有关session的一些重要的知识点
- Spring面试基础题
- 2019全球最具颠覆性的17大公司
- kappa一致性检验教程_一致性检验(kappa一致性分析)
- 零基础是学习Java还是大数据?
- 机器学习常用的六种分类方法,Python代码详细都在这里!
- 【STM32学习笔记】#001 前期准备
- 第四周铁人战队学习总结
- python 创业_如何在下午使用python和破折号创业
- 计算机科学技术考研内容,计算机科学与技术考研考哪些科目?
- Android10.0 展讯平台解锁
- 学习笔记 | 硬盘故障检测
- 工业制造中PHM的云架构
- SCI SCIE区别
热门文章
- 多目标优化算法(一)NSGA-Ⅱ(NSGA2)
- 论文精读:车尧-《社会网络视角下战略性新兴产业的专利情报研究》
- 科技爱好者周刊(第 199 期):俄罗斯的 HTTPS 证书问题
- mysql软件字体模糊_Windows 10字体模糊发虚! 如何解决?
- 整人输入指定内容退出html,整人代码
- cad填充密度怎么调整_CAD填充图案时无法正常填充看似封闭的区域怎么解决?
- Object-C语法
- 微信文章互阅python脚本,一天可刷120分
- 博士一篇SCI三区即可入职该高校,配偶是硕士的,直接给事业编!还有45万安家费…...
- 工业控制领域关键技术趋势