Java项目:基于jsp+sevlet+mysql日记系统

news2024/11/27 18:49:59

作者主页:源码空间站2022

 简介:Java领域优质创作者、Java项目、学习资料、技术互助

文末获取源码

项目介绍

本项目主要功能有: 
写日记 查看日记 日记删除 日记修改 日记类别添加 日记类别修改 日记类别删除 个人信息查看 个人信息修改 分页功能

用户名:xyj 密码:123456

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可
4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 
5.数据库:MySql 5.7版本;

6.是否Maven项目: 否;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目

技术栈

1. 后端:servlet

2. 前端:JSP+bootstrap+jQuery

使用说明

1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;
若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行;
3. 将项目中db.properties配置文件中的数据库配置改为自己的配置;

4. 运行项目,在浏览器中输入http://localhost:8080/ 登录

运行截图

相关代码 

NewsTypeServlet

package com.java1234.web;

import java.io.IOException;
import java.sql.Connection;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import net.sf.json.JSONObject;

import com.java1234.dao.NewsDao;
import com.java1234.dao.NewsTypeDao;
import com.java1234.model.Link;
import com.java1234.model.NewsType;
import com.java1234.util.DbUtil;
import com.java1234.util.NavUtil;
import com.java1234.util.ResponseUtil;
import com.java1234.util.StringUtil;

public class NewsTypeServlet extends HttpServlet{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	DbUtil dbUtil=new DbUtil();
	NewsDao newsDao=new NewsDao();
	NewsTypeDao newsTypeDao=new NewsTypeDao();
	
