




已阅读5页,还剩28页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
企业门户网站学 院专 业班 级学 号姓 名指导教师教师职称年月日摘要【摘要】企业需要更高效能且技术统一的平台,以整合当前的网上业务,同时让本身的系统能够随时便利升级,以支持未来网上业务的发展。建设集多功能(如客户关系管理、网上销售、知识管理、内容管理等)于一身的企业门户网站,成为势在必行的上网策略。本系统的开发恰恰满足了这一要求。论文中详细介绍了系统的需求分析、总体设计及各功能模块的详细设计。【关键词】 门户性网站 企业门户性网站 企业门户网站目录摘要10 引言11 系统分析21.1 需求分析21.2 可行性分析22 总体设计22.1 项目规划22.2 系统功能结构图23 系统设计33.1 设计目标33.2 开发及运行环境43.3 数据库设计44 辅助JavaBean的编写54.1 基本数据库操作的JavaBean的编写54.2 字符串处理的JavaBean“StringUtils”的编写74.3 字符串处理的JavaBean“ParamUtils”的编写104.4 Final常量JavaBean的编写124.5 判断用户身份的JavaBean的编写154.6 输出实用HTML代码的JavaBean的编写155 抽象工厂模式在企业门户网站中的实现175.1 抽象工厂角色的实现175.2 具体工厂角色的实现185.3 抽象产品角色的实现185.4 具体产品角色的实现206 网站主要功能模块设计266.1 网站前台首页设计266.2 产品地带模块设计286.3 留言簿模块设计306.4 论坛模块设计336.5 网站后台首页设计34附录A 参考文献36附录B 数据表37附录C 文件架构图390 引言Internet的全球性发展,对人们的生活、生产方式都产生了深远的影响。据推算到2006年底,我国网民人数将达到1.8个亿,成为全球最大的互联网市场。建设企业门户性网站,树立企业的网络形象,成为企业适应信息化时代发展的最佳方式。企业门户性网站的建设,使企业能够通过网络和客户更好的交流,拉近企业和客户的距离,掌握大量的客户反馈信息,并及时作出企业内部调整方案,以满足客户不断增长的需求。企业门户性网站的建设和管理水平,直接影响企业的网络形象,拥有一个设计美观、功能全面的门户性网站,已经成为企业网络化建设的一个重要内容。1 系统分析1.1 需求分析通过相关调查,要求网站具有以下功能:q 通过前台全面介绍企业的软件产品并提供软件下载。q 在前台为针对性问题提供解决方案。q 前台在线解答用户常见问题。q 提供软件补丁下载的功能。q 提供用户注册、登录、用户名和密码修改的功能。q 需提供在线留言簿,方便用户留言。q 为用户设置论坛模块。q 通过后台对用户信息进行管理,包括设置用户权限和查询用户信息等功能。q 在后台可以管理公告信息、新闻信息、论坛头像、友情链接。q 通过后台对软件类别及前台提供的软件和软件补丁进行管理。q 通过后台管理问题解决方案、常见问题解答等信息。q 对用户留言信息进行回复和管理。1.2 可行性分析企业门户网站满足了企业通过网站前台展示企业软件产品、为用户提供问题解决方案的要求。通过网站的建立,加强企业与客户之间的沟通,使企业能够及时了解客户的需求,及时帮助客户解决日常工作中遇到的各种问题,更好的服务于客户,从而增进了企业和客户之间的友好业务关系。2 总体设计2.1 项目规划对于一个企业门户网站来说,通常由两部分组成,一部分是网站前台,用于企业信息展示和与客户进行交流,另一部分是网站后台,用于对网站信息的管理和回复留言。q 网站前台前台展示区要求实现:首页、产品地带、解决方案、技术支持、客户渠道、论坛等模块信息的显示功能。q 网站后台后台管理模块要求实现:用户管理、用户查找、论坛头像管理、公告管理、新闻中心管理、友情链接管理、软件类别管理、软件资源管理、常见问题管理、解决方案管理、留言薄管理、下载工具补丁管理、论坛版块管理、论坛管理等14个功能模块的功能。2.2 系统功能结构图论坛详细信息产品分类友情链接产品介绍新闻热点网站公告软件下载排行工具补丁下载排行企业门户网站前台首页产品地带解决方案技术支持客户渠道论坛解决方案详细信息常见问题工具下载补丁下载用户注册用户登录用户修改留言薄企业门户网站前台功能结构,如图1所示。图1 企业门户网站前台功能结构图用户管理用户查找论坛头像管理公告管理新闻中心管理软件类别管理友情链接管理软件资源管理解决方案管理常见问题管理留言薄管理工具下载管理论坛管理论坛版块管理企业门户网站后台企业门户网站后台功能结构,如图2所示。图2 企业门户网站后台功能结构图3 系统设计3.1 设计目标本门户网站是根据企业实际要求进行开发设计的,主要实现如下目标:q 网页风格符合企业的特点,界面美观大方。q 能够对公司的产品进行及时的宣传,并为本公司开发的部分或全部软件提供下载功能。q 针对某行业或某一问题提供相应的解决方案。q 充分为用户着想,提供细致周到的技术支持。q 提供为用户快速留言的留言簿,并具有版主回复功能。q 提供在线论坛及其维护功能。q 为网站管理员提供方便、快捷的网站维护平台。q 提供用户精确查找功能。q 提供本地上传论坛图像功能。q 提供在线上传下载软件数据包的功能q 网站运行安全稳定。3.2 开发及运行环境硬件平台:q CPU:P41.8GHz;q 内存:256MB以上。软件平台:q 操作系统:Windows XP/Windows 2000;q 数据库:MySQL 5.0;q 开发工具包:JDK Version1.4.2;q JSP服务器:Tomcat;q 浏览器:IE5.0,推荐使用IE6.0;q 分辨率:最佳效果1024*768像素。3.3 数据库设计本系统数据库采用My SQL数据库,系统数据库名称为mingri。数据库mingri中包含14张表。关于数据库中的主要数据表请参见附录B。4 辅助JavaBean的编写根据系统的需求编写需要的JavaBean。下面将给出企业门户网站中所需要的部分辅助JavaBean的编写过程。4.1 基本数据库操作的JavaBean的编写基本数据库操作的JavaBean是一个公共类,通常包括连接数据库的方法getConnection、获取结果集总记录数的方法getRow、删除数据的方法Delete等。下面将给出编写企业门户网站中的基本数据库操作的JavaBean“Database”的实现过程。(1)先将“Database”保存到指定的包中,并导入所需的类包,并将其保存到“com.bwm.core”包中,代码如下:package com.bwm.core; import java.sql.Connection;import java.sql.SQLException;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;(2)定义Database类,并定义静态变量及构造方法,代码如下:public class Database /定义Database类 private static Connection con; /定义静态变量static private static String proxool = xool.ProxoolDriver; private static String poolname = proxool.mingri; public Database() /构造方法 (3)创建连接数据库的方法getConnection,该方法返回Connection对象的一个实例。getConnection方法的代码如下: public static Connection getConnection() try Class.forName(proxool); /调用Class的forName方法加载数据库驱动程序类 con = DriverManager.getConnection(poolname); /获取Connection对象的引用 catch (ClassNotFoundException e) System.out.println(e.getMessage(); catch (SQLException e) System.out.println(e.getMessage(); if (con = null) System.out.println(没有获取到数据库连接); return con; (4)定义getRow方法获取结果集的总记录数。由于ResultSet对象没有提供直接获取结果集总行数的方法,所以此处需要定义获取结果集总行数的方法。getRow方法的代码如下:public static int getRow(String sql) int i = 0; PreparedStatement ps = null; ResultSet rs = null; try ps = con.prepareStatement(SELECT COUNT(*) FROM + sql, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); rs = ps.executeQuery(); if (rs.next() i = rs.getInt(1); catch (SQLException e) System.out.println(e.getMessage(); i = 0; finally System.out.println(SELECT COUNT(*) FROM + sql); try rs.close(); /关闭ResultSet对象的一个实例 catch (SQLException e) try ps.close(); /关闭PreparedStatement对象的一个实例 catch (SQLException e) return i; (5)定义删除数据的方法Delete,代码如下: public static boolean Delete(String sql) boolean b = false; Connection con = null; PreparedStatement ps = null; try con = Database.getConnection(); /调用getConnection方法连接数据库 ps = con.prepareStatement(sql); if (ps.executeUpdate() 0) b = true; else b = false; catch (SQLException e) b = false; e.printStackTrace(); finally System.out.println(ps + Database.Delete() +sql); try if (ps != null) ps.close(); /关闭PreparedStatement对象的一个实例 catch (SQLException e) ps = null; try if (con != null) con.close(); /关闭Connection对象的一个实例 catch (SQLException e) con = null; return b; 4.2 字符串处理的JavaBean“StringUtils”的编写在JSP中经常需要对输入或输出的字符串进行处理,通常将处理该问题的方法统一放置在一个单独的类中。在本实例中将其保存在StringUtils类中。StringUtils类的实现方法如下:(1)定义StringUtils类、导入类中所需的包,并定义对字符串进行GBK编码的方法toChinese,代码如下:package com.bwm.core;import java.util.Date;import java.text.SimpleDateFormat;import java.text.ParseException;public class StringUtils /对字符串进行GBK编码 public static String toChinese(String strvalue) try if (strvalue = null) return ; else strvalue = new String(strvalue.getBytes(ISO8859_1), GBK); return strvalue; catch (Exception e) return ; (2)编写对输入的字符串进行一次编码转换,防止SQL注入的方法StringtoSql,代码如下:public static String StringtoSql(String str) str = nullToString(str, ); try str = str.trim().replace(, (char) 1); catch (Exception e) return ; return str; (3)编写对字符串进行二次编码转换,防止出库时异常的方法SqltoString,代码如下:public static String SqltoString(String str) str = nullToString(str, ); try str = str.replace( (char) 1, ).trim(); catch (Exception e) return ; return str; (4)编写对字符串进行Unicode编码的方法toUnicode,代码如下: public static String toUnicode(String strvalue) try if (strvalue = null) return null; else strvalue = new String(strvalue.getBytes(GBK), ISO8859_1); return strvalue; catch (Exception e) return ; (5)编写判断是否为当前时间的方法compareNowTime,代码如下: public static boolean compareNowTime(String date) SimpleDateFormat format = new SimpleDateFormat(yyyy-MM-dd); Date d = null; try d = format.parse(date); catch (ParseException ex) if (System.currentTimeMillis() - 259200000 0) if(str.charAt(0)48) return false; for (int i = 0; i str.length(); i+) if (str.charAt(i) 57 | str.charAt(i) 90 & str.charAt(i)122|str.charAt(i) 48 ) return false; return true; return false; (7)对输入数据中的HTML字符进行转换的方法escapeHTMLTags,代码如下: public static final String escapeHTMLTags(String input) if (input = null | input.length() = 0) return input; StringBuffer buf = new StringBuffer(input.length(); char ch = ; for (int i = 0; i input.length(); i+) ch = input.charAt(i); if (ch = ) buf.append(>); else buf.append(ch); return buf.toString(); (8)编写处理字符串中的空值的方法nullToString,代码如下: public static final String nullToString(String v, String toV) if (v = null) v = toV; return v; (9)编写对SQL语句中输入的空值进行处理的方法SqlToLink,代码如下: public static final String SqlToLink(String str) str = StringUtils.nullToString(str, ); if (.equals(str) str = LIKE % ; else str = ( LIKE % + str + % ); return str; (10)编写将整型值转换为字符串的方法SqlToLink,代码如下: public static final String SqlToLink(int i) String str = ; try str = new Integer(i).toString(); catch (Exception e) if (i = -1) str = ; return StringUtils.SqlToLink(str); 4.3 字符串处理的JavaBean“ParamUtils”的编写字符串处理的JavaBean“ParamUtils”主要用于对从JSP页中获取的数据进行规范化处理。ParamUtils类的实现方法如下:(1)定义ParamUtils类、导入类中所需的包,并定义对传入要读取的表单信息及对读取的表单信息进行处理的方法getParameter,代码如下:package com.bwm.core;import javax.servlet.http.HttpServletRequest;import com.jspsmart.upload.Request;public class ParamUtils /传入要读取的表单信息 public static String getParameter(HttpServletRequest request,String paramName) return getParameter(request, paramName, false); /根据参数值的不同,调用同名的方法 /对表单信息读取后,对于空的信息及没有值的表单设置默认值,返回字符串 public static String getParameter(HttpServletRequest request, String paramName, String defaultStr) String temp = request.getParameter(paramName); if (temp != null) if (temp.equals() return defaultStr; else return nullToString(temp); else return defaultStr; (2)编写将从表单中获取的字符串中的HTML标记中的替换为相对应的HTML标记的方法getEscapeHTMLParameter,代码如下: public static String getEscapeHTMLParameter(HttpServletRequest request, String paramName) return nullToString(StringUtils.escapeHTMLTags(ParamUtils.getParameter( request, paramName, true); (3)编写对表单信息读取后,对于空的信息及没有值的表单设置默认值,返回字符串的方法getParameter,代码如下: public static String getParameter(HttpServletRequest request, String paramName, boolean emptyStringsOK) String temp = request.getParameter(paramName); if (temp != null) if (temp.equals() & !emptyStringsOK) return ; else return temp; else return ; (4)编写对于表单中的数字进行合法性验证,对于不合法的输入将该表单元素设置为默认值的方法getIntParameter,代码如下: public static int getIntParameter(HttpServletRequest request, String paramName, int defaultNum) String temp = request.getParameter(paramName); if (temp != null & !temp.equals() int num = defaultNum; try num = Integer.parseInt(temp); / catch (Exception ignored) return num; else return defaultNum; (5)编写对于表单中的整型数据进行处理的方法getIntParameter,代码如下: public static int getIntParameter(HttpServletRequest request, String paramName) return getIntParameter(request, paramName, 0); (6)编写对于空字符串进行处理的方法nullToString,代码如下: public static String nullToString(String oldString) if (oldString = null) return ; return oldString; public static String nullToString(String oldString,String defaultValue) oldString=nullToString(oldString); if(.equals(oldString) return defaultValue; return oldString; (7)编写对request信息进行处理的方法getRequestString,该方法主要调用前面定义的基本方法实现最终目的,代码如下: public static String getRequestString(HttpServletRequest request,String s) s=nullToString(s).trim(); s=ParamUtils.getEscapeHTMLParameter(request, s); s=StringUtils.toChinese(s); s=StringUtils.toUnicode(s); s=StringUtils.StringtoSql(s); return s; public static String getRequestString(Request request, String s) s=nullToString(s).trim(); s=ParamUtils.getEscapeHTMLParameter(request, s); s=StringUtils.toUnicode(s); s=StringUtils.StringtoSql(s); return s; (8)编写对SQL字符串进行处理的方法getSqlString,该方法同样要调用前面定义的基本方法实现最终目的,代码如下: public static String getSqlString(String s) s=StringUtils.SqltoString(s); s=StringUtils.toChinese(s); s=nullToString(s).trim(); return s; (9)编写对request信息中的HTML标记符进行处理的方法getEscapeHTMLParameter,该方法需要调用StringUtils类中的escapeHTMLTags方法实现,代码如下: public static String getEscapeHTMLParameter(Request request, String s) return nullToString(StringUtils.escapeHTMLTags(request.getParameter(s); (10)编写对request信息中的HTML标记符进行处理的方法getIntParameter,代码如下: public static int getIntParameter(Request request, String s) int defaultNum=0; String temp = request.getParameter(s); if (temp != null & !temp.equals() int num = defaultNum; try num = Integer.parseInt(temp); catch (Exception ignored) return num; else return defaultNum; 6 网站主要功能模块设计6.1 网站前台首页设计在企业门户网站的首页中,用户不但可以查看网站的公司信息和新闻信息,而且还可以查看产品信息及工具软件和软件补丁的下载排行。铭宇科技的企业门户网站首页的运行结果如图4所示。12345图4 网站前台首页的运行结果下面以列表形式给出前台页面各部分的说明信息,如表1所示。表1 前台页面说明区域名称说明对应文件1网站导航主要展示网站的旗帜广告和站内导航条top.jsp2左侧文件主要用于显示网站公告、工具软件下载排行、工具补丁下载排行、友情链接等信息left.jsp3热点新闻主要用于显示网站的热点新闻new.jsp4产品介绍主要用于网站的产品信息produce.jsp5版权信息显示网站版权信息bottom.jsp6.2 产品地带模块设计对于一个企业的门户网站宣传自己公司的产品是必不可少了。在铭宇科技门户网站的网站导航条中设置了一个“产品地带”超链接,用户单击“产品地带”超链接的下拉菜单中要查看产品的类别名称即可进入到产品地带页面,在该页面的右侧将显示出该类别的所有产品信息,用户也可以通过左侧的商品分类查看产品信息。产品地带页面的运行结果如图5所示。图5 产品地带模块的页面运行结果(1)显示产品分类列表并为每个分类名称加入超连接,实现按类别查看产品信息。产品分类信息被保存到产品分类表ssort中,显示产品分类列表时只需从产品分类表ssort中获取出全
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年阜阳太和县第二人民医院招聘45人模拟试卷附答案详解(突破训练)
- 2025安徽芜湖市第三城市医疗集团成员单位招聘编外人员15人考前自测高频考点模拟试题及一套完整答案详解
- 后勤的工作总结15篇
- 2025年原研药项目建议书
- 2025年上海市建筑工程学校公开招聘考前自测高频考点模拟试题及答案详解(新)
- 2025甘肃市卫生健康委招聘公益性岗位人员10人模拟试卷完整参考答案详解
- 2025广西北流市山围镇卫生院招聘编外人员模拟试卷及答案详解(名校卷)
- 2025福建福州市仓山区卫健系统招聘编内31人考前自测高频考点模拟试题及答案详解1套
- 2025河南工程学院招聘高层次人才160人考前自测高频考点模拟试题带答案详解
- 2025昆明聂耳交响乐团编外人员招聘(1人)考前自测高频考点模拟试题及答案详解一套
- 人工智能技术及应用习题答案题库
- 坚持人民至上 工会研讨发言
- 杭州师范大学2013年841无机化学考研真题
- 美学原理全套教学课件
- 期末复习(课件)新思维英语四年级上册
- 子宫脱垂试题及答案
- 中国政治思想史复习资料
- 高中音乐鉴赏 第一单元 学会聆听 第一节《音乐要素及音乐语言》
- 20以内加减法口算题3500道直接打印
- 走好群众路线-做好群众工作(黄相怀)课件
- 北斗卫星导航系统(全套课件208P)
评论
0/150
提交评论