基于javaweb+mysql的jsp+servlet日记系统(java+jsp+bootstrap+servlet+mysql)
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb+mysql的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项目
技术栈
- 后端:servlet 2. 前端:JSP+bootstrap+jQuery
使用说明
- 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven; 若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中db.properties配置文件中的数据库配置改为自己的配置; 4. 运行项目,在浏览器中输入http://localhost:8080/ 登录
dbUtil.closeCon(con);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
/**
* 准备日记保存
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
private void diaryPreSave(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
String diaryId=request.getParameter("diaryId");
Connection con=null;
try{
if(StringUtil.isNotEmpty(diaryId)){
con=dbUtil.getCon();
Diary diary=diaryDao.diaryShow(con, diaryId);
request.setAttribute("diary", diary);
}
request.setAttribute("mainPage", "diary/diarySave.jsp");
request.getRequestDispatcher("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();
}
}
}
/**
* 日记保存
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
private void diarySave(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
* 日记类别保存
* @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);
if(StringUtil.isNotEmpty(diaryTypeId)){
diaryType.setDiaryTypeId(Integer.parseInt(diaryTypeId));
}
Connection con=null;
try{
con=dbUtil.getCon();
int saveNum=0;
if(StringUtil.isNotEmpty(diaryTypeId)){
saveNum=diaryTypeDao.diaryTypeUpdate(con, diaryType);
}else{
saveNum=diaryTypeDao.diaryTypeAdd(con, diaryType);
}
if(saveNum>0){
request.getRequestDispatcher("diaryType?action=list").forward(request, response);
}else{
request.setAttribute("diaryType", diaryType);
request.setAttribute("error", "保存失败!");
request.setAttribute("mainPage", "diaryType/diaryTypeSave.jsp");
request.getRequestDispatcher("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();
}
}
}
/**
* 日记类别删除
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
private void diaryTypeDelete(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
e.printStackTrace();
}finally{
try {
dbUtil.closeCon(con);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
package com.xyj.web;
/**
* 用户管理Servlet类
*
*/
public class UserServlet extends HttpServlet{
/**
*
*/
private static final long serialVersionUID = 1L;
DbUtil dbUtil=new DbUtil(); // 实例化数据库工具类
e.printStackTrace();
}
}
}
}
package com.xyj.web;
/**
* 用户登录Servlet类
*
*/
public class LoginServlet extends HttpServlet{
/**
*
*/
private static final long serialVersionUID = 1L;
DbUtil dbUtil=new DbUtil(); // 实例化数据库工具对象
UserDao userDao=new UserDao(); // 实例化用户DAO对象
@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 {
/**
* 用户管理Servlet类
*
*/
public class UserServlet extends HttpServlet{
/**
*
*/
private static final long serialVersionUID = 1L;
DbUtil dbUtil=new DbUtil(); // 实例化数据库工具类
UserDao userDao=new UserDao(); // 实例化用户类
@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)){ // 准备保存
userPreSave(request,response);
}else if("save".equals(action)){ // 保存
userSave(request,response);
}
}
/**
* 准备保存用户
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
private void userPreSave(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
request.setAttribute("mainPage", "user/userSave.jsp");
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("list".equals(action)){ // 获取列表
diaryTypeList(request,response);
}else if("preSave".equals(action)){ // 准备日记类别保存
diaryTypePreSave(request,response);
}else if("save".equals(action)){ // 日记类别保存
diaryTypeSave(request,response);
}else if("delete".equals(action)){ // 日记类别删除
diaryTypeDelete(request,response);
}
}
/**
* 日记类别列表
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
private void diaryTypeList(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
Connection con=null;
try{
con=dbUtil.getCon();
List<DiaryType> diaryTypeList=diaryTypeDao.diaryTypeList(con);
request.setAttribute("diaryTypeList", diaryTypeList);
request.setAttribute("mainPage", "diaryType/diaryTypeList.jsp");
request.getRequestDispatcher("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();
}
}
}
/**
/**
* 主页请求Servlet类
*
*/
public class MainServlet extends HttpServlet{
/**
*
*/
private static final long serialVersionUID = 1L;
DbUtil dbUtil=new DbUtil(); // 实例化数据库工具对象
DiaryDao diaryDao=new DiaryDao(); // 实例化日记对象
DiaryTypeDao diaryTypeDao=new DiaryTypeDao(); // 实例化日记类别对象
@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");
HttpSession session=request.getSession(); // 获取session
String s_typeId=request.getParameter("s_typeId"); // 获取查询的类别id
String s_releaseDateStr=request.getParameter("s_releaseDateStr"); // 获取查询的发布日期
String s_title=request.getParameter("s_title"); // 获取查询的标题
String all=request.getParameter("all"); // 获取all
String page=request.getParameter("page"); // 获取当前页
Diary diary=new Diary();
if("true".equals(all)){ // 判断是否是全部
if(StringUtil.isNotEmpty(s_title)){ // 判断标题是否是空
diary.setTitle(s_title);
}
session.removeAttribute("s_releaseDateStr"); // 移除session中的发布日期属性
session.removeAttribute("s_typeId"); // 移除session中的类别id属性
session.setAttribute("s_title", s_title); // 移除session中的标题
}else{
@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");
HttpSession session=request.getSession(); // 获取session
String userName=request.getParameter("userName"); // 获取用户名
String password=request.getParameter("password"); // 获取密码
String remember=request.getParameter("remember"); // 获取是否记住密码
Connection con=null;
try{
con=dbUtil.getCon(); // 获取数据库连接
User user=new User(userName,password); // 实例化用户对象
User currentUser=userDao.login(con, user); // 登录验证
if(currentUser==null){ // 假如验证失败,跳回登录页面
request.setAttribute("user", user);
request.setAttribute("error", "用户名或密码错误!");
request.getRequestDispatcher("login.jsp").forward(request, response);
}else{ // 登录成功,则转发到主页面
if("remember-me".equals(remember)){ // 判断是否记住密码
rememberMe(userName,password,response);
}
session.setAttribute("currentUser", currentUser);
request.getRequestDispatcher("main").forward(request, response);
}
}catch(Exception e){
e.printStackTrace();
}finally{
try {
dbUtil.closeCon(con);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}catch(Exception e){
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 diaryPreSave(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
String diaryId=request.getParameter("diaryId");
Connection con=null;
try{
if(StringUtil.isNotEmpty(diaryId)){
con=dbUtil.getCon();
Diary diary=diaryDao.diaryShow(con, diaryId);
request.setAttribute("diary", diary);
}
request.setAttribute("mainPage", "diary/diarySave.jsp");
request.getRequestDispatcher("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();
}
}
}
/**
* 日记保存
* @param request
* @param response
* @throws ServletException
/**
* 日记类别Servlet类
*
*/
public class DiaryTypeServlet extends HttpServlet{
/**
*
*/
private static final long serialVersionUID = 1L;
DbUtil dbUtil=new DbUtil(); // 实例化数据库工具类
DiaryTypeDao diaryTypeDao=new DiaryTypeDao(); // 实例化日记类别类
DiaryDao diaryDao=new DiaryDao(); // 实例化日记类
@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("list".equals(action)){ // 获取列表
diaryTypeList(request,response);
}else if("preSave".equals(action)){ // 准备日记类别保存
diaryTypePreSave(request,response);
}else if("save".equals(action)){ // 日记类别保存
diaryTypeSave(request,response);
}else if("delete".equals(action)){ // 日记类别删除
diaryTypeDelete(request,response);
}
}
/**
* 日记类别列表
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
private void diaryTypeList(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
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){
pageCode.append("<li class='disabled'><a href='#'>上一页</a></li>");
}else{
pageCode.append("<li><a href='main?page="+(currentPage-1)+"'>上一页</a></li>");
}
for(int i=currentPage-2;i<=currentPage+2;i++){
if(i<1||i>totalPage){
continue;
}
if(i==currentPage){
pageCode.append("<li class='active'><a href='#'>"+i+"</a></li>");
}else{
pageCode.append("<li><a href='main?page="+i+"'>"+i+"</a></li>");
}
}
if(currentPage==totalPage){
pageCode.append("<li class='disabled'><a href='#'>下一页</a></li>");
}else{
pageCode.append("<li><a href='main?page="+(currentPage+1)+"'>下一页</a></li>");
}
pageCode.append("<li><a href='main?page="+totalPage+"'>尾页</a></li>");
* @param response
* @throws ServletException
* @throws IOException
*/
private void diaryShow(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
String diaryId=request.getParameter("diaryId");
Connection con=null;
try{
con=dbUtil.getCon();
Diary diary=diaryDao.diaryShow(con, diaryId);
request.setAttribute("diary", diary);
request.setAttribute("mainPage", "diary/diaryShow.jsp");
request.getRequestDispatcher("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();
}
}
}
/**
* 准备日记保存
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
private void diaryPreSave(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
String diaryId=request.getParameter("diaryId");
Connection con=null;
try{
if(StringUtil.isNotEmpty(diaryId)){
con=dbUtil.getCon();
Diary diary=diaryDao.diaryShow(con, diaryId);
request.setAttribute("diary", diary);
}
request.setAttribute("mainPage", "diary/diarySave.jsp");
request.getRequestDispatcher("mainTemp.jsp").forward(request, response);
}catch(Exception e){
e.printStackTrace();
}finally{
try {
dbUtil.closeCon(con);
/**
* 主页请求Servlet类
*
*/
public class MainServlet extends HttpServlet{
/**
*
*/
private static final long serialVersionUID = 1L;
DbUtil dbUtil=new DbUtil(); // 实例化数据库工具对象
DiaryDao diaryDao=new DiaryDao(); // 实例化日记对象
DiaryTypeDao diaryTypeDao=new DiaryTypeDao(); // 实例化日记类别对象
@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");
HttpSession session=request.getSession(); // 获取session
String s_typeId=request.getParameter("s_typeId"); // 获取查询的类别id
String s_releaseDateStr=request.getParameter("s_releaseDateStr"); // 获取查询的发布日期
String s_title=request.getParameter("s_title"); // 获取查询的标题
String all=request.getParameter("all"); // 获取all
String page=request.getParameter("page"); // 获取当前页
Diary diary=new Diary();
if("true".equals(all)){ // 判断是否是全部
if(StringUtil.isNotEmpty(s_title)){ // 判断标题是否是空
diary.setTitle(s_title);
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;
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;
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){
pageCode.append("<li class='disabled'><a href='#'>上一页</a></li>");
}else{
pageCode.append("<li><a href='main?page="+(currentPage-1)+"'>上一页</a></li>");
}
for(int i=currentPage-2;i<=currentPage+2;i++){
if(i<1||i>totalPage){
continue;
}
if(i==currentPage){
pageCode.append("<li class='active'><a href='#'>"+i+"</a></li>");
}else{
pageCode.append("<li><a href='main?page="+i+"'>"+i+"</a></li>");
}
}
if(currentPage==totalPage){
pageCode.append("<li class='disabled'><a href='#'>下一页</a></li>");
}else{
pageCode.append("<li><a href='main?page="+(currentPage+1)+"'>下一页</a></li>");
}
pageCode.append("<li><a href='main?page="+totalPage+"'>尾页</a></li>");
return pageCode.toString();
}
/**
* 保存用户
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
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){
user.setImageName(user.getImageName().replaceFirst(PropertiesUtil.getValue("imageFile"), ""));
}
Connection con=null;
/**
* 主页请求Servlet类
*
*/
public class MainServlet extends HttpServlet{
/**
*
*/
private static final long serialVersionUID = 1L;
DbUtil dbUtil=new DbUtil(); // 实例化数据库工具对象
DiaryDao diaryDao=new DiaryDao(); // 实例化日记对象
DiaryTypeDao diaryTypeDao=new DiaryTypeDao(); // 实例化日记类别对象
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
@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)){ // 准备保存
userPreSave(request,response);
}else if("save".equals(action)){ // 保存
userSave(request,response);
}
}
/**
* 准备保存用户
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
private void userPreSave(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
request.setAttribute("mainPage", "user/userSave.jsp");
request.getRequestDispatcher("mainTemp.jsp").forward(request, response);
}
/**
* 保存用户
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
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
/**
* 日记类别Servlet类
*
*/
public class DiaryTypeServlet extends HttpServlet{
/**
*
*/
private static final long serialVersionUID = 1L;
DbUtil dbUtil=new DbUtil(); // 实例化数据库工具类
DiaryTypeDao diaryTypeDao=new DiaryTypeDao(); // 实例化日记类别类
DiaryDao diaryDao=new DiaryDao(); // 实例化日记类
@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("list".equals(action)){ // 获取列表
diaryTypeList(request,response);
}else if("preSave".equals(action)){ // 准备日记类别保存
diaryTypePreSave(request,response);
}else if("save".equals(action)){ // 日记类别保存
request.setAttribute("error", "用户名或密码错误!");
request.getRequestDispatcher("login.jsp").forward(request, response);
}else{ // 登录成功,则转发到主页面
if("remember-me".equals(remember)){ // 判断是否记住密码
rememberMe(userName,password,response);
}
session.setAttribute("currentUser", currentUser);
request.getRequestDispatcher("main").forward(request, response);
}
}catch(Exception e){
e.printStackTrace();
}finally{
try {
dbUtil.closeCon(con);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
/**
* 记住用户密码到Cookie中
* @param userName 用户名
* @param password 密码
* @param response
*/
private void rememberMe(String userName,String password,HttpServletResponse response){
Cookie user=new Cookie("user",userName+"-"+password);
user.setMaxAge(1*60*60*24*7); // 一个星期
response.addCookie(user);
}
}
package com.xyj.filter;
* @throws IOException
*/
private void diaryTypeDelete(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
String diaryTypeId=request.getParameter("diaryTypeId");
Connection con=null;
try{
con=dbUtil.getCon();
if(diaryDao.existDiaryWithTypeId(con, diaryTypeId)){
request.setAttribute("error", "日志类别下有日志,不能删除该类别!");
}else{
diaryTypeDao.diaryTypeDelete(con, diaryTypeId);
}
request.getRequestDispatcher("diaryType?action=list").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;
/**
* 日记Servlet类
*
*/
Connection con=null;
try{
con=dbUtil.getCon();
int saveNum=0;
if(StringUtil.isNotEmpty(diaryTypeId)){
saveNum=diaryTypeDao.diaryTypeUpdate(con, diaryType);
}else{
saveNum=diaryTypeDao.diaryTypeAdd(con, diaryType);
}
if(saveNum>0){
request.getRequestDispatcher("diaryType?action=list").forward(request, response);
}else{
request.setAttribute("diaryType", diaryType);
request.setAttribute("error", "保存失败!");
request.setAttribute("mainPage", "diaryType/diaryTypeSave.jsp");
request.getRequestDispatcher("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();
}
}
}
/**
* 日记类别删除
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
private void diaryTypeDelete(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
String diaryTypeId=request.getParameter("diaryTypeId");
Connection con=null;
try{
con=dbUtil.getCon();
if(diaryDao.existDiaryWithTypeId(con, diaryTypeId)){
request.setAttribute("error", "日志类别下有日志,不能删除该类别!");
}else{
diaryTypeDao.diaryTypeDelete(con, diaryTypeId);
} 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;
/**
* 用户登录Servlet类
*
*/
public class LoginServlet extends HttpServlet{
/**
*
*/
private static final long serialVersionUID = 1L;
DbUtil dbUtil=new DbUtil(); // 实例化数据库工具对象
UserDao userDao=new UserDao(); // 实例化用户DAO对象
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
}
Connection con=null;
try {
con=dbUtil.getCon();
int saveNums;
if(StringUtil.isNotEmpty(diaryId)){
saveNums=diaryDao.diaryUpdate(con, diary);
}else{
saveNums=diaryDao.diaryAdd(con, diary);
}
if(saveNums>0){
request.getRequestDispatcher("main?all=true").forward(request, response);
}else{
request.setAttribute("diary", diary);
request.setAttribute("error", "保存失败");
request.setAttribute("mainPage", "diary/diarySave.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 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);
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){
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