




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、課程設(shè)計(jì)任務(wù)書系別電氣與電子工程系專業(yè)計(jì)算機(jī)應(yīng)用技術(shù)班級(jí)指導(dǎo)教師師題目基于Struts+Hibernate網(wǎng)上論壇系統(tǒng)設(shè)計(jì)目的:論壇系統(tǒng)是開發(fā)中很典型的一個(gè)例子。它可以從一個(gè)很簡(jiǎn)單的模型復(fù)雜細(xì)化到一個(gè)龐大的系統(tǒng)。對(duì)于企業(yè)或者個(gè)人,類似留言板的功能十分常見(jiàn)。通過(guò)網(wǎng)上論壇系統(tǒng)的設(shè)計(jì)和開發(fā)可以了解到類似系統(tǒng)的功能邏輯以與用Struts和Hibernate實(shí)現(xiàn)的基礎(chǔ)。設(shè)計(jì)要求包含以下模塊:1. 用戶登錄和驗(yàn)證模塊。2. 顯示現(xiàn)在所有話題模塊與已有回復(fù)的模塊。3. 顯示某一特定話題和回復(fù)模塊。4. 新建話題模塊。5. 新建回復(fù)模塊。6. 界面要求:使用Dreamweaver設(shè)計(jì)界面達(dá)到協(xié)調(diào)、美觀。課程設(shè)
2、計(jì)說(shuō)明文檔要求:1網(wǎng)上論壇系統(tǒng)須使用Struts和Hibernate協(xié)同工作,前臺(tái)使用Struts做控制和顯示,后臺(tái)用Hibernate做數(shù)據(jù)操作。2. 說(shuō)明系統(tǒng)設(shè)計(jì)的功能與模塊,畫出系統(tǒng)流程圖。3. 數(shù)據(jù)庫(kù)設(shè)計(jì)與Hibernate設(shè)計(jì)。4. Action和Form設(shè)計(jì)與頁(yè)面設(shè)計(jì)。4. 撰寫課程設(shè)計(jì)說(shuō)明書。課程說(shuō)明書里應(yīng)包括目錄,程序流程圖,數(shù)據(jù)庫(kù)與Hibernate設(shè)計(jì)、Action和Form設(shè)計(jì)與頁(yè)面設(shè)計(jì)、程序,總結(jié)(印象較深的經(jīng)驗(yàn)/教訓(xùn)等)。要求:設(shè)計(jì)要有相應(yīng)的設(shè)計(jì)報(bào)告,報(bào)告要包含題目、目錄、摘要、關(guān)鍵字、正文、參考文獻(xiàn)幾部分;字體、字號(hào)格式按樣文設(shè)置;正文要有需求分析、概要設(shè)
3、計(jì)、詳細(xì)設(shè)計(jì)、代碼、結(jié)論等部分構(gòu)成,并有必要的圖表和效果圖。結(jié)題形式產(chǎn)品,程序代碼,設(shè)計(jì)說(shuō)明書時(shí)間分配:總體設(shè)計(jì)時(shí)間為1周1 需求分析,概要設(shè)計(jì) 1天2 功能模塊開發(fā) 4天3 上機(jī)調(diào)試,實(shí)現(xiàn)功能 1天4 寫說(shuō)明書、答辯 1天目錄第一章網(wǎng)上論壇系統(tǒng)分析41開發(fā)平臺(tái)4(1)MyEclipse4(2) Tomcat42.數(shù)據(jù)庫(kù)53.功能模塊6第二章網(wǎng)上論壇系統(tǒng)開發(fā)技術(shù)61.J2EE技術(shù)簡(jiǎn)單介紹62.J2EE技術(shù)struts簡(jiǎn)單介紹63.J2EE技術(shù)hibernate簡(jiǎn)單介紹74.J2EE技術(shù)MVC開發(fā)模式介紹7第三章網(wǎng)上論壇系統(tǒng)開發(fā)8一、數(shù)據(jù)庫(kù)開發(fā)與設(shè)計(jì)8二、登錄模塊122.1登錄界面122.2注冊(cè)
4、模塊142.3論壇首頁(yè)162.4新建帖子模塊212.5查看帖子模塊232.6添加回復(fù)模塊242.7 錯(cuò)誤頁(yè)面模塊25第四章總結(jié)25第五章參考文獻(xiàn)25摘要J2EE是一套全然不同于傳統(tǒng)應(yīng)用開發(fā)的技術(shù)架構(gòu),它包含許多組件,可以簡(jiǎn)化和規(guī)應(yīng)用系統(tǒng)的開發(fā)和部署,提高可移植性、安全性與重用價(jià)值,J2EE的核心是一組技術(shù)規(guī)與指南,其包含的各類組件、服務(wù)架構(gòu)與技術(shù)層次均有共通的標(biāo)準(zhǔn)與規(guī)格,因而各種遵循J2EE架構(gòu)的平臺(tái)具有良好的兼容性。本次課程設(shè)計(jì)的題目是基于基于Struts+Hibernate網(wǎng)上論壇系統(tǒng),實(shí)現(xiàn)了論壇的基本功能,即用戶登陸、用戶注冊(cè)、用戶發(fā)帖以與回帖等。主要任務(wù)是學(xué)會(huì)J2EE程序開發(fā)的環(huán)境搭建
5、和配置,并在實(shí)踐運(yùn)用中學(xué)習(xí)和掌握J(rèn)2EE程序開發(fā)的全過(guò)程,進(jìn)一步熟悉掌握J(rèn)2EE程序設(shè)計(jì)語(yǔ)言的基礎(chǔ)容。論壇又名網(wǎng)絡(luò)論壇BBS,全稱為Bulletin Board System(電子公告板)。它是Internet上的一種電子信息服務(wù)系統(tǒng)。它提供一塊公共電子白板,每個(gè)用戶都可以在上面書寫,可發(fā)布信息或提出看法。它是一種交互性強(qiáng),容豐富而即使的Internet電子信息服務(wù)系統(tǒng)。用戶在BBS站點(diǎn)上可以獲得各種信息服務(wù),發(fā)布信息,進(jìn)行討論,聊天等等。像日程生活中的黑板報(bào)一樣,論壇按不同的主題分為許多板塊,版面的設(shè)立依據(jù)是大多數(shù)用戶的要求和喜好,用戶可以閱讀別人關(guān)于某個(gè)主題的看法,也可以將自己的想法毫無(wú)保
6、留的貼到論壇中。關(guān)鍵詞:論壇系統(tǒng) MVC設(shè)計(jì)模式 JSP 第一章 網(wǎng)上論壇系統(tǒng)分析1開發(fā)平臺(tái)本系統(tǒng)的開發(fā)平臺(tái)為MyEclipse+Tomcat(1)MyEclipseMyEclipse,是一個(gè)十分優(yōu)秀的用于開發(fā)Java, J2EE的Eclipse插件集合,MyEclipse的功能非常強(qiáng)大,支持也十分廣泛,尤其是對(duì)各種開元產(chǎn)品的支持十分不錯(cuò)。MyEclipse企業(yè)級(jí)工作平臺(tái)(MyEclipse Enterprise Workbench ,簡(jiǎn)稱MyEclipse)是對(duì)Eclipse IDE的擴(kuò)展,利用它我們可以在數(shù)據(jù)庫(kù)和JavaEE的開發(fā)、發(fā)布,以與應(yīng)用程序服務(wù)器的整合方面極大的提高工作效率。它是
7、功能豐富的JavaEE集成開發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測(cè)試和發(fā)布功能,完整支持HTML, Struts, JSP, CSS, Javascript, SQL, Hibernate。在結(jié)構(gòu)上,MyEclipse的特征可以被分為7類: 1. JavaEE模型 2. WEB開發(fā)工具 3. E開發(fā)工具 4. 應(yīng)用程序服務(wù)器的連接器 5. JavaEE項(xiàng)目部署服務(wù) 6. 數(shù)據(jù)庫(kù)服務(wù) 7. MyEclipse整合幫助(2) TomcatTomcat 很受廣大程序員的喜歡,因?yàn)樗\(yùn)行時(shí)占用的系統(tǒng)資源小,擴(kuò)展性好,支持負(fù)載平衡與服務(wù)等開發(fā)應(yīng)用系統(tǒng)常用的功能;而且它還在不斷的 改進(jìn)和完善中,任何一個(gè)感興趣
8、的程序員都可以更改它或在其中加入新的功能。 Tomcat 是一個(gè)輕量級(jí)應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問(wèn)用戶不是很多的場(chǎng)合下被普遍使用,是開發(fā)和調(diào)試JSP 程序的首選。對(duì)于一個(gè)初學(xué)者來(lái)說(shuō),可以這樣認(rèn)為,當(dāng)在一臺(tái)機(jī)器上配置好Apache 服務(wù)器,可利用它響應(yīng)對(duì)HTML 頁(yè)面的訪問(wèn)請(qǐng)求。實(shí)際上Tomcat 部分是Apache 服務(wù)器的擴(kuò)展,但它是獨(dú)立運(yùn)行的,所以當(dāng)你運(yùn)行tomcat 時(shí),它實(shí)際上作為一個(gè)與Apache 獨(dú)立的進(jìn)程單獨(dú)運(yùn)行的。 這里的訣竅是,當(dāng)配置正確時(shí),Apache 為HTML頁(yè)面服務(wù),而Tomcat 實(shí)際上運(yùn)行JSP 頁(yè)面和Servlet。另外,Tomcat和IIS、Apache
9、等Web服務(wù)器一樣,具有處理HTML頁(yè)面的功能,另外它還是一個(gè)Servlet和JSP容器,獨(dú)立的Servlet容器是Tomcat的默認(rèn)模式。不過(guò),Tomcat處理靜態(tài)HTML的能力不如Apache服務(wù)器。目前Tomcat最新版本為7.0.12Released。2.數(shù)據(jù)庫(kù)庫(kù) yuu用戶登錄表t_user帖子t_message回復(fù)表t_comment3.功能模塊用戶注冊(cè)登陸失敗查看添加回復(fù)返回登陸成功進(jìn)入歡迎界面用戶名或密碼輸入錯(cuò)誤重新登錄用戶名與密碼均輸入正確發(fā)布新帖子用戶登錄第二章 網(wǎng)上論壇系統(tǒng)開發(fā)技術(shù)1.J2EE技術(shù)簡(jiǎn)單介紹J2EE是一套全然不同于傳統(tǒng)應(yīng)用開發(fā)的技術(shù)架構(gòu),包含許多組件,主要可
10、簡(jiǎn)化且規(guī)應(yīng)用系統(tǒng)的開發(fā)與部署,進(jìn)而提高可移植性、安全與再用價(jià)值。J2EE平臺(tái)是用于在分布式企業(yè)環(huán)境中開發(fā)、部署喝執(zhí)行應(yīng)用程序的體系結(jié)構(gòu)。分布式應(yīng)用程序需要系統(tǒng)級(jí)服務(wù),如事務(wù)管理、安全性、客戶端連接喝數(shù)據(jù)庫(kù)訪問(wèn)。2.J2EE技術(shù)struts簡(jiǎn)單介紹struts是開源軟件。使用Struts的目的是為了減少在運(yùn)用MVC設(shè)計(jì)模型來(lái)開發(fā)Web應(yīng)用的時(shí)間。我們利用混合使用Servlets和JSP的優(yōu)點(diǎn)來(lái)建立可擴(kuò)展的應(yīng)用。Struts 是MVC的一種實(shí)現(xiàn),它將 Servlet和 JSP 標(biāo)記(屬于 J2EE 規(guī))用作實(shí)現(xiàn)的一部分。Struts繼承了MVC的各項(xiàng)特性,并根據(jù)J2EE的特點(diǎn),做了相應(yīng)的變化與擴(kuò)展
11、。struts框架具有組件的模塊化,靈活性和重用性的優(yōu)點(diǎn),同時(shí)簡(jiǎn)化了基于MVC的web應(yīng)用程序的開發(fā)。 struts可以清晰地區(qū)分控制,事務(wù)邏輯和外觀,從而簡(jiǎn)化了開發(fā)應(yīng)用程序的過(guò)程。struts提供的類使得開發(fā)工作更加簡(jiǎn)單,這些類包括: a. 控制程序流程的類 b. 實(shí)現(xiàn)和執(zhí)行程序事務(wù)邏輯的類 c. 自定義的標(biāo)記庫(kù)使得創(chuàng)建和驗(yàn)證HTML表單更加容易struts 3.J2EE技術(shù)hibernate簡(jiǎn)單介紹Hibernate定義為一個(gè)對(duì)象/關(guān)系數(shù)據(jù)庫(kù)映射(Object/Relational Mapping,ORM)工具,它作為開源的持久層框架,目前的技術(shù)已經(jīng)相對(duì)成熟,且為眾多的軟件開發(fā)項(xiàng)目所采用。
12、它作為連接Java應(yīng)用程序和數(shù)據(jù)庫(kù)的中間件,對(duì)JDBC進(jìn)行簡(jiǎn)單封裝,負(fù)責(zé)java對(duì)象的持久化。在分層結(jié)構(gòu)中處于持久化層,封裝對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)細(xì)節(jié),使業(yè)務(wù)邏輯層更專注于實(shí)現(xiàn)業(yè)務(wù)邏輯。4.J2EE技術(shù)MVC開發(fā)模式介紹MVC(model view controller)是一個(gè)設(shè)計(jì)模式,它強(qiáng)制性的使應(yīng)用程序的輸入、處理和輸出分開。使用MVC應(yīng)用程序被分成三個(gè)核心部件:模型、視圖、控制器。它們各自處理自己的任務(wù)。 視圖 :顯示層,主要用來(lái)實(shí)現(xiàn)信息輸入和展示功能。模型:業(yè)務(wù)邏輯層主要用來(lái)實(shí)現(xiàn)具體的業(yè)務(wù)邏輯和狀態(tài)管理??刂破?:控制層,主要起到控制業(yè)務(wù)流程控制的作用,實(shí)現(xiàn)視圖模型部分的協(xié)同工作。MVC結(jié)構(gòu)第
13、三章 網(wǎng)上論壇系統(tǒng)開發(fā)一、數(shù)據(jù)庫(kù)開發(fā)與設(shè)計(jì)1.全局變量的配置(Hibernate.cfg.xml)<session-factory > <property name="hibernate.connection.url">jdbc:mysql:/localhost/si</property> <property name="hibernate.connection.driver_class">.mysql.jdbc.Driver</property> <property name="
14、;hibernate.connection.username">root</property> <property name="hibernate.connection.password">123</property> <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> <property name="hibernate.show_sql">
15、;true</property> <mapping resource="/Comment.hbm.xml"/> <mapping resource="/Message.hbm.xml"/> <mapping resource="/User.hbm.xml"/></session-factory>2.表格的創(chuàng)建package ;import org.hibernate.cfg.Configuration;import org.hibernate.tool.hbm2ddl.Sch
16、emaExport;public class ExportDB public static void main(String args) Configuration cfg=new Configuration().configure();SchemaExport export=new SchemaExport(cfg);export.create(true, true);3.POJO對(duì)象(1)User.javapackage ;public class User private String username;private String password;private int id;pub
17、lic int getId() return id;public void setId(int id) this.id = id;public String getPassword() return password;public String getUsername() return username;public void setPassword(String password) this.password = password;public void setUsername(String username) this.username = username;用戶表的映射文件配置(User
18、.hbm.xml)<class name=".User" table="user"><id name="id" column="id"><generator class="native" /></id><property name="username" column="username" /><property name="password" column="p
19、assword" /></class>(2)Message.java:package ;import java.util.Date;import java.util.HashSet;import java.util.Set;public class Message private Date time;private String content;private String author;private String title;private int id;private Set comment = new HashSet();public String getC
20、ommentCount() return String.valueOf(comment.size();public String getTimeString() return time.toString();public String getAuthor() return author;public void setAuthor(String author) this.author = author;public String getContent() return content;public void setContent(String content) this.content = co
21、ntent;public int getId() return id;public void setId(int id) this.id = id;public Date getTime() return time;public void setTime(Date time) this.time = time;public String getTitle() return title;public void setTitle(String title) this.title = title;public Set getComment() return comment;public void s
22、etComment(Set comment) this ment = comment;帖子表的映射文件配置(Message.hbm.xml)<class name="Message" table="message"><id name="id" column="id"><generator class="native" /></id><property name="time" column="time"
23、/><property name="content" column="content" /><property name="author" column="author" /><property name="title" column="title" /><set name="comment" table="comment" lazy="false"inverse=&q
24、uot;true" cascade="save-update"><key column="message_id"></key><one-to-many class=" ment" ></one-to-many></set></class>(3)Comment.javapackage ;import java.util.Date;public class Comment private Date time;private String content
25、;private String author;private int id;private int message_id;public String getTimeString()return time.toString();public String getAuthor() return author;public void setAuthor(String author) this.author = author;public String getContent() return content;public void setContent(String content) this.con
26、tent = content;public int getId() return id;public void setId(int id) this.id = id;public int getMessage_id() return message_id;public void setMessage_id(int message_id) this.message_id = message_id;public Date getTime() return time;public void setTime(Date time) this.time = time;回復(fù)表的映射文件配置(Comment.
27、hbm.xml)<class name=" ment" table="comment"><id name="id" column="id"><generator class="native" /></id><property name="time" column="time" /><property name="content" column="content&
28、quot; /><property name="author" column="author" /><property name="message_id" column="message_id" /></class>二、登錄模塊2.1登錄界面1)實(shí)現(xiàn)了用戶登錄與驗(yàn)證功能,使系統(tǒng)更加安全可靠。2)主要代碼a.web.xml的配置<servlet-mapping><servlet-name>action</servlet-name><u
29、rl-pattern>*.do</url-pattern></servlet-mapping>b.struts-config.xml的配置<struts-config><form-beans> <form-bean name="loginForm" type=".LoginActionForm"></form-bean></form-beans><action-mappings><action-mappings><action name
30、="loginForm" path="/login" type=".LoginAction"><forward name="login" path="/login.jsp"></forward><forward name="success" path="/post.do"></forward><forward name="failure" path="/failure
31、.jsp"></forward></action> </action-mappings></struts-config>c.登錄部分通過(guò)繼承Action 和 ActionForm類,實(shí)現(xiàn)了前臺(tái)的數(shù)據(jù)收集和處理。public class LoginAction extends Action public ActionForward execute(ActionMapping mapping, ActionForm form, ServletRequest request, ServletResponse response)throw
32、s Exception LoginActionForm laf=(LoginActionForm)form;String username=laf.getUsername();String password=laf.getPassword();trySessionFactory sf =new Configuration().configure().buildSessionFactory();Session session=sf.openSession();Transaction tx=session.beginTransaction();String sqlQuery="selec
33、t u from User u where u.username='"+ username+"'"Query query=session.createQuery(sqlQuery);ArrayList userlist=(ArrayList)query.list();tx mit();session.close();User user=new User();if(null!=userlist)&&(userlist.size()>0)user=(User)userlist.get(0);if(!user.getPassword
34、().equals(password)return mapping.findForward("error"); elsereturn mapping.findForward("error"); catch(HibernateException e)e.printStackTrace();return mapping.findForward("error"); Session Session=request.getSession(); Session.setAttribute("username", username
35、);return mapping.findForward("success");2.2注冊(cè)模塊1)注冊(cè)界面2)主要代碼a.struts-config.xml的配置代碼<struts-config><form-beans><form-bean name="registerForm" type=". registeActionForm"></form-bean></form-beans><action-mappings></action><actio
36、n path="/register"type=".registerAction"name="registerForm"scope="request"><forward name="success" path="/registersuccess.jsp"></forward><forward name="failure" path="/registerfailure.jsp"></forwa
37、rd></action></action-mappings></struts-config>b.Action部分的代碼package ;import java.util.ArrayList;import javax.servlet. . ServletRequest;import javax.servlet. . ServletResponse;import javax.servlet. . Session;import org.apache.struts.action.Action;import org.apache.struts.action.Ac
38、tionForm;import org.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapping;import org.hibernate.Query;import org.hibernate.SQLQuery;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration;import org.hibernate.classic.Sessi
39、on;public class registerAction extends Action Overridepublic ActionForward execute(ActionMapping mapping, ActionForm form, ServletRequest request, ServletResponse response)throws Exception registerActionForm laf=(registerActionForm)form;String username=laf.getUsername();String password=laf.getPasswo
40、rd();String password1=laf.getPassword1();User user=new User();user.setUsername(username);user.setPassword(password);SessionFactory sf=new Configuration().configure().buildSessionFactory();Session session=sf.openSession(); Transaction t=session.beginTransaction(); session.save(user); t mit(); session
41、.close();return mapping.findForward("success");2.3論壇首頁(yè)1)首頁(yè)界面2)主要代碼a.struts-config.xml配置文件的主要代碼<struts-config><form-beans> <form-bean name="postForm" type=".PostActionForm"></form-bean></form-beans><action name="postForm" path=&
42、quot;/post" type=".PostAction"><forward name="messages" path="/messages.jsp"></forward><forward name="add" path="/newmessage.jsp"></forward><forward name="view" path="/viewmessage.jsp"></fo
43、rward><forward name="addcomment" path="/addcomment.jsp"></forward></action></action-mappings></struts-config>b.PostAction中的主要代碼package ;import java.io.IOException;import java.util.ArrayList;import java.util.Date;import java.util.Iterator;import ja
44、va.util.Set;import javax.servlet.ServletException;import javax.servlet. . ServletRequest;import javax.servlet. . ServletResponse;import javax.servlet. . Session;import org.apache.struts.action.Action;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionForward;import org.
45、apache.struts.action.ActionMapping;import org.hibernate.Query;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration;public class PostAction extends Action public ActionForward execute(ActionMapping mapping, ActionForm
46、 form, ServletRequest request, ServletResponse response)throws IOException, ServletException PostForm postForm = (PostForm) form;String mode = request.getParameter("mode");if ("new".equalsIgnoreCase(mode) return executeNewAction(mapping, postForm, request, response); else if (&qu
47、ot;newsave".equalsIgnoreCase(mode) return executeNewSaveAction(mapping, postForm, request, response); else if ("view".equalsIgnoreCase(mode) return executeViewAction(mapping, postForm, request, response);else if ("addcomment".equalsIgnoreCase(mode) return executeAddCommentAc
48、tion(mapping, postForm, request, response); else if ("addcommentdone".equalsIgnoreCase(mode) return executeAddCommentDoneAction(mapping, postForm, request, response); else return executeManageAction(mapping, postForm, request, response);private ActionForward executeNewAction(ActionMapping
49、mapping,PostForm form, ServletRequest request, ServletResponse response) PostForm postForm = (PostForm) form;postForm.setNewTitle(null);postForm.setNewContent(null);return mapping.findForward("add");private ActionForward executeNewSaveAction(ActionMapping mapping,PostForm form, ServletRequ
50、est request, ServletResponse response) PostForm postForm = (PostForm) form;Message message = new Message();message.setTitle(postForm.getNewTitle();message.setContent(postForm.getNewContent();message.setTime(new Date(); Session Session = request.getSession();String author = (String) Session.getAttrib
51、ute("username");message.setAuthor(author);SessionFactory sf = new Configuration().configure().buildSessionFactory();Session session = sf.openSession();Transaction tx = session.beginTransaction();session.save(message);tx mit();session.close();return executeManageAction(mapping, postForm, re
52、quest, response);private ActionForward executeViewAction(ActionMapping mapping,PostForm form, ServletRequest request, ServletResponse response) PostForm postForm = (PostForm) form;String hid = request.getParameter("hid");SessionFactory sf = new Configuration().configure().buildSessionFacto
53、ry();Session session = sf.openSession();Transaction tx = session.beginTransaction();String sqlQuery = "select m from Message m where m.title='" + hid + "'"Query lQuery = session.createQuery(sqlQuery);ArrayList messageList = (ArrayList) lQuery.list();Message message = (Mes
54、sage) messageList.get(0);tx mit();session.close();postForm.setViewMessage(message);return mapping.findForward("view");private ActionForward executeAddCommentAction(ActionMapping mapping,PostForm form, ServletRequest request, ServletResponse response) return mapping.findForward("addcom
55、ment");private ActionForward executeAddCommentDoneAction(ActionMapping mapping,PostForm form, ServletRequest request, ServletResponse response) PostForm postForm = (PostForm) form;Comment comment = new Comment();comment.setContent(postForm.getNewComment();comment.setTime(new Date();comment.setM
56、essage_id(postForm.getViewMessage().getId(); Session Session = request.getSession();String author = (String) Session.getAttribute("username");comment.setAuthor(author);SessionFactory sf = new Configuration().configure().buildSessionFactory();Session session = sf.openSession();Transaction t
57、x = session.beginTransaction();String sqlQuery = "select m from Message m where m.title='" + postForm.getViewMessage().getTitle()+ "'"Query lQuery = session.createQuery(sqlQuery);ArrayList messageList = (ArrayList) lQuery.list();Message message = (Message) messageList.get
58、(0);Set commentSet = message.getComment();System.out.println(commentSet.size();commentSet.add(comment);System.out.println(commentSet.size();message.setComment(commentSet);session.save(message);tx mit();session.close();return executeManageAction(mapping, postForm, request, response);private ActionFor
59、ward executeManageAction(ActionMapping mapping,PostForm form, ServletRequest request, ServletResponse response) PostForm postForm = (PostForm) form;ArrayList messageList = new ArrayList();SessionFactory sf = new Configuration().configure().buildSessionFactory();Session session = sf.openSession();Tra
60、nsaction tx = session.beginTransaction();String sqlQuery = "from Message"Query lQuery = session.createQuery(sqlQuery);messageList = (ArrayList) lQuery.list();tx mit();session.close();for(int i=0; i<messageList.size(); i+)Message message = (Message)messageList.get(i);Set comment = message.getComment();Iterator it
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 大學(xué)生職業(yè)規(guī)劃大賽《舞蹈編導(dǎo)專業(yè)》生涯發(fā)展展示
- 企業(yè)單位勞動(dòng)合同匯編
- 企業(yè)競(jìng)業(yè)禁止合同模板
- 三方技術(shù)轉(zhuǎn)讓合同范本
- 與象共舞的課件
- 職工福利購(gòu)房借款合同細(xì)則
- 昆明衛(wèi)生職業(yè)學(xué)院《BM建模技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 漯河醫(yī)學(xué)高等??茖W(xué)?!短厥鈨和祻?fù)學(xué)A》2023-2024學(xué)年第二學(xué)期期末試卷
- 建省寧德市福鼎一中2024-2025學(xué)年初三第一次模擬考試(1月)生物試題試卷含解析
- 連云港市2025屆三下數(shù)學(xué)期末學(xué)業(yè)質(zhì)量監(jiān)測(cè)模擬試題含解析
- 山東省濟(jì)寧市任城區(qū)2024-2025學(xué)年六年級(jí)下學(xué)期期中考試生物試題(含答案)
- DB4331T 7-2024 農(nóng)村社區(qū)社會(huì)工作室建設(shè)與服務(wù)
- 香港外匯管理制度規(guī)定
- 2023年中國(guó)海洋石油集團(tuán)有限公司校園招聘筆試參考題庫(kù)附帶答案詳解
- 2025年磁粉探傷工職業(yè)技能鑒定理論考試題庫(kù)(濃縮500題)
- 婚姻保證忠誠(chéng)協(xié)議書
- 工信委選調(diào)試題及答案
- GB/T 17591-2025阻燃織物
- 2025年中國(guó)白高粱行業(yè)發(fā)展趨勢(shì)預(yù)測(cè)及投資戰(zhàn)略咨詢報(bào)告
- 詳解家庭教育指導(dǎo)師考試試題及答案
- 2025長(zhǎng)沙市存量房買賣合同(合同版本)
評(píng)論
0/150
提交評(píng)論