这篇博客是我的个人第一篇博客,然后我就把个人博客系统分享给大家吧
dao层
package com.qinb.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import com.qinb.model.DiaryType;
public class DiaryTypeDao {
public List<DiaryType> diaryTypeCountList(Connection con)throws Exception{
List<DiaryType> diaryTypeCountList=new ArrayList<DiaryType>();
String sql="SELECT diaryTypeId,typeName,COUNT(diaryId) as diaryCount FROM t_diary RIGHT JOIN t_diaryType ON t_diary.typeId=t_diaryType.diaryTypeId GROUP BY typeName;";
PreparedStatement pstmt=con.prepareStatement(sql);
ResultSet rs=pstmt.executeQuery();
while(rs.next()){
DiaryType diaryType=new DiaryType();
diaryType.setDiaryTypeId(rs.getInt("diaryTypeId"));
diaryType.setTypeName(rs.getString("typeName"));
diaryType.setDiaryCount(rs.getInt("diaryCount"));
diaryTypeCountList.add(diaryType);
}
return diaryTypeCountList;
}
public List<DiaryType> diaryTypeList(Connection con)throws Exception{
List<DiaryType> diaryTypeList=new ArrayList<DiaryType>();
String sql="select * from t_diaryType";
PreparedStatement pstmt=con.prepareStatement(sql);
ResultSet rs=pstmt.executeQuery();
while(rs.next()){
DiaryType diaryType=new DiaryType();
diaryType.setDiaryTypeId(rs.getInt("diaryTypeId"));
diaryType.setTypeName(rs.getString("typeName"));
diaryTypeList.add(diaryType);
}
return diaryTypeList;
}
public int diaryTypeAdd(Connection con,DiaryType diaryType)throws Exception{
String sql="insert into t_diaryType values(null,?)";
PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setString(1, diaryType.getTypeName());
return pstmt.executeUpdate();
}
public int diaryTypeUpdate(Connection con,DiaryType diaryType)throws Exception{
String sql="update t_diaryType set typeName=? where diaryTypeId=?";
PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setString(1, diaryType.getTypeName());
pstmt.setInt(2, diaryType.getDiaryTypeId());
return pstmt.executeUpdate();
}
public DiaryType diaryTypeShow(Connection con,String diaryTypeId)throws Exception{
String sql="SELECT * from t_diaryType where diaryTypeId=?";
PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setString(1, diaryTypeId);
ResultSet rs=pstmt.executeQuery();
DiaryType diaryType=new DiaryType();
if(rs.next()){
diaryType.setDiaryTypeId(rs.getInt("diaryTypeId"));
diaryType.setTypeName(rs.getString("typeName"));
}
return diaryType;
}
public int diaryTypeDelete(Connection con,String diaryTypeId)throws Exception{
String sql="delete from t_diaryType where diaryTypeId=?";
PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setString(1, diaryTypeId);
return pstmt.executeUpdate();
}
}
package com.qinb.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import com.qinb.model.User;
import com.qinb.util.MD5Util;
import com.qinb.util.PropertiesUtil;
public class UserDao {
/**
*
* @param con
* @param user
* @return User
* @throws Exception
*/
public User login(Connection con,User user)throws Exception{
User resultUser=null;
String sql="select * from t_user where userName=? and password=?";
PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setString(1, user.getUserName());
pstmt.setString(2, MD5Util.EncoderPwdByMd5(user.getPassword()));
ResultSet rs=pstmt.executeQuery();
if(rs.next()){
resultUser=new User();
resultUser.setUserId(rs.getInt("userId"));
resultUser.setUserName(rs.getString("userName"));
resultUser.setPassword(rs.getString("password"));
resultUser.setNickName(rs.getString("nickName"));
resultUser.setImageName(PropertiesUtil.getValue("imageFile")+rs.getString("imageName"));
resultUser.setMood(rs.getString("mood"));
}
return resultUser;
}
public int userUpdate(Connection con,User user)throws Exception{
String sql="update t_user set nickName=?,imageName=?,mood=? where userId=?";
PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setString(1, user.getNickName());
pstmt.setString(2, user.getImageName());
pstmt.setString(3, user.getMood());
pstmt.setInt(4, user.getUserId());
return pstmt.executeUpdate();
}
}
package com.qinb.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import com.qinb.model.Diary;
import com.qinb.model.PageBean;
import com.qinb.util.DateUtil;
import com.qinb.util.StringUtil;
public class DiaryDao {
public List<Diary> diaryList(Connection con,PageBean pageBean,Diary s_diary)throws Exception{
List<Diary> diaryList=new ArrayList<Diary>();
StringBuffer sb=new StringBuffer("select * from t_diary t1,t_diaryType t2 where t1.typeId=t2.diaryTypeId ");
if(StringUtil.isNotEmpty(s_diary.getTitle())){
sb.append(" and t1.title like '%"+s_diary.getTitle()+"%'");
}
if(s_diary.getTypeId()!=-1){
sb.append(" and t1.typeId="+s_diary.getTypeId());
}
if(StringUtil.isNotEmpty(s_diary.getReleaseDateStr())){
sb.append(" and DATE_FORMAT(t1.releaseDate,'%Y年%m月')='"+s_diary.getReleaseDateStr()+"'");
}
sb.append(" order by t1.releaseDate desc");
if(pageBean!=null){
sb.append(" limit "+pageBean.getStart()+","+pageBean.getPageSize());
}
PreparedStatement pstmt=con.prepareStatement(sb.toString());
ResultSet rs=pstmt.executeQuery();
while(rs.next()){
Diary diary=new Diary();
diary.setDiaryId(rs.getInt("diaryId"));
diary.setTitle(rs.getString("title"));
diary.setContent(rs.getString("content"));
diary.setReleaseDate(DateUtil.formatString(rs.getString("releaseDate"), "yyyy-MM-dd HH:mm:ss"));
diaryList.add(diary);
}
return diaryList;
}
public int diaryCount(Connection con,Diary s_diary)throws Exception{
StringBuffer sb=new StringBuffer("select count(*) as total from t_diary t1,t_diaryType t2 where t1.typeId=t2.diaryTypeId ");
if(StringUtil.isNotEmpty(s_diary.getTitle())){
sb.append(" and t1.title like '%"+s_diary.getTitle()+"%'");
}
if(s_diary.getTypeId()!=-1){
sb.append(" and t1.typeId="+s_diary.getTypeId());
}
if(StringUtil.isNotEmpty(s_diary.getReleaseDateStr())){
sb.append(" and DATE_FORMAT(t1.releaseDate,'%Y年%m月')='"+s_diary.getReleaseDateStr()+"'");
}
System.out.println(sb);
PreparedStatement pstmt=con.prepareStatement(sb.toString());
ResultSet rs=pstmt.executeQuery();
if(rs.next()){
return rs.getInt("total");
}else{
return 0;
}
}
/**
* 根据日期时间来分类
* @param con
* @return
* @throws Exception
*/
public List<Diary> diaryCountList(Connection con)throws Exception{
List<Diary> diaryCountList=new ArrayList<Diary>();
String sql="SELECT DATE_FORMAT(releaseDate,'%Y年%m月') as releaseDateStr ,COUNT(*) AS diaryCount FROM t_diary GROUP BY DATE_FORMAT(releaseDate,'%Y年%m月') ORDER BY DATE_FORMAT(releaseDate,'%Y年%m月') DESC;";
PreparedStatement pstmt=con.prepareStatement(sql);
ResultSet rs=pstmt.executeQuery();
while(rs.next()){
Diary diary=new Diary();
diary.setReleaseDateStr(rs.getString("releaseDateStr"));
diary.setDiaryCount(rs.getInt("diaryCount"));
diaryCountList.add(diary);
}
return diaryCountList;
}
public Diary diaryShow(Connection con,String diaryId)throws Exception{
String sql="select * from t_diary t1,t_diaryType t2 where t1.typeId=t2.diaryTypeId and t1.diaryId=?";
PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setString(1, diaryId);
ResultSet rs=pstmt.executeQuery();
Diary diary=new Diary();
if(rs.next()){
diary.setDiaryId(rs.getInt("diaryId"));
diary.setTitle(rs.getString("title"));
diary.setContent(rs.getString("content"));
diary.setTypeId(rs.getInt("typeId"));
diary.setTypeName(rs.getString("typeName"));
diary.setReleaseDate(DateUtil.formatString(rs.getString("releaseDate"),"yyyy-MM-dd HH:mm:ss"));
}
return diary;
}
/**
*
* @param con
* @param diary
* @return int //影响的行数
* @throws Exception
*/
public int diaryAdd(Connection con,Diary diary)throws Exception{
String sql="insert into t_diary values(null,?,?,?,now())";
PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setString(1, diary.getTitle());
pstmt.setString(2, diary.getContent());
pstmt.setInt(3, diary.getTypeId());
return pstmt.executeUpdate();
}
/**
* 日记删除
* @param con
* @param diaryId
* @return int //影响的行数
* @throws Exception
*/
public int diaryDelete(Connection con,String diaryId)throws Exception{
String sql="delete from t_diary where diaryId=?";
PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setString(1, diaryId);
return pstmt.executeUpdate();
}
/**
* 日记更新
* @param con
* @param diary
* @return int //影响的行数
* @throws Exception
*/
public int diaryUpdate(Connection con,Diary diary)throws Exception{
String sql="update t_diary set title=?,content=?,typeId=? where diaryId=?";
PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setString(1, diary.getTitle());
pstmt.setString(2, diary.getContent());
pstmt.setInt(3, diary.getTypeId());
pstmt.setInt(4, diary.getDiaryId());
return pstmt.executeUpdate();
}
public boolean existDiaryWithTypeId(Connection con,String typeId)throws Exception{
String sql="select * from t_diary where typeId=?";
PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setString(1, typeId);
ResultSet rs=pstmt.executeQuery();
if(rs.next()){
return true;
}else{
return false;
}
}
}
filter层过滤器
package com.qinb.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class LoginFilter implements Filter{
public void destroy() {
// TODO Auto-generated method stub
}
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse,
FilterChain filterChain) throws IOException, ServletException {
HttpServletResponse response=(HttpServletResponse)servletResponse;
HttpServletRequest request=(HttpServletRequest)servletRequest;
HttpSession session=request.getSession();
Object object=session.getAttribute("currentUser");
String path=request.getServletPath();
if(object==null&&path.indexOf("login")<0&&path.indexOf("bootstrap")<0&&path.indexOf("images")<0){
response.sendRedirect("login.jsp");
}else{
filterChain.doFilter(servletRequest, servletResponse);
}
}
public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub
}
}
model层
package com.qinb.model;
import java.util.Date;
public class Diary {
private int diaryId;
private String title;
private String content;
private int typeId=-1;
private String typeName;
private Date releaseDate;
private String releaseDateStr;
private int diaryCount;
public Diary(String title, String content, int typeId) {
super();
this.title = title;
this.content = content;
this.typeId = typeId;
}
public Diary() {
super();
// TODO Auto-generated constructor stub
}
public int getDiaryId() {
return diaryId;
}
public void setDiaryId(int diaryId) {
this.diaryId = diaryId;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public int getTypeId() {
return typeId;
}
public void setTypeId(int typeId) {
this.typeId = typeId;
}
public Date getReleaseDate() {
return releaseDate;
}
public void setReleaseDate(Date releaseDate) {
this.releaseDate = releaseDate;
}
public String getReleaseDateStr() {
return releaseDateStr;
}
public void setReleaseDateStr(String releaseDateStr) {
this.releaseDateStr = releaseDateStr;
}
public int getDiaryCount() {
return diaryCount;
}
public void setDiaryCount(int diaryCount) {
this.diaryCount = diaryCount;
}
public String getTypeName() {
return typeName;
}
public void setTypeName(String typeName) {
this.typeName = typeName;
}
}
package com.qinb.model;
public class DiaryType {
private int diaryTypeId;
private String typeName;
private int diaryCount;
public DiaryType(String typeName) {
super();
this.typeName = typeName;
}
public DiaryType() {
super();
// TODO Auto-generated constructor stub
}
public int getDiaryTypeId() {
return diaryTypeId;
}
public void setDiaryTypeId(int diaryTypeId) {
this.diaryTypeId = diaryTypeId;
}
public String getTypeName() {
return typeName;
}
public void setTypeName(String typeName) {
this.typeName = typeName;
}
public int getDiaryCount() {
return diaryCount;
}
public void setDiaryCount(int diaryCount) {
this.diaryCount = diaryCount;
}
}
package com.qinb.model;
public class PageBean {
private int page; // 第几页
private int pageSize; // 每页记录数
private int start; // 起始页
public PageBean(int page, int pageSize) {
super();
this.page = page;
this.pageSize = pageSize;
}
public int getPage() {
return page;
}
public void setPage(int page) {
this.page = page;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getStart() {
return (page-1)*pageSize;
}
}
package com.qinb.model;
public class User {
private int userId;
private String userName;
private String password;
private String nickName;
private String imageName;
private String mood;
public User() {
super();
// TODO Auto-generated constructor stub
}
public User(String userName,String password) {
super();
this.userName = userName;
this.password = password;
}
public int getUserId() {
return userId;
}
public void setUserId(int userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getNickName() {
return nickName;
}
public void setNickName(String nickName) {
this.nickName = nickName;
}
public String getImageName() {
return imageName;
}
public void setImageName(String imageName) {
this.imageName = imageName;
}
public String getMood() {
return mood;
}
public void setMood(String mood) {
this.mood = mood;
}
}
util层
package com.qinb.util;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateUtil {
public static String formatDate(Date date,String format){
String result="";
SimpleDateFormat sdf=new SimpleDateFormat(format);
if(date!=null){
result=sdf.format(date);
}
return result;
}
public static Date formatString(String str,String format) throws Exception{
if(StringUtil.isEmpty(str)){
return null;
}
SimpleDateFormat sdf=new SimpleDateFormat(format);
return sdf.parse(str);
}
public static String getCurrentDateStr()throws Exception{
Date date=new Date();
SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMddhhmmss");
return sdf.format(date);
}
}
package com.qinb.util;
import java.sql.Connection;
import java.sql.DriverManager;
public class DbUtil {
public Connection getCon() throws Exception{
Class.forName(PropertiesUtil.getValue("jdbcName"));
Connection con=DriverManager.getConnection(PropertiesUtil.getValue("dbUrl"), PropertiesUtil.getValue("dbUserName"), PropertiesUtil.getValue("dbPassword"));
return con;
}
public void closeCon(Connection con)throws Exception{
if(con!=null){
con.close();
}
}
public static void main(String[] args) {
DbUtil dbUtil=new DbUtil();
try {
dbUtil.getCon();
System.out.println("数据库连接成功");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("数据库连接失败");
}
}
}
package com.qinb.util;
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import sun.misc.BASE64Encoder;
public class MD5Util {
public static String EncoderPwdByMd5(String str) throws NoSuchAlgorithmException, UnsupportedEncodingException{
MessageDigest md5=MessageDigest.getInstance("MD5");
BASE64Encoder base64en=new BASE64Encoder();
return base64en.encode(md5.digest(str.getBytes("utf-8")));
}
public static void main(String[] args) throws NoSuchAlgorithmException, UnsupportedEncodingException {
System.out.println(EncoderPwdByMd5("jack"));
}
}
package com.qinb.util;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
public class PropertiesUtil {
public static String getValue(String key){
Properties prop=new Properties();
InputStream in=new PropertiesUtil().getClass().getResourceAsStream("/diary.properties");
try {
prop.load(in);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return (String)prop.get(key);
}
}
package com.qinb.util;
public class StringUtil {
//为空 返回true
public static boolean isEmpty(String str){
if("".equals(str)|| str==null){
return true;
}else{
return false;
}
}
//不为空,返回true
public static boolean isNotEmpty(String str){
if(!"".equals(str)&&str!=null){
return true;
}else{
return false;
}
}
}
web层-----各种servlet
package com.qinb.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 com.qinb.dao.DiaryDao;
import com.qinb.model.Diary;
import com.qinb.util.DbUtil;
import com.qinb.util.StringUtil;
public class DiaryServlet extends HttpServlet{
DbUtil dbUtil=new DbUtil();
DiaryDao diaryDao=new DiaryDao();
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
String action=request.getParameter("action");
if("show".equals(action)){
diaryShow(request,response);
}else if("preSave".equals(action)){
diaryPreSave(request,response);
}else if("save".equals(action)){
diarySave(request,response);
}else if("delete".equals(action)){
diaryDelete(request,response);
}
}
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) {
e.printStackTrace();
}
}
}
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) {
e.printStackTrace();
}
}
}
private void diarySave(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
String title=request.getParameter("title");
String content=request.getParameter("content");
String typeId=request.getParameter("typeId");
String diaryId=request.getParameter("diaryId");
Diary diary=new Diary(title,content,Integer.parseInt(typeId));
if(StringUtil.isNotEmpty(diaryId)){
diary.setDiaryId(Integer.parseInt(diaryId));
}
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) {
e.printStackTrace();
}finally{
try {
dbUtil.closeCon(con);
} catch (Exception e) {
e.printStackTrace();
}
}
}
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) {
e.printStackTrace();
}
}
}
}
package com.qinb.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 com.qinb.dao.DiaryDao;
import com.qinb.dao.DiaryTypeDao;
import com.qinb.model.DiaryType;
import com.qinb.util.DbUtil;
import com.qinb.util.StringUtil;
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);
}
}
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();
}
}
}
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);
}
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();
}
}
}
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.qinb.web;
import java.io.IOException;
import java.sql.Connection;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.qinb.dao.UserDao;
import com.qinb.model.User;
import com.qinb.util.DbUtil;
public class LoginServlet 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");
HttpSession session=request.getSession();
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);
//user==currentUser
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();
}
}
}
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.qinb.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 javax.servlet.http.HttpSession;
import com.qinb.dao.DiaryDao;
import com.qinb.dao.DiaryTypeDao;
import com.qinb.model.Diary;
import com.qinb.model.PageBean;
import com.qinb.util.DbUtil;
import com.qinb.util.PropertiesUtil;
import com.qinb.util.StringUtil;
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();
String s_typeId=request.getParameter("s_typeId");
String s_releaseDateStr=request.getParameter("s_releaseDateStr");
String s_title=request.getParameter("s_title");
String all=request.getParameter("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.removeAttribute("s_typeId");
session.setAttribute("s_title", s_title);
}else{
if(StringUtil.isNotEmpty(s_typeId)){
diary.setTypeId(Integer.parseInt(s_typeId));
session.setAttribute("s_typeId", s_typeId);
session.removeAttribute("s_releaseDateStr");
session.removeAttribute("s_title");
}
if(StringUtil.isNotEmpty(s_releaseDateStr)){
s_releaseDateStr=new String(s_releaseDateStr.getBytes("ISO-8859-1"),"UTF-8");
diary.setReleaseDateStr(s_releaseDateStr);
session.setAttribute("s_releaseDateStr", s_releaseDateStr);
session.removeAttribute("s_typeId");
session.removeAttribute("s_title");
}
if(StringUtil.isEmpty(s_typeId)){
Object o=session.getAttribute("s_typeId");
if(o!=null){
diary.setTypeId(Integer.parseInt((String)o));
}
}
if(StringUtil.isEmpty(s_releaseDateStr)){
Object o=session.getAttribute("s_releaseDateStr");
if(o!=null){
diary.setReleaseDateStr((String)o);
}
}
if(StringUtil.isEmpty(s_title)){
Object o=session.getAttribute("s_title");
if(o!=null){
diary.setTitle((String)o);
}
}
}
if(StringUtil.isEmpty(page)){
page="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();
}
}
}
//根据 总记录数,当前页,每页记录数
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();
}
}
package com.qinb.web;
import java.io.File;
import java.io.IOException;
import java.sql.Connection;
import java.util.Iterator;
import java.util.List;
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 org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import com.qinb.dao.UserDao;
import com.qinb.model.User;
import com.qinb.util.DateUtil;
import com.qinb.util.DbUtil;
import com.qinb.util.PropertiesUtil;
public class UserServlet extends HttpServlet{
DbUtil dbUtil=new DbUtil();
UserDao userDao=new UserDao();
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
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);
}
}
private void userPreSave(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
request.setAttribute("mainPage", "user/userSave.jsp");
request.getRequestDispatcher("mainTemp.jsp").forward(request, response);
}
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(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;
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();
}
}
}
}
完整代码见链接链接:https://pan.baidu.com/s/1Z3Wv0nzt-gVaBU5WeLZG6A
提取码:ewk8
复制这段内容后打开百度网盘手机App,操作更方便哦