FAQs源代码清单.docx
- 文档编号:11106987
- 上传时间:2023-02-25
- 格式:DOCX
- 页数:40
- 大小:21.77KB
FAQs源代码清单.docx
《FAQs源代码清单.docx》由会员分享,可在线阅读,更多相关《FAQs源代码清单.docx(40页珍藏版)》请在冰豆网上搜索。
FAQs源代码清单
FAQs系统案例研究项目源代码清单
本项目使用JBuilder9.0作为FAQs系统的IDE开发环境。
工程名称:
javaora;
WebApp名称:
javaora;
JSP页面相对WebAppRoot的目录:
faqtool。
1.工程javaora的公共模块:
PropertiesLoader.java的代码如下:
packagemon;
/**
*
Title:
ACCP3.0JavaandOracleGraduationProject
*
Description:
*
Copyright:
Copyright(c)2003JB-Aptech
*
Company:
BeiDaAptech
*@authorDongPing
*@version1.0
*/
importjava.io.FileNotFoundException;
importjava.util.Enumeration;
importjava.util.Properties;
importjava.util.PropertyResourceBundle;
publicclassPropertiesLoader{
privatejava.util.Propertiesproperties;
/**
*PropertiesLoaderConstructor
*/
publicPropertiesLoader(){
super();
}
/**
*Readconfigurationfile
*Createtimestamp(2003-09-3013:
13:
27)
*@returnjava.util.Properties
*@paramfileNamejava.lang.String
*@exceptionjava.io.FileNotFoundException
*/
publicjava.util.PropertiesgetProperties(StringfileName)
throwsjava.io.FileNotFoundException{
if(properties==null){
java.util.PropertyResourceBundleresourceBundle=null;
System.out.print("Readconfigurationfromfile("+fileName+
".properties)......");
resourceBundle=
(PropertyResourceBundle)PropertyResourceBundle.getBundle(fileName);
System.out.println("OK!
");
Enumerationenu=resourceBundle.getKeys();
properties=newProperties();
while(enu.hasMoreElements()){
StringpropertyName=enu.nextElement().toString();
properties.setProperty(propertyName,
resourceBundle.getString(propertyName));
}
}
returnproperties;
}
}
1.工程javaora的公共模块:
PropertiesManager.java的代码如下:
packagemon;
/**
*
Title:
ACCP3.0JavaandOracleGraduationProject
*
Description:
*
Copyright:
Copyright(c)2003JB-Aptech
*
Company:
BeiDaAptech
*@authorDongPing
*@version1.0
*/
importjava.io.FileNotFoundException;
importjava.util.Hashtable;
importjava.util.Properties;
publicclassPropertiesManager{
privatestaticHashtablepropertiesCache;
privatestaticjava.lang.ObjectloaderLock;
static{
loaderLock=newObject();
}
/**
*PropertiesManagerConstructor
*/
publicPropertiesManager(){
super();
}
/**
*Acquireoneconfigurationinformation
*Createtimestamp(2003-09-3011:
00:
10)
*@returnjava.util.Properties
*@parampropertiesFileNamejava.lang.String
*/
publicstaticjava.util.PropertiesgetProperties(StringpropertiesFileName)
throwsjava.io.FileNotFoundException{
if(propertiesCache==null||propertiesCache.get(propertiesFileName)==null)
synchronized(loaderLock){
if(propertiesCache==null
||propertiesCache.get(propertiesFileName)==null){
propertiesCache=newHashtable();
propertiesCache.put(
propertiesFileName,
newPropertiesLoader().getProperties(propertiesFileName));
}
}
return(Properties)propertiesCache.get(propertiesFileName);
}
/**
*Initializeinformation
*Createtimestamp(2003-09-3011:
03:
32)
*/
publicstaticvoidreset(){
propertiesCache=null;
}
}
2.工程javaora的模块:
AbortCommand.java的代码如下:
package.jbaptech.javaoraprj.faqtool;
importjavax.servlet.*;
importjavax.servlet.http.*;
publicclassAbortCommandimplementsCommand{
privateStringnext;
publicAbortCommand(Stringnext){
this.next=next;
}
publicStringexecute(HttpServletRequestreq)
throwsCommandException{
req.setAttribute("faqtool.msg","OperationAborted");
returnnext;
}
}
3.工程javaora的模块:
AddCommand.java的代码如下:
package.jbaptech.javaoraprj.faqtool;
importjavax.servlet.*;
importjavax.servlet.http.*;
publicclassAddCommandimplementsCommand{
privateStringnext;
publicAddCommand(Stringnext){
this.next=next;
}
publicStringexecute(HttpServletRequestreq)
throwsCommandException{
try{
if(CommandToken.isValid(req)){
FaqRepositoryfaqs=FaqRepository.getInstance();
FaqBeanfaq=newFaqBean();
faq.setQuestion(req.getParameter("question"));
faq.setAnswer(req.getParameter("answer"));
faqs.put(faq);
req.setAttribute("faqtool.msg","FAQAddedSuccessfully");
}
else{
req.setAttribute("faqtool.msg","InvalidReloadAttempted");
}
returnnext;
}
catch(FaqRepositoryExceptionfe){
thrownewCommandException("AddCommand:
"+fe.getMessage());
}
}
}
5.工程javaora的模块:
Command.java代码如下:
package.jbaptech.javaoraprj.faqtool;
importjavax.servlet.*;
importjavax.servlet.http.*;
publicinterfaceCommand{
publicStringexecute(HttpServletRequestreq)
throwsCommandException;
}
6.工程javaora的模块:
CommandException.java代码如下:
package.jbaptech.javaoraprj.faqtool;
publicclassCommandExceptionextendsException{
publicCommandException(){
super();
}
publicCommandException(Stringmsg){
super(msg);
}
}
7.工程javaora的模块:
CommandToken.java代码如下:
package.jbaptech.javaoraprj.faqtool;
importjavax.servlet.http.*;
importjava.security.*;
publicclassCommandToken{
publicstaticvoidset(HttpServletRequestreq){
HttpSessionsession=req.getSession(true);
longsystime=System.currentTimeMillis();
byte[]time=newLong(systime).toString().getBytes();
byte[]id=session.getId().getBytes();
try{
MessageDigestmd5=MessageDigest.getInstance("MD5");
md5.update(id);
md5.update(time);
Stringtoken=toHex(md5.digest());
req.setAttribute("token",token);
session.setAttribute("token",token);
}
catch(Exceptione){
System.err.println("UnabletocalculateMD5Digests");
}
}
publicstaticbooleanisValid(HttpServletRequestreq){
HttpSessionsession=req.getSession(true);
StringrequestToken=req.getParameter("token");
StringsessionToken=(String)session.getAttribute("token");
if(requestToken==null||sessionToken==null)
returnfalse;
else
returnrequestToken.equals(sessionToken);
}
privatestaticStringtoHex(byte[]digest){
StringBufferbuf=newStringBuffer();
for(inti=0;i buf.append(Integer.toHexString((int)digest[i]&0x00ff)); returnbuf.toString(); } } 8.工程javaora的配置文件: config.properties代码如下: jdbc.driver=sun.jdbc.odbc.JdbcOdbcDriver jdbc.dbURL=jdbc: odbc: oradsn jdbc.user=accp30 jdbc.password=accp30 9.工程javaora的模块: DeleteCommand.java代码如下: package.jbaptech.javaoraprj.faqtool; importjavax.servlet.*; importjavax.servlet.http.*; publicclassDeleteCommandimplementsCommand{ privateStringnext; publicDeleteCommand(Stringnext){ this.next=next; } publicStringexecute(HttpServletRequestreq) throwsCommandException{ try{ if(CommandToken.isValid(req)){ FaqRepositoryfaqs=FaqRepository.getInstance(); intid=Integer.parseInt(req.getParameter("id")); faqs.removeFaq(id); req.setAttribute("faqtool.msg","FAQDeletedSuccessfully"); } else{ req.setAttribute("faqtool.msg","InvalidReloadAttempted"); } returnnext; } catch(NumberFormatExceptione){ thrownewCommandException("DeleteCommand: invalidID"); } catch(UnknownFaqExceptionu){ thrownewCommandException("DeleteCommand: "+u.getMessage()); } catch(FaqRepositoryExceptionfe){ thrownewCommandException("DeleteCommand: "+fe.getMessage()); } } } 10.工程javaora的模块: FaqAdminServlet.java代码如下: package.jbaptech.javaoraprj.faqtool; importjava.io.*; importjavax.servlet.*; importjavax.servlet.http.*; importjava.util.*; publicclassFaqAdminServletextendsHttpServlet{ privateHashMapcommands; privateStringerror="error.jsp"; privateStringjspdir="/faqtool/"; publicvoidinit(ServletConfigconfig)throwsServletException{ super.init(config); initCommands(); } publicvoidservice(HttpServletRequestreq, HttpServletResponseres) throwsServletException,IOException{ Stringnext; try{ Commandcmd=lookupCommand(req.getParameter("cmd")); next=cmd.execute(req); CommandToken.set(req); } catch(CommandExceptione){ req.setAttribute("javax.servlet.jsp.jspException",e); next=error; } RequestDispatcherrd; rd=getServletContext().getRequestDispatcher(jspdir+next); rd.forward(req,res); } privateCommandlookupCommand(Stringcmd) throwsCommandException{ if(cmd==null) cmd="main-menu"; if(commands.containsKey(cmd.toLowerCase())) return(Command)commands.get(cmd.toLowerCase()); else thrownewCommandException("InvalidCommandIdentifier"); } privatevoidinitCommands(){ commands=newHashMap(); commands.put("main-menu",newNullCommand("menu.jsp")); commands.put("abort",newAbortCommand("menu.jsp")); commands.put("add",newNullCommand("add.jsp")); commands.put("do-add",newAddCommand("menu.jsp")); commands.put("update-menu",newGetAllCommand("upd_menu.jsp")); commands.put("update",newGetCommand("update.jsp")); commands.put("do-update",newUpdateCommand("menu.jsp")); commands.put("delete-menu",newGetAllCommand("del_menu.jsp")); commands.put("delete",newGetCommand("delete.jsp")); commands.put("do-delete",newDeleteCommand("menu.jsp")); } } 11.工程javaora的模块: FaqBean.java代码如下: package.jbaptech.javaoraprj.faqtool; importjava.util.Date; publicclassFaqBean{ privateintid; privateStringquestion; privateStringanswer; privateDatelastModified; publicFaqBean(){ this.id=0; this.question=""; this.answer=""; this.lastModified=newDate(); } publicvoidsetQuestion(Stringquestion){ this.question=question; this.lastModified=newDate(); } publicStringgetQuestion(){ returnthis.question; } publicvoidsetAnswer(Stringanswer){ this.answer=answer; this.lastModified=newDate(); } publicStringgetAnswer(){ returnthis.answer; } publicvoidsetId(intid){ this.id=id; } publicintgetId(){ returnthis.id; } publicDatege
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- FAQs 源代码 清单