	@Override
	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		this.doPost(request, response);
	}

	@Override
	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		String action=request.getParameter("action");
		if("preSave".equals(action)){
			this.newsTypePreSave(request, response);
		}else if("save".equals(action)){
			this.newsTypeSave(request, response);
		}else if("backList".equals(action)){
			this.newsTypeBackList(request, response);
		}else if("delete".equals(action)){
			this.newsTypeDelete(request, response);
		}
		
	}

	private void newsTypePreSave(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		String newsTypeId=request.getParameter("newsTypeId");
		Connection con=null;
		try{
			con=dbUtil.getCon();
			if(StringUtil.isNotEmpty(newsTypeId)){
				NewsType newsType=newsTypeDao.getNewsTypeById(con, newsTypeId);
				request.setAttribute("newsType", newsType);
			}
			
			if(StringUtil.isNotEmpty(newsTypeId)){
				request.setAttribute("navCode", NavUtil.genNewsManageNavigation("新闻类别管理", "新闻类别修改"));
			}else{
				request.setAttribute("navCode", NavUtil.genNewsManageNavigation("新闻类别管理", "新闻类别添加"));
			}
			request.setAttribute("mainPage", "/background/newsType/newsTypeSave.jsp");
			request.getRequestDispatcher("/background/mainTemp.jsp").forward(request, response);
		}catch(Exception e){
			e.printStackTrace();
		}finally{
			try {
				dbUtil.closeCon(con);
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
	
	private void newsTypeSave(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		Connection con=null;
		String newsTypeId=request.getParameter("newsTypeId");
		String typeName=request.getParameter("typeName");
		
		NewsType newsType=new NewsType(typeName);
		
		if(StringUtil.isNotEmpty(newsTypeId)){
			newsType.setNewsTypeId(Integer.parseInt(newsTypeId));
		}
		try{
			con=dbUtil.getCon();
			if(StringUtil.isNotEmpty(newsTypeId)){
				newsTypeDao.newsTypeUpdate(con, newsType);
			}else{
				newsTypeDao.newsTypeAdd(con, newsType);
			}
			request.getRequestDispatcher("/newsType?action=backList").forward(request, response);
		}catch(Exception e){
			e.printStackTrace();
		}finally{
			try {
				dbUtil.closeCon(con);
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
	
	
	private void newsTypeBackList(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		Connection con=null;
		try{
			con=dbUtil.getCon();
			List<NewsType> newsTypeBackList=newsTypeDao.newsTypeList(con);
			request.setAttribute("newsTypeBackList", newsTypeBackList);
			request.setAttribute("navCode", NavUtil.genNewsManageNavigation("新闻类别管理", "新闻类别维护"));
			request.setAttribute("mainPage", "/background/newsType/newsTypeList.jsp");
			request.getRequestDispatcher("/background/mainTemp.jsp").forward(request, response);
		}catch(Exception e){
			e.printStackTrace();
		}finally{
			try {
				dbUtil.closeCon(con);
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		
	}
	
	private void newsTypeDelete(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		String newsTypeId=request.getParameter("newsTypeId");
		Connection con=null;
		try{
			con=dbUtil.getCon();
			JSONObject result=new JSONObject();
			boolean exist=newsDao.existNewsWithNewsTypeId(con, newsTypeId);
			if(exist){
				result.put("errorMsg", "该新闻类别下有新闻,不能删除此新闻类别");
			}else{
				int delNums=newsTypeDao.newsTypeDelete(con, newsTypeId);
				if(delNums>0){
					result.put("success", true);
				}else{
					result.put("errorMsg", "删除失败");
				}
			}
			ResponseUtil.write(result, response);
		}catch(Exception e){
			e.printStackTrace();
		}finally{
			try {
				dbUtil.closeCon(con);
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
}

UserServlet

package com.java1234.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 com.java1234.dao.UserDao;
import com.java1234.model.User;
import com.java1234.util.DbUtil;

public class UserServlet extends HttpServlet{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	DbUtil dbUtil=new DbUtil();
	UserDao userDao=new UserDao();

	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		this.doPost(request, response);
	}

	@Override
	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		String action=request.getParameter("action");
		if("login".equals(action)){
			login(request,response);
		}else if("logout".equals(action)){
			logout(request,response);
		}
		
	}
	
	private void login(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		String userName=request.getParameter("userName");
		String password=request.getParameter("password");
		
		HttpSession session=request.getSession();
		Connection con=null;
		try{
			con=dbUtil.getCon();
			User user=new User(userName,password);
			User currentUser=userDao.login(con, user);
			if(currentUser==null){
				request.setAttribute("error", "用户名或者密码错误!");
				request.setAttribute("password", password);
				request.setAttribute("userName", userName);
				request.getRequestDispatcher("/background/login.jsp").forward(request, response);
			}else{
				session.setAttribute("currentUser", currentUser);
				request.setAttribute("mainPage", "/background/default.jsp");
				request.getRequestDispatcher("/background/mainTemp.jsp").forward(request, response);
			}
		}catch(Exception e){
			e.printStackTrace();
		}finally{
			try {
				dbUtil.closeCon(con);
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
	
	private void logout(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		request.getSession().invalidate();
		System.out.println(request.getContextPath()+"/background/login.jsp");
		response.sendRedirect(request.getContextPath()+"/background/login.jsp");
	}

}

LinkServlet

package com.java1234.web;

import java.io.IOException;
import java.sql.Connection;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import net.sf.json.JSONObject;

import com.java1234.dao.LinkDao;
import com.java1234.model.Link;
import com.java1234.util.DbUtil;
import com.java1234.util.NavUtil;
import com.java1234.util.ResponseUtil;
import com.java1234.util.StringUtil;

public class LinkServlet extends HttpServlet{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	DbUtil dbUtil=new DbUtil();
	LinkDao linkDao=new LinkDao();

	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		this.doPost(request, response);
	}

	@Override
	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		String action=request.getParameter("action");
		if("preSave".equals(action)){
			linkPreSave(request,response);
		}else if("save".equals(action)){
			linkSave(request,response);
		}else if("backList".equals(action)){
			linkBackList(request,response);
		}else if("delete".equals(action)){
			linkDelete(request,response);
		}
		
	}
	
	private void linkDelete(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException{
		String linkId=request.getParameter("linkId");
		Connection con=null;
		try{
			con=dbUtil.getCon();
			JSONObject result=new JSONObject();
			int delNums=linkDao.linkDelete(con, linkId);
			if(delNums>0){
				result.put("success", true);
			}else{
				result.put("errorMsg", "删除失败");
			}
			ResponseUtil.write(result, response);
		}catch(Exception e){
			e.printStackTrace();
		}finally{
			try {
				dbUtil.closeCon(con);
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}

	private void linkBackList(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException{
		Connection con=null;
		try{
			con=dbUtil.getCon();
			List<Link> linkBackList=linkDao.linkList(con, "select * from t_link order by orderNum");
			request.setAttribute("linkBackList", linkBackList);
			request.setAttribute("navCode", NavUtil.genNewsManageNavigation("友情链接管理", "友情链接维护"));
			request.setAttribute("mainPage", "/background/link/linkList.jsp");
			request.getRequestDispatcher("/background/mainTemp.jsp").forward(request, response);
		}catch(Exception e){
			e.printStackTrace();
		}finally{
			try {
				dbUtil.closeCon(con);
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}

	private void linkPreSave(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException{
		String linkId=request.getParameter("linkId");
		Connection con=null;
		try{
			con=dbUtil.getCon();
			if(StringUtil.isNotEmpty(linkId)){
				Link link=linkDao.getLinkById(con, linkId);
				request.setAttribute("link", link);
			}
			
			if(StringUtil.isNotEmpty(linkId)){
				request.setAttribute("navCode", NavUtil.genNewsManageNavigation("友情链接管理", "友情链接修改"));
			}else{
				request.setAttribute("navCode", NavUtil.genNewsManageNavigation("友情链接管理", "友情链接添加"));
			}
			request.setAttribute("mainPage", "/background/link/linkSave.jsp");
			request.getRequestDispatcher("/background/mainTemp.jsp").forward(request, response);
		}catch(Exception e){
			e.printStackTrace();
		}finally{
			try {
				dbUtil.closeCon(con);
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
	
	private void linkSave(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		Connection con=null;
		String linkId=request.getParameter("linkId");
		String linkName=request.getParameter("linkName");
		String linkUrl=request.getParameter("linkUrl");
		String linkEmail=request.getParameter("linkEmail");
		String orderNum=request.getParameter("orderNum");
		
		Link link=new Link(linkName, linkUrl, linkEmail, Integer.parseInt(orderNum));
		
		if(StringUtil.isNotEmpty(linkId)){
			link.setLinkId(Integer.parseInt(linkId));
		}
		try{
			con=dbUtil.getCon();
			if(StringUtil.isNotEmpty(linkId)){
				linkDao.linkUpdate(con, link);
			}else{
				linkDao.linkAdd(con, link);
			}
			request.getRequestDispatcher("/link?action=backList").forward(request, response);
		}catch(Exception e){
			e.printStackTrace();
		}finally{
			try {
				dbUtil.closeCon(con);
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
}

如果也想学习本系统,下面领取。关注并回复:127jsp

 

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

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

相关文章

java刷题day 05

一. 单选题&#xff1a; 解析&#xff1a; 5 >> 2 相当于 5除于2两次&#xff0c;等于1>>> 表示无符号右移&#xff0c;高位用 0 填充&#xff0c;0001右移两位 0000&#xff0c;所以选A解析&#xff1a;作对这道题的关键是要理解Java的值传递&#xff0c;关于值…

婚纱租赁系统毕业设计,婚纱租赁管理系统设计与实现,论文毕设作品参考

功能清单 【后台管理员功能】 广告管理&#xff1a;设置小程序首页轮播图广告和链接 留言列表&#xff1a;所有用户留言信息列表&#xff0c;支持删除 会员列表&#xff1a;查看所有注册会员信息&#xff0c;支持删除 资讯分类&#xff1a;录入、修改、查看、删除资讯分类 录入…

【Milvus的以文搜图】

0. 介绍 以文搜图指的是&#xff0c;根据文本描述&#xff0c;从图像数据库中检索与文本内容相似的图像数据并返回。通过在CSDN中搜索以文搜图&#xff0c;找到了如下两篇文章&#xff1a; 从零到一&#xff0c;教你搭建「以文搜图」搜索服务&#xff08;一&#xff09;_Zill…

Linux “挂载” 的概念

0、前言 截至到写这个稿子&#xff0c;始终对挂载的概念有点模糊&#xff0c;到底是硬盘挂载到目录&#xff1f;还是目录挂载到硬盘呢&#xff1f;今天终于从《鸟哥的Linux私房菜》中推断出了答案&#xff0c;而且也恍然大悟地理解了之前书中一句晦涩难懂的话。 1、挂载的概念…

基于Web的Markdown编辑器HedgeDoc

什么是 HedgeDoc &#xff1f; HedgeDoc 是一个开源的、基于 web 的、自托管的、协作的markdown编辑器。您可以使用它轻松地在笔记、图形甚至演示文稿上进行实时协作。用户需要做的就是将你的笔记链接分享给同事&#xff0c;他们就可以开始使用了。 不想自己搭建可以试试官方的…

基于有偏距离权值双线性插值原理(Weighted bilinear with warping)的图像超分辨重构研究-附Matlab程序

⭕⭕ 目 录 ⭕⭕✳️ 一、图像超分辨率重构原理✳️ 二、双线性插值重构理论与实验分析✳️ 2.1 双线性插值理论与实验验证✳️ 2.2 有偏距离双线性插值重构理论与实验验证✳️ 2.3 权重双线性插值理论与实验验证✳️ 2.4 有偏距离权值双线性插值理论与实验验证✳️ 三、参考文…

frps内网穿透

1 原理讲解 frp工作原理 服务端运行&#xff0c;监听一个主端口&#xff0c;等待客户端的连接&#xff1b; 客户端连接到服务端的主端口&#xff0c;同时告诉服务端要监听的端口和转发类型&#xff1b;服务端fork新的进程监听客户端指定的端口&#xff1b; 外网用户连接到客户…

2012-2020中国地区银行多指标数据

1、数据来源&#xff1a;bankscope 2、时间跨度&#xff1a;2012-2020-3季度 3、区域范围&#xff1a;中国 4、指标说明&#xff1a; 包含以下数据&#xff1a; 资产负债表&#xff0c;利润表&#xff0c;流动性表&#xff0c;资本充足率表&#xff0c;财务比率 global s…

java 高级面试题(借鉴)

谈谈ConcurrentHashMap的扩容机制 1.7版本 1. 1.7版本的ConcurrentHashMap是基于Segment分段实现的 2. 每个Segment相对于⼀个⼩型的HashMap 3. 每个Segment内部会进⾏扩容&#xff0c;和HashMap的扩容逻辑类似 4. 先⽣成新的数组&#xff0c;然后转移元素到新数组中 5. 扩容的…

vue3 antd项目实战——table表格(一文带你快速实现后台管理系统最常用的table表格)

零基础filter实现最简单的table表格知识调用核心干货下期预告关键字模糊查找&#xff08;纯前端&#xff09;关键字模糊查找&#xff08;前后交互&#xff09;知识调用 功能实现可能要用到的知识&#xff1a;vue3ant design vuets实战【ant-design-vue组件库引入】vue3项目实战…

超纯水如何除硼,除硼树脂技术分析

硼在超纯水中对晶圆厂的产品良品率的影响&#xff0c;那超纯水深度除硼的方式有哪些呢&#xff0c;在现今新型的微电子、太阳能等行业中&#xff0c;对超纯水的要求越来越高&#xff0c;对超纯水设备中PPb的硼和硅要求达到PPb级。但硼和硅属于弱电离元素&#xff0c;在水中不易…

泛型类的认识 - (了解数据结构的基础)

文章目录前言1. 为什么使用泛型类&#xff1f;2. 泛型类介绍总结前言 本篇通过介绍为什么使用泛型类&#xff0c;什么是泛型类&#xff0c;进一步为以后数据结构的学习打下基础。如有错误&#xff0c;请在评论区指正&#xff0c;让我们一起交流&#xff0c;共同进步&#xff0…

【强化学习论文合集】IJCAI-2021 强化学习论文

强化学习(Reinforcement Learning, RL),又称再励学习、评价学习或增强学习,是机器学习的范式和方法论之一,用于描述和解决智能体(agent)在与环境的交互过程中通过学习策略以达成回报最大化或实现特定目标的问题。 本专栏整理了近几年国际顶级会议中,涉及强化学习(Rein…

户外运动耳机推荐、这几款性能超强的户外运动耳机不可错过

在户外跑步的时候&#xff0c;也有不少朋友会选择戴上耳机&#xff0c;用音乐来”调味“&#xff0c;让跑步的过程不那么枯燥乏味。凡事有利就有弊&#xff0c;跑步时听音乐也如此&#xff0c;它的弊端之一是可能会有安全隐患。如果跑步时耳机音量开得太大&#xff0c;可能会忽…

JAVA-GUI工具的编写-----简易框架篇

好久没写东西了&#xff0c;毕竟一个屁民没那么多东西写的&#xff0c;来来回回就老三样&#xff0c;扯犊子的也不想写&#xff0c;今天给大家来个都感兴趣的-------如何编写自己的GUI工具&#xff1f; 当然了&#xff0c;IDEA怎么去破解&#xff0c;这里就不多比比&#xff0c…

java基础一:基础概念、面向对象

目录 1.基础概念 2.IDEA 开发工具 2.1 JDK环境配置 2.2 注释和变量 2.3 标识符 2.4 数据类型 2.5 算术运算符 2.6 赋值运算符 2.7 关系运算符 2.8 逻辑运算符 2.9 三元运算符 2.10 流程控制 3. 面向对象 3.1类和对象 3.2 静态 static 3.3 package 包 3.4 impor…

Spark系列之Spark概述

title: Spark系列 What is Apache Spark™? Apache Spark™ is a multi-language engine for executing data engineering, data science, and machine learning on single-node machines or clusters. 第一章 Spark概述 1.1 Spark的产生背景 1.1.1 MapReduce的发展 1.1.…

【Flink】时间语义和水位线的概念和使用

文章目录一 时间语义与Wartermark1 Flink中的时间语义2 EventTime的引入3 Watermark&#xff08;水位线&#xff09;&#xff08;1&#xff09;基本概念&#xff08;2&#xff09;水位线测试a 代码编写b 计算水位线c 计算结果d 深入分析&#xff08;3&#xff09;水位线时间测试…

【web前端期末大作业】html网上在线书城大学生静态网页 大学生html当当书城仿站 网上书城购物网页作业HTML

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

智慧城市解决方案典型应用

4.2.智慧城市建设目标 4.2.1.高标准的智慧城市基础设施 智慧城市的基础设施主要包括城市信息基础设施和城市空间数据基础设施两个方面。智慧城市建设的首要目标是要建立起完善的、高标准的智慧城市基础设施&#xff0c;并在此基础上建立完备的城市基础信息资源。高标准的城市…