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

基于javaweb日记系统(java+jsp+bootstrap+servlet+mysql) 基于javaweb日记系统(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)

运行环境

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项目

技术栈

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

请添加图片描述

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

FMCW毫米波雷达原理一 1、简介 毫米波雷达的优点是角分辨率高、频带宽因而有利于采用脉冲压缩技术、多普勒颇移大和系统的体积小。目前笔者接触到的有24G毫米波雷达和77G毫米波雷达。 24G毫米波雷达主要应用在交通领域的测距和车辆测速,在其他领域也有使用24G毫米波雷达。 77G毫米波雷达主要应用在无人驾驶,汽车周围的目标检测等领域。 在首次接触雷达时,一头雾水。搞不清一个chirp的时域图和频域图的关系、中频信号以及其他名词的基本概念。在TI培训官网上看到一些毫米波雷达原理的视频才豁然开朗。TI培训官网毫米波传感介绍 本文主要是通 阅读详情

相关推荐

在Simulink中构建永磁同步电机的网络化控制模型,并分析通信网络对系统性能的影响

核心优势通过仿真验证了网络延迟和丢包对PMSM控制性能的影响。提供了改进PI参数或引入自适应控制的解决方案。扩展方向抗干扰控制:结合卡尔曼滤波或滑模控制抑制网络噪声。时间敏感网络(TSN)建模:参考知识库[2]的中断触发方式,实现确定性通信。网络安全仿真:模拟恶意攻击(如数据篡改)对控制系统的威胁。

xiaoheshang_123的博客 139

基于servlet+jsp个人博客系统.zip

本资源中的源码都是经过本地编译过可运行的,下载后按照文档配置好环境就可以运行。资源项目的难度比较适中,内容都是经过助教老师审定过的,应该能够满足学习、使用需求,如果有需要的话可以放心下载使用。有任何问题也可以随时私信博主,博主会第一时间给您解答!!! 本资源中的源码都是经过本地编译过可运行的,下载后按照文档配置好环境就可以运行。资源项目的难度比较适中,内容都是经过助教老师审定过的,应该能够满足学习、使用需求,如果有需要的话可以放心下载使用。有任何问题也可以随时私信博主,博主会第一时间给您解答!!! 本资源中的源码都是经过本地编译过可运行的,下载后按照文档配置好环境就可以运行。资源项目的难度比较适中,内容都是经过助教老师审定过的,应该能够满足学习、使用需求,如果有需要的话可以放心下载使用。有任何问题也可以随时私信博主,博主会第一时间给您解答!!!

读取摄像头的ROS节点

作为一个ROS节点,读取摄像头数据,并将图像以消息的形式发布出去

JSP+Servlet+MySQL实现的三角色学生成绩管理源码包(含数据库与说明文档)

一套开箱即用的JavaEE学生成绩管理系统源码,基于JSPServlet、JDBC和MySQL开发,集成MD5密码加密,支持学生、教师、管理员三类用户角色。学生端可完成选课、查询成绩、请假申请、考勤查看及个人信息修改;教师端除上述功能外,还支持请假审核、课程与班级管理、学生成绩录入/导入/导出、成绩统计图表展示;管理员额外具备教师账号管理权限。项目结构清晰,src目录含完整Java业务逻辑,WebContent为前端页面,ssms.sql提供建库建表语句,代码说明.doc包含部署步骤与模块说明。兼容JDK1.8及以上、Tomcat8.0及以上、MySQL8.0以下版本,支持Eclipse或IDEA直接导入运行,无需额外配置即可启动调试。

基于javaweb+mysqljsp+servlet个人日记管理系统(java+jsp+servlet++mysql)

基于javaweb+mysqljsp+servlet个人日记管理系统(java+jsp+servlet++mysql)基于javaweb+mysqlJSP+Servlet个人日记管理系统(java+jsp+servlet++mysql)eclipse/idea/myeclipse/sts等均可配置运行。课程设计,大作业,毕业设计,项目练习,学习演示等。个人日记的增删改查管理。

m0_71481852的博客 276

基于javaweb+mysqljsp+servlet个人日记管理系统(JavaWeb MySQL JSP Bootstrap Servlet SSM SpringBoot)

