BaseDao.java
package com.utils;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.sun.jndi.url.corbaname.corbanameURLContextFactory;
public class BaseDao {
private static final String driver = "com.mysql.jdbc.Driver";
private static final String url = "jdbc:mysql:///admin?characterEncoding=utf-8";
private static final String user = "root";
private static final String password = "root";
static{
try {
Class.forName(driver);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static Connection getConn(){
Connection conn = null;
try {
conn = DriverManager.getConnection(url, user, password);
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
public static void close(Connection conn,PreparedStatement ps,ResultSet rs){
try {
if(null != rs)
rs.close();
if(null != ps)
ps.close();
if(null != conn)
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
Admin.java
package com.bean;
public class Admin {
private Integer adminId;
private String adminName;
private String adminPwd;
public Integer getAdminId() {
return adminId;
}
public void setAdminId(Integer adminId) {
this.adminId = adminId;
}
public String getAdminName() {
return adminName;
}
public void setAdminName(String adminName) {
this.adminName = adminName;
}
public String getAdminPwd() {
return adminPwd;
}
public void setAdminPwd(String adminPwd) {
this.adminPwd = adminPwd;
}
@Override
public String toString() {
return "Admin [adminId=" + adminId + ", adminname=" + adminName
+ ", adminPwd=" + adminPwd + "]";
}
public Admin(Integer adminId, String adminName, String adminPwd) {
super();
this.adminId = adminId;
this.adminName = adminName;
this.adminPwd = adminPwd;
}
public Admin() {
super();
}
}
News.java
package com.bean;
public class News {
private Integer newsId;
private String newsTitle;
private String newsContent;
private String newsImage;
private String newsCreateTime;
private String newsModifyTime;
public Integer getNewsId() {
return newsId;
}
public void setNewsId(Integer newsId) {
this.newsId = newsId;
}
public String getNewsTitle() {
return newsTitle;
}
public void setNewsTitle(String newsTitle) {
this.newsTitle = newsTitle;
}
public String getNewsContent() {
return newsContent;
}
public void setNewsContent(String newsContent) {
this.newsContent = newsContent;
}
public String getNewsImage() {
return newsImage;
}
public void setNewsImage(String newsImage) {
this.newsImage = newsImage;
}
public String getNewsCreateTime() {
return newsCreateTime;
}
public void setNewsCreateTime(String newsCreateTime) {
this.newsCreateTime = newsCreateTime;
}
public String getNewsModifyTime() {
return newsModifyTime;
}
public void setNewsModifyTime(String newsModifyTime) {
this.newsModifyTime = newsModifyTime;
}
@Override
public String toString() {
return "News [newsId=" + newsId + ", newsTitle=" + newsTitle
+ ", newsContent=" + newsContent + ", newsImage=" + newsImage
+ ", newsCreateTime=" + newsCreateTime + ", newsModifyTime="
+ newsModifyTime + "]";
}
public News(Integer newsId, String newsTitle, String newsContent,
String newsImage, String newsCreateTime, String newsModifyTime) {
super();
this.newsId = newsId;
this.newsTitle = newsTitle;
this.newsContent = newsContent;
this.newsImage = newsImage;
this.newsCreateTime = newsCreateTime;
this.newsModifyTime = newsModifyTime;
}
public News() {
super();
}
}
IAdminDao.java
package com.dao;
import com.bean.Admin;
public interface IAdminDao {
Admin login(Admin admin);
int insert(Admin admin);
}
INewsDao.java
package com.dao;
import java.util.List;
import com.bean.News;
public interface INewsDao {
List<News> getNewsList();
int delete(String newsId);
News getById(String newsId);
int update(News news);
}
AdminDaoImpl.java
package com.dao.impl;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.bean.Admin;
import com.dao.IAdminDao;
import com.utils.BaseDao;
public class AdminDaoImpl implements IAdminDao {
//验证登录的方法
Admin adminNew = null;
PreparedStatement ps = null;
ResultSet rs = null;
@Override
public Admin login(Admin admin) {
Connection conn = BaseDao.getConn();
String sql = "select * from admin where admin_name = ? and admin_pwd = ?";
try {
ps = conn.prepareStatement(sql);
ps.setObject(1, admin.getAdminName());
ps.setObject(2, admin.getAdminPwd());
rs = ps.executeQuery();
//循环取值
while(rs.next()){
adminNew = new Admin(rs.getInt(1),rs.getString(2),rs.getString(3));
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
BaseDao.close(conn, ps, rs);
}
return adminNew;
}//注册添加的方法
@Override
public int insert(Admin admin) {
Connection conn = BaseDao.getConn();
PreparedStatement ps = null;
int i = 0 ;
String sql = "insert into admin values(null,?,?)";
try {
ps = conn.prepareStatement(sql);
ps.setObject(1, admin.getAdminName());
ps.setObject(2, admin.getAdminPwd());
i = ps.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
BaseDao.close(conn, ps, null);
}
return i;
}
}
NewsDaoImpl.java
package com.dao.impl;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import com.bean.News;
import com.dao.INewsDao;
import com.utils.BaseDao;
public class NewsDaoImpl implements INewsDao{
//新闻列表的查询
PreparedStatement ps = null;
ResultSet rs = null;
@Override
public List<News> getNewsList() {
List<News> list = new ArrayList<News>();
Connection conn = BaseDao.getConn();
String sql= "select * from news";
try {
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
while(rs.next()){
News news = new News(rs.getInt(1),rs.getString(2),rs.getString(3),rs.getString(4),rs.getString(5),rs.getString(6));
list.add(news);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
BaseDao.close(conn, ps, rs);
}
return list;
}
//新闻删除方法
@Override
public int delete(String newsId) {
PreparedStatement ps = null;
int i = 0;
Connection conn = BaseDao.getConn();
String sql = "delete from news where news_id = ?";
try {
ps = conn.prepareStatement(sql);
ps.setInt(1, Integer.parseInt(newsId));
i = ps.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
BaseDao.close(conn, ps, null);
}
return i;
}//根据新闻编号查询新闻信息
@Override
public News getById(String newsId) {
PreparedStatement ps = null;
ResultSet rs = null;
News news = null;
Connection conn = BaseDao.getConn();
String sql = "select * from news where news_id = ?";
try {
ps = conn.prepareStatement(sql);
ps.setInt(1, Integer.parseInt(newsId));
rs = ps.executeQuery();
while(rs.next()){
news = new News(rs.getInt(1),rs.getString(2),rs.getString(3),rs.getString(4),rs.getString(5),rs.getString(6));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
BaseDao.close(conn, ps, rs);
}
return news;
}
//修改的方法
@Override
public int update(News news) {
PreparedStatement ps = null;
int i = 0;
Connection conn = BaseDao.getConn();
String sql = "update news set news_title = ?,news_content = ?,news_image = ?,news_modify_time = NOW() where news_id = ?";
try {
ps = conn.prepareStatement(sql);
ps.setObject(1, news.getNewsTitle());
ps.setObject(2, news.getNewsContent());
ps.setObject(3, news.getNewsImage());
ps.setObject(4, news.getNewsId());
i = ps.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
BaseDao.close(conn, ps, null);
}
return i;
}
}
DeleteServlet.java
package com.servlet;
import java.io.IOException;
//删除的servlet
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.dao.INewsDao;
import com.dao.impl.NewsDaoImpl;
public class DeleteServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
INewsDao dao = new NewsDaoImpl();
String newsId = request.getParameter("newsId");
//调用dao删除
int i = dao.delete(newsId);
//判断
if(i>0){
request.getRequestDispatcher("GetNewsList").forward(request, response);
}
}
}
GetByIdServlet.java
package com.servlet;
//回显的servlet
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.bean.News;
import com.dao.INewsDao;
import com.dao.impl.NewsDaoImpl;
public class GetByIdServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//过滤编码
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
INewsDao dao = new NewsDaoImpl();
String newsId = request.getParameter("newsId");
//调用dao层修改方法,根据id获取数据
News news = dao.getById(newsId);
//把查询到的对象放在作用域中
request.setAttribute("news", news);
//页面跳转,回显新闻信息
request.getRequestDispatcher("update.jsp").forward(request, response);
}
}
GetNewsList.java
package com.servlet;
//获取新闻列表的servlet
import java.io.IOException;
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.bean.News;
import com.dao.INewsDao;
import com.dao.impl.NewsDaoImpl;
public class GetNewsList extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//过滤编码
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
INewsDao dao = new NewsDaoImpl();
//调用新闻的dao层
List<News> newslist = dao.getNewsList();
//列表放在请求域中
request.setAttribute("newsList", newslist);
//页面跳转展示信息
request.getRequestDispatcher("list.jsp").forward(request, response);
}
}
LoginServlet.java
package com.servlet;
//登陆功能的servlet
import java.io.IOException;
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.bean.Admin;
import com.dao.IAdminDao;
import com.dao.impl.AdminDaoImpl;
public class LoginServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
IAdminDao dao = new AdminDaoImpl();
//过滤编码
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
//获取数据
String adminName = request.getParameter("adminName");
String adminPwd = request.getParameter("adminPwd");
//获取数据后封装到实体类
Admin admin = new Admin();
admin.setAdminName(adminName);
admin.setAdminPwd(adminPwd);
//调用dao层实现方法,验证登录
Admin adminNew = dao.login(admin);
//判断返回值是否为空
if(null != adminNew){
//登陆成功
//用户名保存到session
//1、获取session
HttpSession session = request.getSession();
//2、用户名保存在session作用域
session.setAttribute("adminName",adminNew.getAdminName());
request.getRequestDispatcher("GetNewsList").forward(request, response);
}
}
}
RegServlet.java
package com.servlet;
//注册功能的servlet
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.bean.Admin;
import com.dao.IAdminDao;
import com.dao.impl.AdminDaoImpl;
public class RegServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
IAdminDao dao = new AdminDaoImpl();
//过滤编码
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
//获取数据
String adminName = request.getParameter("adminName");
String adminPwd = request.getParameter("adminPwd");
//获取数据后封装到实体类
Admin admin = new Admin();
admin.setAdminName(adminName);
admin.setAdminPwd(adminPwd);
//调用dao层添加方法
int i = dao.insert(admin);
//判断
if(i>0){
//成功
response.sendRedirect("login.jsp");
}else{
request.setAttribute("mag", "注册失败!");
request.getRequestDispatcher("reg.jsp").forward(request, response);
}
}
}
UpdateServlet.java
package com.servlet;
//修改的servlet
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.bean.News;
import com.dao.INewsDao;
import com.dao.impl.NewsDaoImpl;
public class UpdateServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//过滤编码
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
INewsDao dao = new NewsDaoImpl();
//接收数据
String newsId = request.getParameter("newsId");
String newsTitle = request.getParameter("newsTitle");
String newsContent = request.getParameter("newsContent");
String newsImage = request.getParameter("newsImage");
//封装存放
News news = new News();
news.setNewsId(Integer.parseInt(newsId));
news.setNewsTitle(newsTitle);
news.setNewsContent(newsContent);
news.setNewsImage(newsImage);
//调用dao层方法
int i = dao.update(news);
//成功后跳转页面
if(i>0){
request.getRequestDispatcher("GetNewsList").forward(request, response);
}
}
}
list.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'list.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<table>
<tr>
<td colspan="10"><h1>欢迎${adminName}登陆</h1></td>
</tr>
<tr>
<td>编号</td>
<td>标题</td>
<td>内容</td>
<td>图片</td>
<td>创建时间</td>
<td>修改时间</td>
<td>操作</td>
</tr>
<!-- C标签循环 items指定循环列 -->
<c:forEach items="${newsList}" var="l">
<tr>
<td>${l.newsId}</td>
<td>${l.newsTitle}</td>
<td>${l.newsContent}</td>
<td>${l.newsImage}</td>
<td>${l.newsCreateTime}</td>
<td>${l.newsModifyTime}</td>
<td><a href="DeleteServlet?newsId=${l.newsId}">删除</a></td>
<td><a href="GetByIdServlet?newsId=${l.newsId}">修改</a></td>
</tr>
</c:forEach>
</table>
</body>
</html>
login.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'login.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<form action="LoginServlet" method="post">
用户名:<input name="adminName"><br>
密码:<input name="adminPwd"><br>
<input type="submit" value="登陆">
<a href="reg.jsp"><input type="button" value="注册"></a>
</form>
</body>
</html>
reg.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'reg.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<form action="RegServlet" method="post">
用户名:<input name="adminName"><br>
密码:<input name="adminPwd"><br>
<input type="submit" value="注册">
</form>
</body>
</html>
update.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'update.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<form action="UpdateServlet" method="post">
新闻编号:<input name="newsId" value="${news.newsId}"><br>
新闻标题:<input name="newsTitle" value="${news.newsTitle}"><br>
新闻内容:<input name="newsContent" value="${news.newsContent}"><br>
新闻图片:<input name="newsImage" value="${news.newsImage}"><br>
<input type="submit" value="修改">
</form>
</body>
</html>