毕业设计企业门户网站论文.docx
- 文档编号:4911667
- 上传时间:2022-12-11
- 格式:DOCX
- 页数:35
- 大小:1.06MB
毕业设计企业门户网站论文.docx
《毕业设计企业门户网站论文.docx》由会员分享,可在线阅读,更多相关《毕业设计企业门户网站论文.docx(35页珍藏版)》请在冰豆网上搜索。
毕业设计企业门户网站论文
引言
Internet的全球性发展,对人们的生活、生产方式都产生了深远的影响。
据推算到2006年底,我国网民人数将达到1.8个亿,成为全球最大的互联网市场。
建设企业门户性网站,树立企业的网络形象,成为企业适应信息化时代发展的最佳方式。
企业门户性网站的建设,使企业能够通过网络和客户更好的交流,拉近企业和客户的距离,掌握大量的客户反馈信息,并及时作出企业内部调整方案,以满足客户不断增长的需求。
企业门户性网站的建设和管理水平,直接影响企业的网络形象,拥有一个设计美观、功能全面的门户性网站,已经成为企业网络化建设的一个重要内容。
1系统分析
1.1需求分析
通过相关调查,要求网站具有以下功能:
❑通过前台全面介绍企业的软件产品并提供软件下载。
❑在前台为针对性问题提供解决方案。
❑前台在线解答用户常见问题。
❑提供软件补丁下载的功能。
❑提供用户注册、登录、用户名和密码修改的功能。
❑需提供在线留言簿,方便用户留言。
❑为用户设置论坛模块。
❑通过后台对用户信息进行管理,包括设置用户权限和查询用户信息等功能。
❑在后台可以管理公告信息、新闻信息、论坛头像、友情链接。
❑通过后台对软件类别及前台提供的软件和软件补丁进行管理。
❑通过后台管理问题解决方案、常见问题解答等信息。
❑对用户留言信息进行回复和管理。
1.2可行性分析
企业门户网站满足了企业通过网站前台展示企业软件产品、为用户提供问题解决方案的要求。
通过网站的建立,加强企业与客户之间的沟通,使企业能够及时了解客户的需求,及时帮助客户解决日常工作中遇到的各种问题,更好的服务于客户,从而增进了企业和客户之间的友好业务关系。
2总体设计
2.1项目规划
对于一个企业门户网站来说,通常由两部分组成,一部分是网站前台,用于企业信息展示和与客户进行交流,另一部分是网站后台,用于对网站信息的管理和回复留言。
❑网站前台
前台展示区要求实现:
首页、产品地带、解决方案、技术支持、客户渠道、论坛等模块信息的显示功能。
❑网站后台
后台管理模块要求实现:
用户管理、用户查找、论坛头像管理、公告管理、新闻中心管理、友情链接管理、软件类别管理、软件资源管理、常见问题管理、解决方案管理、留言薄管理、下载工具补丁管理、论坛版块管理、论坛管理等14个功能模块的功能。
2.2系统功能结构图
企业门户网站前台功能结构,如图1所示。
图1企业门户网站前台功能结构图
企业门户网站后台功能结构,如图2所示。
图2企业门户网站后台功能结构图
3系统设计
3.1设计目标
本门户网站是根据企业实际要求进行开发设计的,主要实现如下目标:
❑网页风格符合企业的特点,界面美观大方。
❑能够对公司的产品进行及时的宣传,并为本公司开发的部分或全部软件提供下载功能。
❑针对某行业或某一问题提供相应的解决方案。
❑充分为用户着想,提供细致周到的技术支持。
❑提供为用户快速留言的留言簿,并具有版主回复功能。
❑提供在线论坛及其维护功能。
❑为网站管理员提供方便、快捷的网站维护平台。
❑提供用户精确查找功能。
❑提供本地上传论坛图像功能。
❑提供在线上传下载软件数据包的功能
❑网站运行安全稳定。
3.2开发及运行环境
硬件平台:
❑CPU:
P41.8GHz;
❑内存:
256MB以上。
软件平台:
❑操作系统:
WindowsXP/Windows2000;
❑数据库:
MySQL5.0;
❑开发工具包:
JDKVersion1.4.2;
❑JSP服务器:
Tomcat;
❑浏览器:
IE5.0,推荐使用IE6.0;
❑分辨率:
最佳效果1024*768像素。
3.3数据库设计
本系统数据库采用MySQL数据库,系统数据库名称为mingri。
数据库mingri中包含14张表。
关于数据库中的主要数据表请参见附录B。
4辅助JavaBean的编写
根据系统的需求编写需要的JavaBean。
下面将给出企业门户网站中所需要的部分辅助JavaBean的编写过程。
4.1基本数据库操作的JavaBean的编写
基本数据库操作的JavaBean是一个公共类,通常包括连接数据库的方法getConnection、获取结果集总记录数的方法getRow、删除数据的方法Delete等。
下面将给出编写企业门户网站中的基本数据库操作的JavaBean“Database”的实现过程。
(1)先将“Database”保存到指定的包中,并导入所需的类包,并将其保存到“com.bwm.core”包中,代码如下:
packagecom.bwm.core;
importjava.sql.Connection;
importjava.sql.SQLException;
importjava.sql.DriverManager;
importjava.sql.PreparedStatement;
importjava.sql.ResultSet;
(2)定义Database类,并定义静态变量及构造方法,代码如下:
publicclassDatabase{//定义Database类
privatestaticConnectioncon;//定义静态变量static
privatestaticStringproxool="org.logicalcobwebs.proxool.ProxoolDriver";
privatestaticStringpoolname="proxool.mingri";
publicDatabase(){//构造方法
}
}
(3)创建连接数据库的方法getConnection,该方法返回Connection对象的一个实例。
getConnection方法的代码如下:
publicstaticConnectiongetConnection(){
try{
Class.forName(proxool);//调用Class的forName方法加载数据库驱动程序类
con=DriverManager.getConnection(poolname);//获取Connection对象的引用
}catch(ClassNotFoundExceptione){
System.out.println(e.getMessage());
}catch(SQLExceptione){
System.out.println(e.getMessage());
}
if(con==null){
System.out.println("没有获取到数据库连接");
}
returncon;
}
(4)定义getRow方法获取结果集的总记录数。
由于ResultSet对象没有提供直接获取结果集总行数的方法,所以此处需要定义获取结果集总行数的方法。
getRow方法的代码如下:
publicstaticintgetRow(Stringsql){
inti=0;
PreparedStatementps=null;
ResultSetrs=null;
try{
ps=con.prepareStatement("SELECTCOUNT(*)FROM"+sql,
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
rs=ps.executeQuery();
if(rs.next()){
i=rs.getInt
(1);
}
}catch(SQLExceptione){
System.out.println(e.getMessage());
i=0;
}finally{
System.out.println("SELECTCOUNT(*)FROM"+sql);
try{
rs.close();//关闭ResultSet对象的一个实例
}catch(SQLExceptione){}
try{
ps.close();//关闭PreparedStatement对象的一个实例
}catch(SQLExceptione){}
returni;
}
}
(5)定义删除数据的方法Delete,代码如下:
publicstaticbooleanDelete(Stringsql){
booleanb=false;
Connectioncon=null;
PreparedStatementps=null;
try{
con=Database.getConnection();//调用getConnection方法连接数据库
ps=con.prepareStatement(sql);
if(ps.executeUpdate()>0){
b=true;
}else{
b=false;
}
}catch(SQLExceptione){
b=false;
e.printStackTrace();
}finally{
System.out.println(ps+"Database.Delete()"+sql);
try{
if(ps!
=null){
ps.close();//关闭PreparedStatement对象的一个实例
}
}catch(SQLExceptione){
ps=null;
}
try{
if(con!
=null){
con.close();//关闭Connection对象的一个实例
}
}catch(SQLExceptione){
con=null;
}
}
returnb;
}
4.2字符串处理的JavaBean“StringUtils”的编写
在JSP中经常需要对输入或输出的字符串进行处理,通常将处理该问题的方法统一放置在一个单独的类中。
在本实例中将其保存在StringUtils类中。
StringUtils类的实现方法如下:
(1)定义StringUtils类、导入类中所需的包,并定义对字符串进行GBK编码的方法toChinese,代码如下:
packagecom.bwm.core;
importjava.util.Date;
importjava.text.SimpleDateFormat;
importjava.text.ParseException;
publicclassStringUtils{
//对字符串进行GBK编码
publicstaticStringtoChinese(Stringstrvalue){
try{
if(strvalue==null){
return"";
}else{
strvalue=newString(strvalue.getBytes("ISO8859_1"),"GBK");
returnstrvalue;
}
}catch(Exceptione){
return"";
}
}
}
(2)编写对输入的字符串进行一次编码转换,防止SQL注入的方法StringtoSql,代码如下:
publicstaticStringStringtoSql(Stringstr){
str=nullToString(str,"");
try{
str=str.trim().replace('\'',(char)1);
}catch(Exceptione){
return"";
}
returnstr;
}
(3)编写对字符串进行二次编码转换,防止出库时异常的方法SqltoString,代码如下:
publicstaticStringSqltoString(Stringstr){
str=nullToString(str,"");
try{
str=str.replace((char)1,'\'').trim();
}catch(Exceptione){
return"";
}
returnstr;
}
(4)编写对字符串进行Unicode编码的方法toUnicode,代码如下:
publicstaticStringtoUnicode(Stringstrvalue){
try{
if(strvalue==null){
returnnull;
}else{
strvalue=newString(strvalue.getBytes("GBK"),"ISO8859_1");
returnstrvalue;
}
}catch(Exceptione){
return"";
}
}
(5)编写判断是否为当前时间的方法compareNowTime,代码如下:
publicstaticbooleancompareNowTime(Stringdate){
SimpleDateFormatformat=newSimpleDateFormat("yyyy-MM-dd");
Dated=null;
try{
d=format.parse(date);
}catch(ParseExceptionex){
}
if(System.currentTimeMillis()-259200000 returntrue; } returnfalse; } (6)编写判断用户输入的是否是数字或字母的方法isID,代码如下: publicstaticbooleanisID(Stringstr){ if(str! =null&&str.length()>0){ if(str.charAt(0)<57&&str.charAt(0)>48)returnfalse; for(inti=0;i if(str.charAt(i)<65&&str.charAt(i)>57||str.charAt(i)>90&& str.charAt(i)<97&&str.charAt(i)! =95||str.charAt(i)>122||str.charAt(i)<48){ returnfalse; } } returntrue; } returnfalse; } (7)对输入数据中的HTML字符进行转换的方法escapeHTMLTags,代码如下: publicstaticfinalStringescapeHTMLTags(Stringinput){ if(input==null||input.length()==0){ returninput; } StringBufferbuf=newStringBuffer(input.length()); charch=''; for(inti=0;i ch=input.charAt(i); if(ch=='<'){ buf.append("<"); }elseif(ch=='>'){ buf.append(">"); }else{ buf.append(ch); } } returnbuf.toString(); } (8)编写处理字符串中的空值的方法nullToString,代码如下: publicstaticfinalStringnullToString(Stringv,StringtoV){ if(v==null){ v=toV; } returnv; } (9)编写对SQL语句中输入的空值进行处理的方法SqlToLink,代码如下: publicstaticfinalStringSqlToLink(Stringstr){ str=StringUtils.nullToString(str,""); if("".equals(str)){ str="LIKE'%'"; }else{ str=("LIKE'%"+str+"%'"); } returnstr; } (10)编写将整型值转换为字符串的方法SqlToLink,代码如下: publicstaticfinalStringSqlToLink(inti){ Stringstr=""; try{ str=newInteger(i).toString(); }catch(Exceptione){} if(i==-1){ str=""; } returnStringUtils.SqlToLink(str); } } 4.3字符串处理的JavaBean“ParamUtils”的编写 字符串处理的JavaBean“ParamUtils”主要用于对从JSP页中获取的数据进行规范化处理。 ParamUtils类的实现方法如下: (1)定义ParamUtils类、导入类中所需的包,并定义对传入要读取的表单信息及对读取的表单信息进行处理的方法getParameter,代码如下: packagecom.bwm.core; importjavax.servlet.http.HttpServletRequest; importcom.jspsmart.upload.Request; publicclassParamUtils{ //传入要读取的表单信息 publicstaticStringgetParameter(HttpServletRequestrequest,StringparamName){ returngetParameter(request,paramName,false);//根据参数值的不同,调用同名的方法 } //对表单信息读取后,对于空的信息及没有值的表单设置默认值,返回字符串 publicstaticStringgetParameter(HttpServletRequestrequest,StringparamName,StringdefaultStr){ Stringtemp=request.getParameter(paramName); if(temp! =null){ if(temp.equals("")){ returndefaultStr; }else{ returnnullToString(temp); } }else{ returndefaultStr; } } } (2)编写将从表单中获取的字符串中的HTML标记中的<和>替换为相对应的HTML标记的方法getEscapeHTMLParameter,代码如下: publicstaticStringgetEscapeHTMLParameter(HttpServletRequestrequest,StringparamName){ returnnullToString(StringUtils.escapeHTMLTags(ParamUtils.getParameter( request,paramName,true))); } (3)编写对表单信息读取后,对于空的信息及没有值的表单设置默认值,返回字符串的方法getParameter,代码如下: publicstaticStringgetParameter(HttpServletRequestrequest,StringparamName,booleanemptyStringsOK){ Stringtemp=request.getParameter(paramName); if(temp! =null){ if(temp.equals("")&&! emptyStringsOK){ return""; }else{ returntemp; } }else{ return""; } } (4)编写对于表单中的数字进行合法性验证,对于不合法的输入将该表单元素设置为默认值的方法getIntParameter,代码如下: publicstaticintgetIntParameter(HttpServletRequestrequest,StringparamName,intdefaultNum){ Stringtemp=request.getParameter(paramName); if(temp! =null&&! temp.equals("")){ intnum=defaultNum; try{ num=Integer.parseInt(temp);// }catch(Exceptionignored){} returnnum; }else{ returndefaultNum; } } (5)编写对于表单中的整型数据进行处理的方法getIntParameter,代码如下: publicstaticintgetIntParameter(HttpServletRequestrequest,StringparamName){ returngetIntParameter(request,paramName,0); } (6)编写对于空字符串进行处理的方法nullToString,代码如下: publicstaticStringnullToString(StringoldString){ if(oldString==null){ return""; } returnoldString; } publicstaticStringnullToString(StringoldString,StringdefaultValue){ oldString=nullToString(oldString); if("".equals(oldString
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 企业 门户 网站 论文