基于javaweb+mysqljsp+servlet个人日记管理系统(JavaWeb MySQL JSP Bootstrap Servlet SSM SpringBoot)eclipse/idea/myeclipse/sts等均可配置运行。登录、注册、退出、用户模块、公告模块、日记模块的增删改查管理。课程设计,大作业,毕业设计,项目练习,学习演示等。

m0_71480786的博客 222

Servlet实现日志管理

//本文主要实现学员日志管理功能,表单以及前端等样式代码省略,主要servlet方法实现功能的如下: package com.softeem.dao; import java.util.List; public interface BaseDAO { public boolean save(T t); public boolean delete(T t); public

D_Nicolas的博客 2811

Java项目:新闻消息发布系统(java+JSP+javascript+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.数

一位性感程序员的博客 413

基于javaweb+mysqljsp+servlet教务管理系统(java+jsp+springmvc+jdbc+layui+mysql)

3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:windows 7/8/10 1G内存以上;主要系统功能包括: 学生管理:显示所有学生、添加学生;学院管理:显示所有学院、添加学院;基于javaweb+mysqljsp+servlet教务管理系统(java+jsp+springmvc+jdbc+layui+mysql)基于javaweb+mysqlJSP+Servlet教务管理系统(java+jsp+springmvc+jdbc+layui+mysql)

m0_71000466的博客 180

基于javawebmysqljsp+servlet日记系统(java+jsp+bootstrap+servlet+mysql)

3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:windows 7/8/10 1G内存以上;若包含,则为maven项目,否则为非maven项目。本项目主要功能有: 写日记 查看日记 日记删除 日记修改 日记类别添加 日记类别修改 日记类别删除 个人信息查看 个人信息修改 分页功能。基于javawebmysqljsp+servlet日记系统(java+jsp+bootstrap+servlet+mysql)课程设计,大作业,毕业设计,项目练习,学习演示等。

毕业javaweb,一直在线,欢迎私信 712

基于javaweb+mysqljsp+servlet家政服务管理系统(java+jsp+javascript+mysql)

3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:windows 7/8/10 1G内存以上;雇主用户角色包含以下功能: 首页,注册账号,雇主登录,查询家政阿姨,查看供求信息,查看家政公司,阿姨预约,查看我的预约,发布需求信息等功能。管理员角色包含以下功能: 登录,添加新闻,家政合同管理,家政阿姨管理,审核供应信息,企业用户管理,雇主管理等功能。家政阿姨角色包含以下功能: 登陆页面,发布供应信息,管理我的预约等功能。家政公司角色包含以下功能: 登录,发布家政名片等功能

m0_71000466的博客 327

jsp+servlet+mysql(博客项目)

blog 该项目属于java中级阶段,jsp+servlet+mysql 前端页面是网上下载的,后面改了一些 后台主要实现 对数据库 查,增,主要有分页查询,插入评论,倒叙查询,更多的是查询,过程中遇到了很多bug,经过多次改良后,懂了许多 话不多说,上代码 以上是整个项目代码一览图 entity层 Album 相册 Article 文章 Critique 评论 Me (关于我)页面...

weixin_44685629的博客 5923

基于javaweb+mysqljsp+servlet图书管理系统(java+jsp+servlet+javascript+mysql)

2.IDE环境:IDEA,Eclipse,Myeclipse都可以。3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:windows 7/8/10 1G内存以上;管理员角色包含以下功能: 管理员登录,系统设置,管理员管理,办证费用管理,书架管理,读者类型管理,读者管理,图书管理,图书类型管理,图书借阅,图书归还,图书续借,图书查询等功能。基于javaweb+mysqljsp+servlet图书管理系统(java+jsp+servlet+javascript+mysql)

m0_71414463的博客 144
上一篇: 基于javaweb+mysql的jsp+servlet旅游管理系统(java+jsp+html5+bootstrap+servlet+mysql)
下一篇: 基于javaweb+mysql的ssm服装进销存管理系统(java+ssm+html+js+jsp+mysql)
m0_71049690
博客等级 码龄4年 12粉丝 · 149原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值