基于BIS的網(wǎng)站建設(shè)的設(shè)計(jì)與實(shí)現(xiàn)
好程序設(shè)計(jì)擅長(zhǎng)JAVA(SSM,SSH,SPRINGBOOT)、PYTHON(DJANGO/FLASK)、THINKPHP、C#、安卓、微 信小程序、MYSQL、SQLSERVER等,歡迎咨詢(xún)
每天都要認(rèn)真學(xué)習(xí),才能更加進(jìn)步。└(^o^)┘
在工作和學(xué)習(xí)的過(guò)程中要善于思考,勤于學(xué)習(xí)。并做出適當(dāng)?shù)挠涗洠拍茏羁焖俚膶W(xué)習(xí)并掌握一項(xiàng)知識(shí)。希望在這個(gè)平臺(tái)和大家一起共同成長(zhǎng),和大家分享一個(gè)SSM(MYECLIPSE)項(xiàng)目,該項(xiàng)目名稱(chēng)為BLOG網(wǎng)站建設(shè)。先簡(jiǎn)單介紹一下這個(gè)項(xiàng)目的背景:采用當(dāng)前非常流行的B/S體系結(jié)構(gòu),以JSP作為開(kāi)發(fā)技術(shù),主要依賴(lài)SSM技術(shù)框架,實(shí)現(xiàn)博客網(wǎng)站的實(shí)時(shí)動(dòng)態(tài)管理,使得對(duì)個(gè)人博客信息的管理更加及時(shí)、高效、便捷,提高信息管理的工作效率. “博客”作為現(xiàn)代社會(huì)非常流行的詞匯,它是將英語(yǔ)單詞Weblog簡(jiǎn)寫(xiě)成blog,而blog直譯過(guò)來(lái)即博客,故此而得名.通過(guò)博客可以把在網(wǎng)絡(luò)上發(fā)布過(guò)的和瀏覽過(guò)的信息記錄下來(lái),一般將其稱(chēng)之為“網(wǎng)絡(luò)日志”,簡(jiǎn)稱(chēng)為“網(wǎng)志”.。
大家在學(xué)習(xí)中編寫(xiě)SSM(MYECLIPSE)框架的項(xiàng)目時(shí)常選用的開(kāi)發(fā)工具是MYECLIPSE,從上面的項(xiàng)目背景中,我們可以得出BLOG網(wǎng)站建設(shè)擁有 后臺(tái)。才能讓用戶(hù)完整的使用該項(xiàng)目。
BLOG網(wǎng)站建設(shè)項(xiàng)目的登錄角色包括了管理員、用戶(hù),系統(tǒng)中所有的用戶(hù)都是擁有賬號(hào)密碼字段的。其中管理員只能在后臺(tái)和數(shù)據(jù)庫(kù)進(jìn)行添加。而其余的登錄角色可以通過(guò)注冊(cè)的方式成功擁有系統(tǒng)賬號(hào)密碼。
系統(tǒng)中用戶(hù)、博客之間具有較強(qiáng)的聯(lián)系性。他們之間的關(guān)系為博客的作者與用戶(hù)的mingzi字段對(duì)應(yīng)、博客的作者id與用戶(hù)的id字段對(duì)應(yīng)
。在博客表中可以體現(xiàn)出這種關(guān)系。為了完成系統(tǒng)的功能需要為博客、用戶(hù)設(shè)置評(píng)論表,記錄評(píng)論信息。在評(píng)論表中定義了兩者的關(guān)聯(lián)關(guān)系,其中評(píng)論的博客與博客的biaoti字段對(duì)應(yīng)、評(píng)論的博客id與博客的id字段對(duì)應(yīng)、評(píng)論的用戶(hù)與用戶(hù)的mingzi字段對(duì)應(yīng)、評(píng)論的用戶(hù)id與用戶(hù)的id字段對(duì)應(yīng)
。
總結(jié)得出BLOG網(wǎng)站建設(shè)項(xiàng)目所有數(shù)據(jù)為:管理員(admin)、用戶(hù)(yonghu)、博客(boke)、評(píng)論(pingllun)
BLOG網(wǎng)站建設(shè)之管理員表
字段名 | 類(lèi)型 | 屬性 | 描述
id | int(11) | PRIMARY KEY | 管理員id
username | varchar(255) | | 賬號(hào)
password | varchar(255) | | 密碼
BLOG網(wǎng)站建設(shè)之用戶(hù)表
字段名 | 類(lèi)型 | 屬性 | 描述
id | int(11) | PRIMARY KEY | 用戶(hù)id
mingzi | varchar(255) | | 名字
username | varchar(255) | | 賬號(hào)
password | varchar(255) | | 密碼
xingbie | varchar(255) | | 性別
nianling | varchar(255) | | 年齡
jianjie | varchar(255) | | 簡(jiǎn)介
BLOG網(wǎng)站建設(shè)之博客表
字段名 | 類(lèi)型 | 屬性 | 描述
id | int(11) | PRIMARY KEY | 博客id
biaoti | varchar(255) | | 標(biāo)題
zuozhe | varchar(255) | | 作者
zuozheid | varchar(255) | | 作者id
neirong | varchar(255) | | 內(nèi)容
fabushijian | varchar(255) | | 發(fā)布時(shí)間
BLOG網(wǎng)站建設(shè)之評(píng)論表
字段名 | 類(lèi)型 | 屬性 | 描述
id | int(11) | PRIMARY KEY | 評(píng)論id
boke | varchar(255) | | 博客
bokeid | varchar(255) | | 博客id
yonghu | varchar(255) | | 用戶(hù)
yonghuid | varchar(255) | | 用戶(hù)id
neirong | varchar(255) | | 內(nèi)容
sql建表語(yǔ)句如下:
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- ----------------------------
-- Table structure for ggbokewangzhan
-- ----------------------------
DROP TABLE IF EXISTS `t_admin`;
CREATE TABLE `t_admin` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '管理員id',`username` varchar(255) DEFAULT NULL COMMENT '賬號(hào)',`password` varchar(255) DEFAULT NULL COMMENT '密碼',PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8 COMMENT='管理員';
-- ----------------------------
DROP TABLE IF EXISTS `t_yonghu`;
CREATE TABLE `t_yonghu` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用戶(hù)id',`mingzi` varchar(255) DEFAULT NULL COMMENT '名字',`username` varchar(255) DEFAULT NULL COMMENT '賬號(hào)',`password` varchar(255) DEFAULT NULL COMMENT '密碼',`xingbie` varchar(255) DEFAULT NULL COMMENT '性別',`nianling` varchar(255) DEFAULT NULL COMMENT '年齡',`jianjie` varchar(500) DEFAULT NULL COMMENT '簡(jiǎn)介',PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8 COMMENT='用戶(hù)';
-- ----------------------------
DROP TABLE IF EXISTS `t_boke`;
CREATE TABLE `t_boke` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '博客id',`biaoti` varchar(255) DEFAULT NULL COMMENT '標(biāo)題',`zuozhe` varchar(255) DEFAULT NULL COMMENT '作者',`zuozheid` int(11) DEFAULT NULL COMMENT '作者id',`neirong` varchar(500) DEFAULT NULL COMMENT '內(nèi)容',`fabushijian` varchar(255) DEFAULT NULL COMMENT '發(fā)布時(shí)間',PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8 COMMENT='博客';
-- ----------------------------
DROP TABLE IF EXISTS `t_pingllun`;
CREATE TABLE `t_pingllun` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '評(píng)論id',`boke` varchar(255) DEFAULT NULL COMMENT '博客',`bokeid` int(11) DEFAULT NULL COMMENT '博客id',`yonghu` varchar(255) DEFAULT NULL COMMENT '用戶(hù)',`yonghuid` int(11) DEFAULT NULL COMMENT '用戶(hù)id',`neirong` varchar(500) DEFAULT NULL COMMENT '內(nèi)容',PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8 COMMENT='評(píng)論';
[/cc]
添加評(píng)論模塊:
系統(tǒng)中存在添加評(píng)論功能,通過(guò)點(diǎn)擊添加評(píng)論可以跳轉(zhuǎn)到該功能模塊,在該功能模塊中,填寫(xiě)對(duì)應(yīng)的評(píng)論信息。評(píng)論包含信息博客,博客id,用戶(hù),用戶(hù)id,內(nèi)容,填寫(xiě)完所有信息后,通過(guò)post方法將數(shù)據(jù)提交到addpingllun.action中,該地址將在服務(wù)器中pingllunController類(lèi)中的addpingllunact方法中進(jìn)行響應(yīng)。響應(yīng)結(jié)果為,獲取所有的評(píng)論信息,封裝一個(gè)pingllun類(lèi),使用pingllunController類(lèi)中定義的pingllundao的insert方法,將評(píng)論數(shù)據(jù)插入到數(shù)據(jù)庫(kù)的pingllun表中。并給出用戶(hù)提示信息,添加評(píng)論成功,將該信息保存到request的message中,該信息將在頁(yè)面中進(jìn)行展示。該部分核心代碼如下:
通過(guò)pingllundao的insert方法將頁(yè)面?zhèn)鬏數(shù)脑u(píng)論添加到數(shù)據(jù)庫(kù)中pingllundao.insert(pingllun);
將添加評(píng)論成功信息,保存到request的message中,在頁(yè)面中給出用戶(hù)提示request.setAttribute("message", "添加評(píng)論成功");
返回評(píng)論管理界面
return "forward:/addpingllun.action";
查詢(xún)?cè)u(píng)論模塊:
在瀏覽器中進(jìn)入評(píng)論查詢(xún)頁(yè)面時(shí),此時(shí)瀏覽器的地址欄為pingllunmanage.action,該地址將響應(yīng)pingllunController類(lèi)中的pingllunmanage,在該方法中,通過(guò)selectByexample方法獲取所有的評(píng)論信息,并將該信息保存到request中,在頁(yè)面進(jìn)行循環(huán)展示。該部分核心代碼如下:
生成評(píng)論樣例類(lèi),通過(guò)example定義查詢(xún)條件PingllunExample example = new PingllunExample();
通過(guò)pingllundao的selectByExample方法查詢(xún)出所有的評(píng)論信息List pingllunall = pingllundao.selectByExample(example);
將評(píng)論信息,保存到request中,在頁(yè)面通過(guò)foreach方法進(jìn)行展示request.setAttribute("pingllunall", pingllunall);
返回評(píng)論管理界面
return "forward:/pingllunmanage.action";
評(píng)論控制層:
package org.mypro.front;
import java.io.File;
import java.io.IOException;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import javax.jms.Session;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.mypro.service.PingllunServiceImp;
import org.mypro.entity.Pingllun;
import org.mypro.entity.PingllunExample;
import org.mypro.entity.Boke;
import org.mypro.entity.BokeExample;
import org.mypro.dao.BokeMapper;
import org.mypro.entity.Yonghu;
import org.mypro.entity.YonghuExample;
import org.mypro.dao.YonghuMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.multipart.MultipartFile;
@Controller
@RequestMapping(value = "/")
public class PingllunController {
private static final Log logger = LogFactory.getLog(PingllunController.class);
@Autowired
private PingllunServiceImp pingllunservice;
@RequestMapping(value = "addpingllun")
public String addpingllun(HttpServletRequest request, HttpServletResponse response,HttpSession session,String backurl) {
logger.debug("PingllunController.addpingllun ......");
pingllunservice.addpingllun(request,session);
if(backurl != && backurl.indexOf("addpingllun.action") == -1){
return "forward:/" + backurl;}
return "addpingllun";
}
@RequestMapping(value = "addpingllunact")
public String addpingllunact(HttpServletRequest request,HttpSession session, HttpServletResponse response,Pingllun pingllun,String backurl) throws IOException {
logger.debug("PingllunController.addpingllunact ......");
pingllunservice.addpingllunact(request,session,pingllun);
if(backurl != && backurl.indexOf("addpingllunact.action") == -1){
return "forward:/" + backurl;}
return "forward:/pingllunmanage.action";
}
@RequestMapping(value = "pingllunmanage")
public String pingllunmanage(HttpServletRequest request,HttpSession session, HttpServletResponse response,String backurl) {
logger.debug("PingllunController.pingllunmanage ......");
pingllunservice.pingllunmanage(request,session);
if(backurl != && backurl.indexOf("pingllunmanage.action") == -1){
return "forward:/" + backurl;}
return "pingllunmanage";
}
@RequestMapping(value = "pingllunview")
public String pingllunview(HttpServletRequest request,HttpSession session, HttpServletResponse response,String backurl) {
logger.debug("PingllunController.pingllunview ......");
pingllunservice.pingllunview(request,session);
if(backurl != && backurl.indexOf("pingllunview.action") == -1){
return "forward:/" + backurl;}
return "pingllunview";
}
@RequestMapping(value = "updatepingllun")
public String updatepingllun(HttpServletRequest request, HttpServletResponse response,HttpSession session,int id,String backurl){
logger.debug("PingllunController.updatepingllun ......");
pingllunservice.updatepingllun(request,session,id);
if(backurl != && backurl.indexOf("updatepingllun.action") == -1){
return "forward:/" + backurl;}
return "updatepingllun";
}
@RequestMapping(value = "updatepingllunact")
public String updatepingllunact(HttpServletRequest request, HttpServletResponse response,Pingllun pingllun,HttpSession session,String backurl) throws IOException {
logger.debug("PingllunController.updatepingllunact ......");
pingllunservice.updatepingllunact(request,pingllun,session);
if(backurl != && backurl.indexOf("updatepingllunact.action") == -1){
return "forward:/" + backurl;}
return "forward:/pingllunmanage.action";
}
@RequestMapping(value = "deletepingllun")
public String deletepingllun(HttpServletRequest request, HttpServletResponse response,HttpSession session,int id,String backurl){
logger.debug("PingllunController.deletepingllun ......");
pingllunservice.deletepingllun(request,session,id);
if(backurl != && backurl.indexOf("deletepingllun.action") == -1){
return "forward:/" + backurl;}
return "forward:/pingllunmanage.action";
}
@RequestMapping(value = "searchpingllun")
public String searchpingllun(HttpServletRequest request, HttpServletResponse response,HttpSession session,String search,String backurl) {
logger.debug("PingllunController.searchpingllun ......");
pingllunservice.searchpingllun(request,session,search);
if(backurl != && backurl.indexOf("searchpingllun.action") == -1){
return "forward:/" + backurl;}
return "searchpingllun";
}
@RequestMapping(value = "pingllundetails")
public String pingllundetails(HttpServletRequest request,HttpSession session, HttpServletResponse response,int id,String backurl) {
logger.debug("PingllunController.pingllundetails ......");
pingllunservice.pingllundetails(request,session,id);
if(backurl != && backurl.indexOf("pingllundetails.action") == -1){
return "forward:/" + backurl;}
return "pingllundetails";
}
}[/cc]
如需源碼,請(qǐng)聯(lián)系站長(zhǎng)
好程序設(shè)計(jì),為你提供想要的效果
為你量身定制的程序設(shè)計(jì)
關(guān)于程序設(shè)計(jì),我們將盡心盡力為你完成
十年程序經(jīng)驗(yàn),盡在好程序設(shè)計(jì)
聲明:免責(zé)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶(hù)自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),也不承認(rèn)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,請(qǐng)發(fā)
送郵件至:operations@xinnet.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。本站原創(chuàng)內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)
需注明出處:新網(wǎng)idc知識(shí)百科