目錄
摘要
一、系統(tǒng)開發(fā)環(huán)境
二、數(shù)據(jù)庫設(shè)計
三、實現(xiàn)的功能
四、詳細(xì)設(shè)計
五、效果展示
摘要
- 游客可以瀏覽新聞,也可以通過新聞類別或新聞標(biāo)題對新聞進(jìn)行查找;
- 管理員可以增加新聞、修改新聞、根據(jù)新聞類別查找新聞、刪除新聞,也可以增加類別、修改類別、刪除類別;在刪除類別時,該類別的新聞會被同時刪除。
一、系統(tǒng)開發(fā)環(huán)境
Eclipse2021.03
jdk1.8.0
Tomcat9.0
Mysql8.0.26
二、數(shù)據(jù)庫設(shè)計
新聞表t_news
類型表t_type
用戶表t_user
三、實現(xiàn)的功能
普通用戶(游客):
(1)顯示所有新聞
(2)瀏覽新聞
(3)根據(jù)新聞類型對新聞進(jìn)行查找
(4)根據(jù)新聞標(biāo)題對新聞進(jìn)行查找
管理員用戶:
(1)顯示所有新聞
(2)增加新聞
(3)修改新聞
(4)根據(jù)新聞類型對新聞進(jìn)行查找
(5)刪除新聞
(6)顯示所有類別
(7)增加新聞類別
(8)修改新聞類別
(9)刪除新聞類別
四、詳細(xì)設(shè)計
- 開發(fā)步驟和主要代碼
撰寫流程:從dao —> service —> controller —> 視圖
NewsDao.java
package?zsls.news.dao;
import?org.apache.ibatis.annotations.Param;
import?zsls.news.pojo.News;
import?java.util.List;
public?interface?NewsDao {
????List<News> queryALL(@Param("tid") Integer tid,@Param("title") String title,@Param("num") int?num?);
????News queryById(Integer id);
????int?save(News news);
????int?update(News news);
????int?deleteById(Integer id);
????int?deleteByTid(Integer tid);
}
TypeDao.java
package zsls.news.dao;
import org.apache.ibatis.annotations.Param;
import zsls.news.pojo.Type;
import java.util.List;
public interface TypeDao {
public List<Type> queryAllTypes();
public List<Type> queryType(@Param("name")String name);
public int insertType(@Param("name")String name);
public int deleteByRecid(String id);
Type queryById(Integer id);
int update(Type type);
}
UserDao.java
package zsls.news.dao;
import org.apache.ibatis.annotations.Param;
import zsls.news.pojo.User;
public interface UserDao {
public User queryUserByUsernameAndPassword(@Param("name")String username, @Param("pass")String password);
}
NewsService.java
package zsls.news.service;
import zsls.news.pojo.News;
import java.util.List;
public interface NewsService {
List<News> queryALL(Integer tid,String title,Integer pageNo);
News queryById(Integer id);
int save(News news);
int update(News news);
int deleteById(Integer id);
}
NewsServiceImpl.java
package zsls.news.service;
import zsls.news.dao.NewsDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import zsls.news.pojo.News;
import java.util.List;
@Service
public class NewsServiceImpl implements NewsService {
@Autowired
private NewsDao newsDao;
@Override
public List<News> queryALL(Integer tid,String title,Integer pageNo) {
if(title != null && !"".equals(title.trim())){
title = "%"+title+"%";
}
int num = (pageNo - 1) * 10;
return newsDao.queryALL(tid,title,num);
}
@Override
public News queryById(Integer id) {
return newsDao.queryById(id);
}
@Override
public int save(News news) {
return newsDao.save(news);
}
@Override
public int update(News news) {
return newsDao.update(news);
}
@Override
public int deleteById(Integer id) {
return newsDao.deleteById(id);
}
}
TypeService.java
package zsls.news.service;
import zsls.news.pojo.Type;
import java.util.List;
public interface TypeService {
public List<Type> queryAllTypes();
public int deleteByRecid(String recid);
int addType(String name);
Type queryById(Integer id);
int update(Type type);
}
TypeServiceImpl.java
package zsls.news.service;
import zsls.news.dao.NewsDao;
import zsls.news.dao.TypeDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import zsls.news.pojo.Type;
import java.util.List;
@Service
public class TypeServiceImpl implements TypeService {
@Autowired
private TypeDao typeDao;
@Autowired
private NewsDao newsDao;
@Override
public List<Type> queryAllTypes() {
// TODO Auto-generated method stub
return typeDao.queryAllTypes();
}
@Override
public int deleteByRecid(String recid) {
// TODO Auto-generated method stub
int i=typeDao.deleteByRecid(recid);
// 刪除類型,把同類的新聞也全部刪除
int deleteByTid = newsDao.deleteByTid(Integer.valueOf(recid));
return i;
}
@Override
public int addType(String name) {
return typeDao.insertType(name);
}
@Override
public Type queryById(Integer id) {
return typeDao.queryById(id);
}
@Override
public int update(Type type) {
return typeDao.update(type);
}
}
UserService.java
package zsls.news.service;
import zsls.news.pojo.User;
public interface UserService {
public User queryUserByUsernameAndPassword(String username, String password);
}
UserServiceImpl.java
package zsls.news.service;
import zsls.news.dao.UserDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import zsls.news.pojo.User;
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
@Override
public User queryUserByUsernameAndPassword(String username, String password) {
// TODO Auto-generated method stub
return userDao.queryUserByUsernameAndPassword(username, password);
}
}
AdminController.java
package zsls.news.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import zsls.news.pojo.News;
import zsls.news.pojo.Type;
import zsls.news.pojo.User;
import zsls.news.service.NewsService;
import zsls.news.service.TypeService;
import zsls.news.service.UserService;
import javax.servlet.http.HttpSession;
import java.util.Date;
import java.util.List;
@Controller
public class AdminController {
@Autowired
private UserService userService;
@Autowired
private TypeService typeService;
@Autowired
private NewsService newsService;
@RequestMapping("login.do")
public String login(String username, String password, HttpSession session, Model model){
User user=userService.queryUserByUsernameAndPassword(username, password);
System.out.println("當(dāng)前正在執(zhí)行控制器方法login...");
if(user!=null){
session.setAttribute("loginUser",user);
return "/manager/index";
}else{
model.addAttribute("msg","登錄失敗,請重新登錄!");
return "/login";
}
}
@RequestMapping("logout.do")
public String logout(HttpSession session){
session.invalidate();
return "/login";
}
@RequestMapping("toLogin.do")
public String toLogin(){
return "/login";
}
@RequestMapping("admin/toIndex.do")
public String toIndex(){
return "/manager/index";
}
@RequestMapping("admin/queryAllTypes.do") //管理員方法
public String AdminQueryAllTypes(Model model){
List<Type> typelist=typeService.queryAllTypes();
model.addAttribute("typelist",typelist);
return "/manager/categoryList";
}
@RequestMapping("admin/toAddType.do")
public String toAddType(){
return "/manager/categoryAdd";
}
@RequestMapping("admin/addType.do")
public String addType(String name,Model model){
int i=typeService.addType(name);
if(i>0){
return "redirect:queryAllTypes.do";
}else{
model.addAttribute("msg","添加類型不成功!");
return "/error";
}
}
@RequestMapping("admin/toModifyType.do")
public String toModifyType(Integer recid,Model model){
Type type = typeService.queryById(recid);
model.addAttribute("type",type);
return "/manager/categoryModify";
}
@RequestMapping("admin/modifyType.do")
public String modifyType(Type type,Model model){
int i=typeService.update(type);
if(i>0){
return "redirect:queryAllTypes.do";
}else{
model.addAttribute("msg","修改類型不成功!");
return "/error";
}
}
@RequestMapping("admin/delete.do") //管理員方法
public String deleteByRecid(String recid,Model model){
int i=typeService.deleteByRecid(recid);
if(i>0){
return "redirect:queryAllTypes.do";
}else{
model.addAttribute("msg","刪除類型不成功!");
return "/error";
}
}
@RequestMapping("admin/queryAllNews.do") //管理員方法
public String AdminQueryAllNews(Integer tid,Integer pageNo,Model model){
if(pageNo == null || pageNo < 1){
pageNo = 1;
}
List<News> newsList = newsService.queryALL(tid,null,pageNo);
model.addAttribute("newsList",newsList);
List<Type> typelist=typeService.queryAllTypes();
model.addAttribute("typelist",typelist);
model.addAttribute("pageNo1",pageNo-1);
model.addAttribute("pageNo",pageNo);
model.addAttribute("pageNo2",pageNo+1);
model.addAttribute("tid",tid);
return "/manager/newsList";
}
@RequestMapping("admin/toAddNews.do")
public String toAddNews(Model model){
List<Type> typelist=typeService.queryAllTypes();
model.addAttribute("typelist",typelist);
return "/manager/newsAdd";
}
@RequestMapping("admin/addNews.do")
public String addNews(News news,Model model){
if(news.getTid() == null ){
model.addAttribute("msg","添加新聞類型不能為空!");
return "/error";
}
if(news.getTitle() == null || "".equals(news.getTitle()) || news.getContent() == null || "".equals(news.getContent())){
model.addAttribute("msg","添加新聞標(biāo)題或內(nèi)容不能為空!");
return "/error";
}
news.setDate(new Date());
int i=newsService.save(news);
if(i>0){
return "redirect:queryAllNews.do";
}else{
model.addAttribute("msg","添加新聞不成功!");
return "/error";
}
}
@RequestMapping("admin/deleteNews.do")
public String deleteNews(Integer id,Model model){
int i=newsService.deleteById(id);
if(i>0){
return "redirect:queryAllNews.do";
}else{
model.addAttribute("msg","刪除新聞不成功!");
return "/error";
}
}
@RequestMapping("admin/toModifyNews.do")
public String toModifyNews(Integer id,Model model){
News news = newsService.queryById(id);
model.addAttribute("news",news);
return "/manager/newsModify";
}
@RequestMapping("admin/modifyNews.do")
public String modifyNews(News news,Model model){
news.setDate(new Date());
int i= newsService.update(news);
if(i>0){
return "redirect:queryAllNews.do";
}else{
model.addAttribute("msg","修改新聞不成功!");
return "/error";
}
}
@RequestMapping("queryAllTypes.do")
public String queryAllBooks(Model model){
List<Type> typelist=typeService.queryAllTypes();
model.addAttribute("typelist",typelist);
return "index";
}
}
VisitorController.java
package zsls.news.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import zsls.news.pojo.News;
import zsls.news.pojo.Type;
import zsls.news.service.NewsService;
import zsls.news.service.TypeService;
import java.util.List;
@Controller
public class VisitorController {
@Autowired
private TypeService typeService;
@Autowired
private NewsService newsService;
@RequestMapping("visitor/toIndex.do")
public String toIndex(){
return "/index";
}
@RequestMapping("visitor/queryAllNews.do")
public String queryAllNews(Integer tid,String title,Integer pageNo, Model model){
if(pageNo == null || pageNo < 1){
pageNo = 1;
}
List<News> newsList = newsService.queryALL(tid,title,pageNo);
model.addAttribute("newsList",newsList);
List<Type> typelist=typeService.queryAllTypes();
model.addAttribute("typelist",typelist);
model.addAttribute("pageNo1",pageNo-1);
model.addAttribute("pageNo",pageNo);
model.addAttribute("pageNo2",pageNo+1);
model.addAttribute("tid",tid);
model.addAttribute("title",title);
return "/search";
}
@RequestMapping("visitor/queryNews.do")
public String queryNews(Integer id, Model model){
News news = newsService.queryById(id);
model.addAttribute("news",news);
Type type = typeService.queryById(news.getTid());
model.addAttribute("type",type);
return "/info";
}
}
index.jsp (管理員)
<%@ page language="java" pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body background="${pageContext.request.contextPath}/images/bg.jpg">
歡迎您,${loginUser.name}
<a href="${pageContext.request.contextPath}/admin/toIndex.do">主頁</a>
<a href="${pageContext.request.contextPath}/admin/queryAllNews.do">新聞列表</a>
<a href="${pageContext.request.contextPath}/admin/queryAllTypes.do">類型列表</a>
<a href="${pageContext.request.contextPath}/logout.do">注銷</a>
<hr>
<br/>
<div style="margin-left: 40%">
<p> 歡迎來到</p>
<p>系統(tǒng)的后臺管理</p>
</div>
</body>
</html>
index.jsp (游客)
<%@ page language="java" pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body background="${pageContext.request.contextPath}/images/bg.jpg">
歡迎您
<a href="${pageContext.request.contextPath}/visitor/toIndex.do">主頁</a>
<a href="${pageContext.request.contextPath}/visitor/queryAllNews.do">新聞列表</a>
<a href="${pageContext.request.contextPath}/login.jsp">登錄</a>
<hr>
<br/>
<div style="margin-left: 40%">
<p>歡迎來瀏覽新聞</p>
</div>
</body>
</html>
LoginInterceptor.java (登錄攔截器)
package zsls.news.interceptor;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class LoginInterceptor implements HandlerInterceptor {
@Override
public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)
throws Exception {
// 該方法是在整個請求執(zhí)行即渲染結(jié)束后執(zhí)行,通過此方法實現(xiàn)一些資源清理,記錄日志信息等工作
System.out.println("執(zhí)行afterCompletion....");
}
@Override
public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView mv)
throws Exception {
該方法是在控制器方法調(diào)用之后,且視圖解析還沒進(jìn)行之前
System.out.println("執(zhí)行postHandle....");
}
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object arg2) throws Exception {
// 該方法是在控制器方法執(zhí)行前執(zhí)行,如果為真,則繼續(xù)下一步的操作,也就是接著執(zhí)行控制器方法或調(diào)用下一個攔截器;為假,則中斷
System.out.println("執(zhí)行preHandle....");
//獲取當(dāng)前請求的地址
String uri=request.getRequestURI();
if(uri.indexOf("login")>0) { //當(dāng)前你的請求是login,放行
return true;
}
HttpSession session=request.getSession();
if(session.getAttribute("loginUser")!=null) {
return true;
}
session.setAttribute("errorMsg","您還沒有登錄,請先登錄!");
request.getRequestDispatcher("/login.jsp").forward(request, response);
return false;
}
}
login.jsp
<%@ page language="java" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
${sessionScope.errorMsg}
<form action="${pageContext.request.contextPath}/login.do" method="post">
username:<input type="text" name="username"><br>
password:<input type="password" name="password"><br>
<input type="submit" value="login"/>
</form>
<div>
<br/>
<a href="${pageContext.request.contextPath}/visitor/toIndex.do" style="font-size: 24px;">游客主頁</a>
</div>
</body>
</html>
categoryAdd.jsp
<%@ page language="java" pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body background="${pageContext.request.contextPath}/images/bg.jpg">
歡迎您,${loginUser.name}
<a href="${pageContext.request.contextPath}/admin/toIndex.do">主頁</a>
<a href="${pageContext.request.contextPath}/admin/queryAllNews.do">新聞列表</a>
<a href="${pageContext.request.contextPath}/admin/queryAllTypes.do">類型列表</a>
<a href="${pageContext.request.contextPath}/logout.do">注銷</a>
<hr>
<br/>
<div style="margin-left: 20%;width: 50%">
<form action="${pageContext.request.contextPath}/admin/addType.do" method="post">
<label>類型名稱:</label><input type="text" name="name">
<br/>
<button type="submit">添加</button>
</form>
</div>
</body>
</html>
categoryList.jsp
<%@ page language="java" pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body background="${pageContext.request.contextPath}/images/bg.jpg">
歡迎您,${loginUser.name}
<a href="${pageContext.request.contextPath}/admin/toIndex.do">主頁</a>
<a href="${pageContext.request.contextPath}/admin/queryAllNews.do">新聞列表</a>
<a href="${pageContext.request.contextPath}/admin/queryAllTypes.do">類型列表</a>
<a href="${pageContext.request.contextPath}/logout.do">注銷</a>
<hr>
<br/>
<div style="margin-left: 20%;width: 50%">
<a href="${pageContext.request.contextPath}/admin/toAddType.do">添加類型</a>
<br/>
<table border="1" style="width: 80%">
<thead>
<th>類別編號</th>
<th>類別名稱</th>
<th>刪除</th>
<th>編輯</th>
</thead>
<c:forEach items="${typelist}" var="type">
<tr>
<td>${type.id}</td>
<td>${type.name}</td>
<td><a href="${pageContext.request.contextPath}/admin/delete.do?recid=${type.id }">刪除</a></td>
<td><a href="${pageContext.request.contextPath}/admin/toModifyType.do?recid=${type.id }">編輯</a></td>
</tr>
</c:forEach>
</table>
</div>
</body>
</html>
categoryModify.jsp
<%@ page language="java" pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body background="${pageContext.request.contextPath}/images/bg.jpg">
歡迎您,${loginUser.name}
<a href="${pageContext.request.contextPath}/admin/toIndex.do">主頁</a>
<a href="${pageContext.request.contextPath}/admin/queryAllNews.do">新聞列表</a>
<a href="${pageContext.request.contextPath}/admin/queryAllTypes.do">類型列表</a>
<a href="${pageContext.request.contextPath}/logout.do">注銷</a>
<hr>
<br/>
<div style="margin-left: 20%;width: 50%">
<form action="${pageContext.request.contextPath}/admin/modifyType.do" method="post">
<label>類型編號:</label><input type="text" name="id" value="${type.id}" readonly>
<br/>
<label>類型名稱:</label><input type="text" name="name" value="${type.name}">
<br/>
<button type="submit">修改</button>
</form>
</div>
</body>
</html>
newsAdd.jsp
<%@ page language="java" pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body background="${pageContext.request.contextPath}/images/bg.jpg">
歡迎您,${loginUser.name}
<a href="${pageContext.request.contextPath}/admin/toIndex.do">主頁</a>
<a href="${pageContext.request.contextPath}/admin/queryAllNews.do">新聞列表</a>
<a href="${pageContext.request.contextPath}/admin/queryAllTypes.do">類型列表</a>
<a href="${pageContext.request.contextPath}/logout.do">注銷</a>
<hr>
<br/>
<div style="margin-left: 20%;width: 50%">
<form action="${pageContext.request.contextPath}/admin/addNews.do" method="post">
<label>類型:</label>
<select name="tid">
<c:forEach items="${typelist}" var="type">
<option value="${type.id}" label="${type.name}">${type.name}</option>
</c:forEach>
</select>
<br/>
<label>標(biāo)題:</label><input type="text" name="title">
<br/>
<label>內(nèi)容:</label>
<textarea rows="8" cols="40" name="content"></textarea>
<br/>
<button type="submit">添加</button>
</form>
</div>
</body>
</html>
newsList.jsp
<%@ page language="java" pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body background="${pageContext.request.contextPath}/images/bg.jpg">
歡迎您,${loginUser.name}
<a href="${pageContext.request.contextPath}/admin/toIndex.do">主頁</a>
<a href="${pageContext.request.contextPath}/admin/queryAllNews.do">新聞列表</a>
<a href="${pageContext.request.contextPath}/admin/queryAllTypes.do">類型列表</a>
<a href="${pageContext.request.contextPath}/logout.do">注銷</a>
<hr>
<br/>
<div style="margin-left: 20%;width: 85%">
<div>
<form action="${pageContext.request.contextPath}/admin/queryAllNews.do">
<label>新聞類型:</label>
<select name="tid">
<option value="" label="">全部</option>
<c:forEach items="${typelist}" var="type">
<option value="${type.id}" label="${type.name}">${type.name}</option>
</c:forEach>
</select>
<button type="submit">查詢</button>
</form>
</div>
<a href="${pageContext.request.contextPath}/admin/toAddNews.do">添加新聞</a>
<br/>
<table border="1" style="width: 70%">
<thead>
<th style="width: 50px;">序號</th>
<th>標(biāo)題</th>
<th style="width: 150px;">日期</th>
<th style="width: 50px;">編輯</th>
<th style="width: 50px;">刪除</th>
</thead>
<c:forEach items="${newsList}" var="news">
<tr>
<td>${news.id}</td>
<td>${news.title}</td>
<td>
<fmt:formatDate value="${news.date}"></fmt:formatDate>
</td>
<td><a href="${pageContext.request.contextPath}/admin/toModifyNews.do?id=${news.id }">編輯</a></td>
<td><a href="${pageContext.request.contextPath}/admin/deleteNews.do?id=${news.id }">刪除</a></td>
</tr>
</c:forEach>
</table>
<div style="margin-left: 30%">
<span>當(dāng)前是第${pageNo}頁</span>
<a href="${pageContext.request.contextPath}/admin/queryAllNews.do?pageNo=${pageNo1}&tid=${tid}">上一頁</a>
<a href="${pageContext.request.contextPath}/admin/queryAllNews.do?pageNo=${pageNo2}&tid=${tid}">下一頁</a>
</div>
</div>
</body>
</html>
newsModify.jsp
<%@ page language="java" pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body background="${pageContext.request.contextPath}/images/bg.jpg">
歡迎您,${loginUser.name}
<a href="${pageContext.request.contextPath}/admin/toIndex.do">主頁</a>
<a href="${pageContext.request.contextPath}/admin/queryAllNews.do">新聞列表</a>
<a href="${pageContext.request.contextPath}/admin/queryAllTypes.do">類型列表</a>
<a href="${pageContext.request.contextPath}/logout.do">注銷</a>
<hr>
<br/>
<div style="margin-left: 20%;width: 50%">
<form action="${pageContext.request.contextPath}/admin/modifyNews.do" method="post">
<label>新聞編號:</label><input type="text" name="id" value="${news.id}" readonly>
<br/>
<label>類型編號:</label><input type="text" name="tid" value="${news.tid}" readonly>
<br/>
<label>新聞標(biāo)題:</label><input type="text" name="title" value="${news.title}" >
<br/>
<label>新聞內(nèi)容:</label>
<textarea name="content" rows="8" cols="40">${news.content}</textarea>
<br/>
<button type="submit">修改</button>
</form>
</div>
</body>
</html>
info.jsp
<%@ page language="java" pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body background="${pageContext.request.contextPath}/images/bg.jpg">
歡迎您
<a href="${pageContext.request.contextPath}/visitor/toIndex.do">主頁</a>
<a href="${pageContext.request.contextPath}/visitor/queryAllNews.do">新聞列表</a>
<a href="${pageContext.request.contextPath}/login.jsp">登錄</a>
<hr>
<br/>
<div style="margin-left: 20%;width: 60%" >
<h4>${news.title}</h4>
<span>${type.name} </span>
<span>
<fmt:formatDate value="${news.date}"></fmt:formatDate>
</span>
<br/>
<p>${news.content}</p>
</div>
</body>
</html>
search.jsp
<%@ page language="java" pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body background="${pageContext.request.contextPath}/images/bg.jpg">
歡迎您
<a href="${pageContext.request.contextPath}/visitor/toIndex.do">主頁</a>
<a href="${pageContext.request.contextPath}/visitor/queryAllNews.do">新聞列表</a>
<a href="${pageContext.request.contextPath}/login.jsp">登錄</a>
<hr>
<br/>
<div style="margin-left: 20%;width: 85%">
<div>
<form action="${pageContext.request.contextPath}/visitor/queryAllNews.do" method="post">
<label>新聞類型:</label>
<select name="tid">
<option value="" label="">全部</option>
<c:forEach items="${typelist}" var="type">
<option value="${type.id}" label="${type.name}">${type.name}</option>
</c:forEach>
</select>
<label>標(biāo)題:</label><input type="text" name="title">
<button type="submit">搜索</button>
</form>
</div>
<br/>
<table border="1" style="width: 70%">
<thead>
<th style="width: 50px;">序號</th>
<th>標(biāo)題</th>
<th style="width: 150px;">日期</th>
<th style="width: 50px;">詳情</th>
</thead>
<c:forEach items="${newsList}" var="news">
<tr>
<td>${news.id}</td>
<td>${news.title}</td>
<td>
<fmt:formatDate value="${news.date}"></fmt:formatDate>
</td>
<td><a href="${pageContext.request.contextPath}/visitor/queryNews.do?id=${news.id }">詳情</a></td>
</tr>
</c:forEach>
</table>
<div style="margin-left: 30%">
<span>當(dāng)前是第${pageNo}頁</span>
<a href="${pageContext.request.contextPath}/visitor/queryAllNews.do?pageNo=${pageNo1}&tid=${tid}&title=${title}">上一頁</a>
<a href="${pageContext.request.contextPath}/visitor/queryAllNews.do?pageNo=${pageNo2}&tid=${tid}&title=${title}">下一頁</a>
</div>
</div>
</body>
</html>
五、效果展示
普通用戶(游客)
(1)顯示所有新聞
?文章來源地址http://www.zghlxwxcb.cn/news/detail-763518.html
(2)瀏覽新聞
?
(3)根據(jù)新聞類別對新聞進(jìn)行查找
?
(4)根據(jù)新聞標(biāo)題對新聞進(jìn)行查找
?
管理員用戶
(1)顯示所有新聞
?
(2)增加新聞
?
?(3)修改新聞
?
?(4)根據(jù)新聞類型對新聞進(jìn)行查找
?
(5)刪除新聞
?
(6)顯示所有類別
?
(7)增加新聞類別
?
?(8)修改新聞類別
?
(9)刪除新聞類別
?文章來源:http://www.zghlxwxcb.cn/news/detail-763518.html
?
到了這里,關(guān)于新聞管理系統(tǒng)(ssm+jsp+mysql)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!