网站内容管理系统论文(华北电力大学(北京)硕*敏*感*词*论文图4—2—4:用户、角色、权限关系图)

优采云 发布时间: 2022-01-20 15:08

  网站内容管理系统论文(华北电力大学(北京)硕*敏*感*词*论文图4—2—4:用户、角色、权限关系图)

  华北电力大学(北京)硕士论文 图4-2-4:本系统特有的用户、角色、权限的关系图,它们之间的关系模型如图4-2-5所示: 图4 -2-5:用户、角色、权限关系模型 4.2.2 权限管理设计方案 当用户使用浏览器访问系统时,如果访问是匿名的,则默认读取所有公开信息。如果用户登录,系统将通过用户名和密码识别访问者并返回个性化信息。这里采用常用的密码机制和加密技术。用户信息提交给服务器后,经过服务器的身份认证后,即可确认角色,并分配相应的访问权限。身份认证通过后,可以通过用户表获取系统中授予的角色。根据用户的角色,可以通过角色权限表获取用户对该列的操作权限。呈现给用户的是后台管理系统定制的内容。华北电力大学(北京)硕士论文 4-2-6 会员权限管理图 4.2.3 数据库表设计 为了实现权限管理模块的功能,必须有相应的数据库设计。根据系统的功能设计要求,为每个数据库表设计字段、数据类型、长度以及是否为空等相关信息。设计数据库表时注意规范设计要求,实现数据库表设计的合理化。同时,为了保证数据库的一致性和完整性,需要为数据库表设计相应的关键字、标识、默认等信息。

  下表为会员管理中涉及的几个重要表格,不再列出维护人员管理模块的表结构: 会员基本信息表 4-2-1 角色表 4-2-2 表4-2-2 — 36 — 华北电力大学(北京)硕士论文4.2.4 网站会员管理实现网站会员管理包括网站用户管理、角色自定义、权限部分功能的实现比如分配。l. 网站会员基本信息管理会员可以通过前台注册,也可以由后台维护人员录入,可根据不同需求灵活使用。基本界面如图4-2.8 图4-2-8:会员管理2、 角色基本信息管理 提供系统管理员可以根据具体情况定义系统角色的功能,比如普通的网站可以有高级成员、中级成员、普通成员等不同角色. 角色信息可以任意修改,为不同的系统增加了很大的灵活性。完全不需要修改程序,管理员可以自由定制。图 4-2-9:图 4-2-9 角色管理界面部分,垂直方向会列出栏目维护中的所有栏目,如果有子栏目会出现.... >>,点击进入相应子栏目的权限设置;水平是所有角色的集合,在这个页面上,

  后台维护类似于会员权限管理。————————————————————————————————————————————————————— ———————————— 安全机制,采用维修组管理方式,将维修人员分成多个维修组,维修组能维修的内容就是维修人员能维修的内容。1、维修人员信息管理员可以在此处添加维修人员信息并指定维修级别。主界面如图 4-2-12 所示: 选择维修人员 ID 密码 维修人员姓名 维修人员等级 002002 002 zwhzwh 张卫红 WXITIWXm 王晓明 图 4--2--12:维修人员管理2、 不同级别的维修人员有相应的权限,可以为每个级别的人员分配相应的权限。在本系统中,分为六级,每级对应相应的管理权限,可根据需要灵活定制。权限分配后,维护人员登录后,根据权限只会出现相应级别的维护内容。管理界面如图 4-2-13:设置维护人员级别权限 维护人员权限 图 4-2-13:级别权限管理3、在维护人员组中加入该功能的目的是更好地管理维护人员,在大型网站,后台维护人员可能比较多,直接给人员授予权限太复杂,不容易完成。基于这个考虑,把维护人员分配​​到维护组,直接将权限授予维护组,降低了复杂度。图4-2-14:维护人员分组4、组管理 由于权限分配给组,所以必须先建立相应的维护组。维护组管理界面如下图4-2-15 所示: 维护组ID 维护组名称描述 测试组1 测试共使用1 页,2 条记录。当前为第 1 页,直接进入 1I 图 4-2-15:群组管理5、 而且直接给人员授予权限太复杂,不容易完成。基于这个考虑,把维护人员分配​​到维护组,直接将权限授予维护组,降低了复杂度。图4-2-14:维护人员分组4、组管理 由于权限分配给组,所以必须先建立相应的维护组。维护组管理界面如下图4-2-15 所示: 维护组ID 维护组名称描述 测试组1 测试共使用1 页,2 条记录。当前为第 1 页,直接进入 1I 图 4-2-15:群组管理5、 而且直接给人员授予权限太复杂,不容易完成。基于这个考虑,把维护人员分配​​到维护组,直接将权限授予维护组,降低了复杂度。图4-2-14:维护人员分组4、组管理 由于权限分配给组,所以必须先建立相应的维护组。维护组管理界面如下图4-2-15 所示: 维护组ID 维护组名称描述 测试组1 测试共使用1 页,2 条记录。当前为第 1 页,直接进入 1I 图 4-2-15:群组管理5、 将维护人员分配​​到维护组,直接将权限授予维护组,降低了复杂度。图4-2-14:维护人员分组4、组管理 由于权限分配给组,所以必须先建立相应的维护组。维护组管理界面如下图4-2-15 所示: 维护组ID 维护组名称描述 测试组1 测试共使用1 页,2 条记录。当前为第 1 页,直接进入 1I 图 4-2-15:群组管理5、 将维护人员分配​​到维护组,直接将权限授予维护组,降低了复杂度。图4-2-14:维护人员分组4、组管理 由于权限分配给组,所以必须先建立相应的维护组。维护组管理界面如下图4-2-15 所示: 维护组ID 维护组名称描述 测试组1 测试共使用1 页,2 条记录。当前为第 1 页,直接进入 1I 图 4-2-15:群组管理5、 组管理 既然是给组分配了权限,就必须先建立相应的维护组。维护组管理界面如下图4-2-15 所示: 维护组ID 维护组名称描述 测试组1 测试共使用1 页,2 条记录。当前为第 1 页,直接进入 1I 图 4-2-15:群组管理5、 组管理 既然是给组分配了权限,就必须先建立相应的维护组。维护组管理界面如下图4-2-15 所示: 维护组ID 维护组名称描述 测试组1 测试共使用1 页,2 条记录。当前为第 1 页,直接进入 1I 图 4-2-15:群组管理5、

  1116:组权限管理 4.3 实现的关键技术 4.3.1 数据库优化技术 使用连接池系统 系统中的大量数据是通过数据库系统进行存储和管理的,所以在使用过程中需要系统访问数据库频繁地。在执行数据库操作之前,需要建立与数据库的连接。常规方法是在使用数据库时创建连接,使用后关闭连接。这样,在整个程序运行过程中,每个客户端始终占用一个数据库连接,即使有很多空闲时间没有数据库操作,比如用户输入数据时,仍然如此,导致数据库连接的使用效率低下. 然而,对于内容管理平台等需要频繁访问数据库的系统,频繁的创建和关闭连接会大大降低系统的性能,成为系统的瓶颈。为了有效解决这个问题,我们引入了连接池的概念。连接池是数据访问中的一项重要技术,在某些情况下,它可以大大提高访问数据库的性能。它的核心思想是连接重用。通过建立数据库连接池和一套连接使用、分配和管理策略,可以高效、安全地重用数据库连接,避免频繁建立和关闭数据库连接的开销。连接池封装了JDBC中原有的连接,方便数据库应用程序使用连接,提高开发效率。正是因为有这个封装层的存在,应用本身的处理逻辑和具体的数据库访问逻辑是隔离的。,使应用程序本身的重用成为可能。

  本系统中连接池的类DBConnectionPool提供以下功能: 从连接池中获取(或创建)可用连接。将连接返回到连接池。系统关闭时释放所有资源并关闭所有连接。能够处理无效连接(最初注册为可用的连接,但由于某种原因不再可用,例如超时、通信问题),并将连接池中的连接总数限制为预定值。管理类 DBConnectionManager 用于管理多个连接池对象。它提供以下功能: 跟踪客户端程序对连接池的引用,并确保在最后一个客户端程序结束连接池时安全关闭所有连接。第一步是建立一个静态连接池。所谓静态是指池中的连接是在系统初始化时分配的,不能随意关闭。Java为我们提供了很多容器类,可以很方便的用来构建连接池,比如Vector、Stack等。系统初始化的时候,根据配置创建连接并放入连接池中,使用的连接以后都是从连接池中获取,这样就可以避免任意建立和关闭连接带来的开销(当然我们也没有办法避免Java的Garbage 采集带来的开销)。staticsynchronizedpublicDBConnectionManagergetlnstance0 {if (instance == null) l instance = new DBConnectionManagerO; 客户++;返回实例;

  初始化的具体实现:private void initO{InputStream getClass0. getResourceAsStream("/dbp001.properties"); PropertiesdbProps=newProperties(); 尝试{dbProps。10ad(is);}carch(Exception){System. 呃。println("无法读取属性文件。" + "请确保 dbp001.properties 在 CLASSPATH 指定的路径中"): return; dblog=LoggeLgetInstance()。数据库池日志;加载驱动程序();/、加载并注册所有的JDBC驱动createPoots(dbProps);第三步,获得一个可用(空闲)的连接。如果没有可用连接且现有连接数小于最大连接数,则将创建并返回一个新连接。如果与 _igNN 的原创连接不再有效,将从向量中删除,然后递归调用自己尝试新的可用连接。如果有空闲连接,则将该连接分配给客户端并进行相应处理。主要的处理策略是将连接标记为已分配。如果连接池中没有空闲连接,则在已分配的连接中为客户端寻找合适的连接。此时,连接在多个客户端之间重用。

  当客户端释放数据库连接时,可以根据连接是否被重用进行不同的处理。如果连接没有消费者,则将其放入连接池而不是关闭。可以看出,这种策略保证了数据库连接的有效复用。这里使用了 DBConnectionPool 类。下面是建立连接的过程。publicsynchronized Connectiongetconnec "0n () {Connectioncon = null; if (freeconnections.size ()> 0) {//获取第一个可用连接向量 con = (Connection) freeConnections.firstElement0; freeConnections.removeElementAt (0)@ >; try{if(con.isClosed0)( dblog.109("从连接池中移除无效连接"+name+""); /我递归调用百济,

  同一个连接可以提供的活动Statement数量可达数百个。在节省网络资源的同时,缩短了每个会话周期(建立物理连接是一个耗时的操作)。connectjonPool 允许几个十、几百个State 只占用同一个物理连接,并利用了数据库原有的优势。通过 ConnectionPool 对资源的有效管理,应用程序可以获取的状态总数达到:(并发物理连接数)X(每个连接可以提供的状态数) 连接可以提供 250 个状态同时,那么 ConnectionPool 为应用程序提供的并发状态总数为:200X250 = 50,000。这是一个并发数,很少有系统会超过这个数量级。因此,在实际应用过程中,资源的耗尽与应用的直接管理有关。连接池只是在一定程度上提高了连接数据库资源的性能。关键是如何处理应用程序中的数据库访问。比如可以用PreparedStatement代替state,减少对JDBC驱动的调用:编写高性能SQL语句,使用索引等。华北电力大学(北京)硕士论文使用合适的getter结果集上的方法。从 ResultSet 对象获取数据时,使用与相关列的类型对应的适当版本的 getter 方法,

  处理方法如下:private void getData(Resultsetrs, Vectorvinti)throwsSQLException{ResultSetMetaData rsmd=rs. getMetaData0;Vectorvector=newVector();for(intj=l;j<=rsmd.getColumnCount0;j++){switch(rsmd.getColumnType))}case addElement(newBool​​ean(rs.getBoolean(j))); 休息; 案例类型。BIGINT:向量。addElement(newLong(rs.getLonga))): 休息; 案例类型。字符:向量。addElement(rs.getString(j)); 休息; 案例类型。日期:矢量。addElement(rs.getDate0));break;) 4.3.2 Struts 框架的应用 Struts 提供了一种高度自动化的方式来实现MVC 架构。

  它的结构实现了 MVC 并包括一个控制器 servlet、一组 JSP 页面和应用程序的业务逻辑。控制器打包用户请求并将它们定向到体系结构中的其他对象。响应图 4.3.1 Struts 工作图 1、Clientbrowser(客户端浏览器):来自客户端浏览器的每个 HTTP 请求都会创建一个事件 2、Controller(控制器):控制器从浏览器请求接收数据并决定在哪里发送请求。就 Struts 而言,控制器是由 servlet 实现的命令设计模式。支柱配置。xml 文件来配置控制器。3、业务逻辑:业务逻辑更新模型的状态并帮助控制应用程序的流程。在 Struts 的情况下,这是通过“瘦”的 Action 类完成的 实际业务逻辑的包装器。4、模型状态:模型代表应用程序的状态。业务对象更新应用程序的状态。ActionFormbeans 在会话或请求级别表示模型的状态,而不是在持久级别。JSP 文件使用 Jsp 标记从 ActionFormbean 中读取信息。基于Web的内容管理系统的研究与开发作者:学位授予单位:华北电力大学(北京)引用:Mcms油田门户建设中的技术应用[期刊论文]-石油化工应用2008(< @5)内容管理系统的产生与发展[期刊论文]-农网信息2008(3)

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线