基于javaweb的JSP+Servlet日记系统(java+jsp+bootstrap+servlet+mysql)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

560023452402

570023452402

580023452402

590023452402

010023462402

020023462402

基于javaweb的JSP+Servlet日记系统(java+jsp+bootstrap+servlet+mysql)

项目介绍

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

环境需要

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/ 登录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
	/**
* 日记删除
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
private void diaryDelete(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
String diaryId=request.getParameter("diaryId");
Connection con=null;
try{
con=dbUtil.getCon();
diaryDao.diaryDelete(con, diaryId);
request.getRequestDispatcher("main?all=true").forward(request, response);
}catch(Exception e){
e.printStackTrace();
}finally{
try {
dbUtil.closeCon(con);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
package com.xyj.web;



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
User user=(User)session.getAttribute("currentUser");
boolean imageChange=false;
while(itr.hasNext()){
FileItem item=(FileItem)itr.next();
if(item.isFormField()){
String fieldName=item.getFieldName();
if("nickName".equals(fieldName)){
user.setNickName(item.getString("utf-8"));
}
if("mood".equals(fieldName)){
user.setMood(item.getString("utf-8"));
}
}else if(!"".equals(item.getName())){
try{
imageChange=true;
String imageName=DateUtil.getCurrentDateStr();
user.setImageName(imageName+"."+item.getName().split("\\.")[1]);
String filePath=PropertiesUtil.getValue("imagePath")+imageName+"."+item.getName().split("\\.")[1];
item.write(new File(filePath));
}catch(Exception e){
e.printStackTrace();
}
}
}

if(!imageChange){
user.setImageName(user.getImageName().replaceFirst(PropertiesUtil.getValue("imageFile"), ""));
}

Connection con=null;
try {
con=dbUtil.getCon();
int saveNums=userDao.userUpdate(con, user);
if(saveNums>0){
user.setImageName(PropertiesUtil.getValue("imageFile")+user.getImageName());
session.setAttribute("currentUser", user);
request.getRequestDispatcher("main?all=true").forward(request, response);
}else{
request.setAttribute("currentUser", user);
request.setAttribute("error", "保存失败!");
request.setAttribute("mainPage", "user/userSave.jsp");
request.getRequestDispatcher("mainTemp.jsp").forward(request, response);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
dbUtil.closeCon(con);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
					imageChange=true;
String imageName=DateUtil.getCurrentDateStr();
user.setImageName(imageName+"."+item.getName().split("\\.")[1]);
String filePath=PropertiesUtil.getValue("imagePath")+imageName+"."+item.getName().split("\\.")[1];
item.write(new File(filePath));
}catch(Exception e){
e.printStackTrace();
}
}
}

if(!imageChange){
user.setImageName(user.getImageName().replaceFirst(PropertiesUtil.getValue("imageFile"), ""));
}

Connection con=null;
try {
con=dbUtil.getCon();
int saveNums=userDao.userUpdate(con, user);
if(saveNums>0){
user.setImageName(PropertiesUtil.getValue("imageFile")+user.getImageName());
session.setAttribute("currentUser", user);
request.getRequestDispatcher("main?all=true").forward(request, response);
}else{
request.setAttribute("currentUser", user);
request.setAttribute("error", "保存失败!");
request.setAttribute("mainPage", "user/userSave.jsp");
request.getRequestDispatcher("mainTemp.jsp").forward(request, response);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
dbUtil.closeCon(con);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

}
package com.xyj.web;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
		e.printStackTrace();
}finally{
try {
dbUtil.closeCon(con);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

/**
* 日记类别准备保存
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
private void diaryTypePreSave(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
String diaryTypeId=request.getParameter("diaryTypeId");
if(StringUtil.isNotEmpty(diaryTypeId)){
Connection con=null;
try{
con=dbUtil.getCon();
DiaryType diaryType=diaryTypeDao.diaryTypeShow(con,diaryTypeId);
request.setAttribute("diaryType", diaryType);
}catch(Exception e){
e.printStackTrace();
}finally{
try {
dbUtil.closeCon(con);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
request.setAttribute("mainPage", "diaryType/diaryTypeSave.jsp");
request.getRequestDispatcher("mainTemp.jsp").forward(request, response);
}

/**
* 日记类别保存
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
private void diaryTypeSave(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
String diaryTypeId=request.getParameter("diaryTypeId");
String typeName=request.getParameter("typeName");
DiaryType diaryType=new DiaryType(typeName);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
	if(StringUtil.isEmpty(page)){  // 判断当前页是否是空
page="1"; // 假如是空,默认赋值1
}
Connection con=null;
// 封装分页组件
PageBean pageBean=new PageBean(Integer.parseInt(page),Integer.parseInt(PropertiesUtil.getValue("pageSize")));
try {
con=dbUtil.getCon();
List<Diary> diaryList=diaryDao.diaryList(con,pageBean,diary); // 获取日记对象集合
int total=diaryDao.diaryCount(con,diary); // 获取总记录数
// 获取分页代码
String pageCode=this.genPagation(total, Integer.parseInt(page), Integer.parseInt(PropertiesUtil.getValue("pageSize")));
request.setAttribute("pageCode", pageCode);
request.setAttribute("diaryList", diaryList);
session.setAttribute("diaryTypeCountList", diaryTypeDao.diaryTypeCountList(con));
session.setAttribute("diaryCountList", diaryDao.diaryCountList(con));
request.setAttribute("mainPage", "diary/diaryList.jsp");
request.getRequestDispatcher("mainTemp.jsp").forward(request, response);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
dbUtil.closeCon(con);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

/**
* 获取分页代码
* @param totalNum 总记录数
* @param currentPage 当前页
* @param pageSize 每页大小
* @return
*/
private String genPagation(int totalNum,int currentPage,int pageSize){
int totalPage=totalNum%pageSize==0?totalNum/pageSize:totalNum/pageSize+1;
StringBuffer pageCode=new StringBuffer();
pageCode.append("<li><a href='main?page=1'>首页</a></li>");
if(currentPage==1){
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
 */
private void userSave(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
FileItemFactory factory=new DiskFileItemFactory();
ServletFileUpload upload=new ServletFileUpload(factory);
List<FileItem> items=null;
try {
items=upload.parseRequest((RequestContext) request);
} catch (FileUploadException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Iterator<FileItem> itr=items.iterator();

HttpSession session=request.getSession();

User user=(User)session.getAttribute("currentUser");
boolean imageChange=false;
while(itr.hasNext()){
FileItem item=(FileItem)itr.next();
if(item.isFormField()){
String fieldName=item.getFieldName();
if("nickName".equals(fieldName)){
user.setNickName(item.getString("utf-8"));
}
if("mood".equals(fieldName)){
user.setMood(item.getString("utf-8"));
}
}else if(!"".equals(item.getName())){
try{
imageChange=true;
String imageName=DateUtil.getCurrentDateStr();
user.setImageName(imageName+"."+item.getName().split("\\.")[1]);
String filePath=PropertiesUtil.getValue("imagePath")+imageName+"."+item.getName().split("\\.")[1];
item.write(new File(filePath));
}catch(Exception e){
e.printStackTrace();
}
}
}

if(!imageChange){


项目链接:
https://javayms.github.io?id=091122532008200py
https://javayms.pages.dev?id=091122532008200py