面向行业领域的软件开发学年设计任务书
一、选题背景
二、方案论证
三、过程论述
3.3系统设计
3.3.1系统用例图
图3.2 系统用例图
3.3.2系统E-R图
实体-关系图描述的是数据对象的属性及数据对象彼此间相互连接的关系。
本系统实体分为新闻实体、列别实体和管理员实体。具体E-R图如下:
图3.3 系统E-R图
3.3.1数据库表结构
图3.4 数据库表结构图
3.4系统开发及运行环境
3.5系统发布与运行
图3.5 项目分包结构图
package com.caojun.action;
import java.util.Iterator;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.struts2.ServletActionContext;
import com.caojun.model.News;
import com.caojun.model.NewsType;
import com.caojun.model.User;
import com.caojun.service.NewsService;
import com.caojun.service.impl.NewsServiceImpl;
import com.caojun.service.impl.NewsTypeServiceImpl
import com.caojun.service.impl.UserServiceImpl;
import com.opensymphony.xwork2.ActionSupport;
public class NewsAction extends ActionSupport {
private int newsID;
private String title;
private String content;
private java.sql.Date releaseDate;
private int userID;
private int newsTypeID;
private List allNews;
private int pageSize = 10;
private int pageNow = 1;
private int totalCount;
private List allUsers;
private List allNewsType;
public List getAllUsers() {
return allUsers;
}
public void setAllUsers(List allUsers) {
this.allUsers = allUsers;
}
public List getAllNewsType() {
return allNewsType;
}
public void setAllNewsType(List allNews
this.allNewsType = allNewsType;
}
public int getNewsID() {
return newsID;
}
public void setNewsID(int newsID) {
this.newsID = newsID;
}
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 java.sql.Date getReleaseDate() {
return releaseDate;
}
public void setReleaseDate(java.sql.Date releaseD
this.releaseDate = releaseDate;
}
public int getUserID() {
return userID;
}
public void setUserID(int userID) {
this.userID = userID;
}
public int getNewsTypeID() {
return newsTypeID;
}
public void setNewsTypeID(int newsTypeID) {
this.newsTypeID = newsTypeID;
}
public List getAllNews() {
return allNews;
}
public void setAllNews(List allNews) {
this.allNews = allNews;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getPageNow() {
return pageNow;
}
public void setPageNow(int pageNow) {
this.pageNow = pageNow;
}
public int getTotalCount() {
return totalCount;
}
public void setTotalCount(int totalCount) {
this.totalCount = totalCount;
}
public String createNews(){
HttpSession session = ServletActionContext.getRe
User user = (User)session.getAttribute("user");
News news = new News();
news.setTitle(this.title);
news.setContent(this.content);
news.setReleaseDate(this.releaseDate);
news.setUserID(user.getId());
news.setNewsTypeID(this.newsTypeID);
NewsService newsService = new NewsServiceImpl();
newsService.createNews(news);
this.allNews = newsService.queryAllNews(this.pag
for(Iterator it = allNews.iterator();it.ha
News n = it.next();
User u1 = new UserServiceImpl().queryUser(n.get
n.setUser(u1);
NewsType newsType = new NewsTypeServiceImpl().q
n.setNewsType(newsType);
}
this.totalCount = newsService.queryAllNews().siz
return SUCCESS;
}
public String showNews(){
NewsService newService = new NewsServiceImpl();
News news = newService.queryNews(this.newsID);
User user = new UserServiceImpl().queryUser(news
news.setUser(user);
NewsType newsType = new NewsTypeServiceImpl().qu
news.setNewsType(newsType);
HttpServletRequest request = ServletActionContex
request.setAttribute("news", news);
this.allUsers = new UserServiceImpl().queryAllUs
this.allNewsType = new NewsTypeServiceImpl().que
return SUCCESS;
}
public String showAllNews(){
NewsService newsService = new NewsServiceImpl();
this.allNews = newsService.queryAllNews(this.pag
for(Iterator it = allNews.iterator();it.ha
News n = it.next();
User user = new UserServiceImpl().queryUser(n.g
n.setUser(user);
NewsType newsType = new NewsTypeServiceImpl().q
n.setNewsType(newsType);
}
this.totalCount = newsService.queryAllNews().siz
return SUCCESS;
}
public String showNewsByTypeID(){
NewsService newsService = new NewsServiceImpl();
this.allNews = newsService.queryAllNews(this.new
return SUCCESS;
}
public String updateNews(){
NewsService newsService = new NewsServiceImpl();
News news = newsService.queryNews(this.newsID);
news.setTitle(this.title);
news.setContent(this.content);
news.setReleaseDate(this.releaseDate);
news.setUserID(this.userID);
news.setNewsTypeID(this.newsTypeID);
newsService.updateNews(news);
this.allNews = newsService.queryAllNews(this.pag
for(Iterator it = allNews.iterator();it.ha
News n = it.next();
User user = new UserServiceImpl().queryUser(n.g
n.setUser(user);
NewsType newsType = new NewsTypeServiceImpl().q
n.setNewsType(newsType);
}
this.totalCount = newsService.queryAllNews().siz
return SUCCESS;
}
public String deleteNews(){
NewsService newsService = new NewsServiceImpl();
News news = newsService.queryNews(this.newsID);
newsService.deleteNews(news);
this.allNews = newsService.queryAllNews(this.pag
for(Iterator it = allNews.iterator();it.ha
News n = it.next();
User user = new UserServiceImpl().queryUser(n.g
n.setUser(user);
NewsType newsType = new NewsTypeServiceImpl().q
n.setNewsType(newsType);
}
this.totalCount = newsService.queryAllNews().siz
return SUCCESS;
}
public String showAllNewsTypes(){
this.allNewsType = new NewsTypeServiceImpl().que
return SUCCESS;
}
}
package com.caojun.action;
import javax.servlet.http.HttpSession;
import org.apache.struts2.ServletActionContext;
import com.caojun.model.User;
import com.caojun.service.UserService;
import com.caojun.service.impl.UserServiceImpl;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport{
private String username;
private String password;
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;
}
@Override
public String execute() throws Exception {
UserService userService = new UserServiceImpl();
User user = userService.queryUser(this.getUserna
if(user == null){
this.addActionError("密码或用户名不正确!");
return INPUT;
}else{
String psw = user.getPassword();
if(this.getPassword().equals(psw)){
HttpSession session = ServletActionContext.get
session.setAttribute("user", user);
return SUCCESS;
}
}
this.addActionError("密码或用户名不正确!");
return INPUT;
}
}
NewsTypeDAO.java
package com.caojun.dao;
import java.util.List;
import com.caojun.model.NewsType;
public interface NewsTypeDAO {
public void createNewsType(NewsType newsType);
public void updateNewsType(NewsType newsType);
public void deleteNewsType(NewsType newsType);
public List queryAllNewsTypes();
public List queryAllNewsTypes(int pageS
public NewsType queryNewsType(int newsTypeID);
}
四、结果分析
图3.6 前台美食点评系统首页
图3.8 后台管理员登录界面
图3.9 后台管理员主页面
五、结论(或总结)