﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-枫言枫语-文章分类-Hibernate</title><link>http://www.blogjava.net/zpq/category/24606.html</link><description>——  by 玉澍淋枫</description><language>zh-cn</language><lastBuildDate>Mon, 13 Aug 2007 12:37:28 GMT</lastBuildDate><pubDate>Mon, 13 Aug 2007 12:37:28 GMT</pubDate><ttl>60</ttl><item><title>基于Struts+Hibernate的Web项目权限设计(2)</title><link>http://www.blogjava.net/zpq/articles/134131.html</link><dc:creator>玉澍淋枫</dc:creator><author>玉澍淋枫</author><pubDate>Thu, 02 Aug 2007 16:15:00 GMT</pubDate><guid>http://www.blogjava.net/zpq/articles/134131.html</guid><wfw:comment>http://www.blogjava.net/zpq/comments/134131.html</wfw:comment><comments>http://www.blogjava.net/zpq/articles/134131.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zpq/comments/commentRss/134131.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zpq/services/trackbacks/134131.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 设计好数据的表结构后，使用Middlegen-Hibernate工具很方便的生成hibernate的映射文件（Middlegen-Hibernate工具的使用方法不在这里介绍，可以到网上找找，很多的）：Middlegen-Hibernate启动后的界面如下：&nbsp;生成后的映射文件具体内容如下&nbsp;Labpermission.h...&nbsp;&nbsp;<a href='http://www.blogjava.net/zpq/articles/134131.html'>阅读全文</a><img src ="http://www.blogjava.net/zpq/aggbug/134131.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zpq/" target="_blank">玉澍淋枫</a> 2007-08-03 00:15 <a href="http://www.blogjava.net/zpq/articles/134131.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>基于Struts+Hibernate的Web项目权限设计(1)</title><link>http://www.blogjava.net/zpq/articles/134130.html</link><dc:creator>玉澍淋枫</dc:creator><author>玉澍淋枫</author><pubDate>Thu, 02 Aug 2007 16:13:00 GMT</pubDate><guid>http://www.blogjava.net/zpq/articles/134130.html</guid><wfw:comment>http://www.blogjava.net/zpq/comments/134130.html</wfw:comment><comments>http://www.blogjava.net/zpq/articles/134130.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zpq/comments/commentRss/134130.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zpq/services/trackbacks/134130.html</trackback:ping><description><![CDATA[<span id="ArticleContent1_ArticleContent1_lblContent">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><font size="3"><span style="font-family: 宋体;">在系统的设计和应用中权限管理是不可缺少的一部分。随着系统的越来越复杂，使用系统的用户越来越多，对权限管理的设计和实现也要求越来越灵活。在我做的一个基于</span><span lang="EN-US"><font face="Times New Roman">Struts+hibernate</font></span><span style="font-family: 宋体;">的</span><span lang="EN-US"><font face="Times New Roman">Web</font></span><span style="font-family: 宋体;">应用中就遇到了这个问题。</span></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span style="font-family: 宋体;"><font size="3">在解决这个问题之前，我在网上搜索了相关的资料，有很多前辈提出了很好的解决方案和实现过程。可以参考如下网址的讨论内容：</font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span lang="EN-US"><a href="http://info.tlw.cn/16054.htm"><font face="Times new roman" size="3">http://info.tlw.cn/16054.htm</font></a></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span lang="EN-US"><a href="http://blog.csdn.net/fswan/archive/2004/11/02/164063.aspx"><font face="Times new roman" size="3">http://blog.csdn.net/fswan/archive/2004/11/02/164063.aspx</font></a></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span lang="EN-US"><a href="http://dev.csdn.net/Develop/article/21/21673.shtm"><font face="Times new roman" size="3">http://dev.csdn.net/Develop/article/21/21673.shtm</font></a></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span lang="EN-US"><a href="http://www.jdon.com/jive/article.jsp?forum=46&amp;thread=10122"><font face="Times new roman" size="3">http://www.jdon.com/jive/article.jsp?forum=46&amp;thread=10122</font></a></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span lang="EN-US"><a href="http://tech.ccidnet.com/pub/article/c1077_a74011_p1.html"><font face="Times new roman" size="3">http://tech.ccidnet.com/pub/article/c1077_a74011_p1.html</font></a></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span lang="EN-US">
<p><font face="Times new roman" size="3">&nbsp;</font></p>
</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><font size="3"><span style="font-family: 宋体;">下面简单说明一下我做的项目的架构（这里假设您对</span><span lang="EN-US"><font face="Times New Roman">Struts</font></span><span style="font-family: 宋体;">开发已经有一定的了解）：系统中使用</span><span lang="EN-US"><font face="Times New Roman">**PreAction</font></span><span style="font-family: 宋体;">和</span><span lang="EN-US"><font face="Times New Roman">**ProcessAction</font></span><span style="font-family: 宋体;">类继承了</span><span lang="EN-US"><font face="Times New Roman">struts</font></span><span style="font-family: 宋体;">的</span><span lang="EN-US"><font face="Times New Roman">Action</font></span><span style="font-family: 宋体;">类，作为此系统的基类，所有需要使用</span><span lang="EN-US"><font face="Times New Roman">Action</font></span><span style="font-family: 宋体;">类的地方都从这两个类进行派生，</span><span lang="EN-US"><font face="Times New Roman">**PreAction</font></span><span style="font-family: 宋体;">类用于初始化页面</span><span lang="EN-US"><font face="Times New Roman">,**ProcessAction</font></span><span style="font-family: 宋体;">用于处理页面的请求，而且每个页面都必须由</span><span lang="EN-US"><font face="Times New Roman">**PreAction</font></span><span style="font-family: 宋体;">入，从</span><span lang="EN-US"><font face="Times New Roman">**ProcessAction</font></span><span style="font-family: 宋体;">出，不允许直接访问</span><span lang="EN-US"><font face="Times New Roman">Jsp</font></span><span style="font-family: 宋体;">页面。</span></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span style="font-family: 宋体;"><font size="3">结合我做的项目，我对权限设计进行了如下的划分：</font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><font size="3"><span lang="EN-US"><font face="Times New Roman">1:)</font></span><span style="font-family: 宋体;">权限代码</span></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span style="font-family: 宋体;"><font size="3">在此系统中，我为每个功能点指定一个权限代码，这些功能点是系统可以完成的具体功能，例如页面上的每个链接和按钮它所执行的操作——添加、删除、修改、浏览、查询等功能。功能点和权限代码一一对应。它不同于资源，因为一个功能它可能利用了很多的资源。</font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span lang="EN-US">
<p><font face="Times new roman" size="3">&nbsp;</font></p>
</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><font size="3"><span lang="EN-US"><font face="Times New Roman">2:)</font></span><span style="font-family: 宋体;">角色</span></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span style="font-family: 宋体;"><font size="3">它是权限代码的集合。例如系统管理员的角色，它可以拥有所有的权限。来宾的角色它拥有部分供来宾访问的权限。</font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span style="font-family: 宋体;"><font size="3">角色与角色之间没有继承或依赖的关系，它们是并行的。</font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span lang="EN-US">
<p><font face="Times new roman" size="3">&nbsp;</font></p>
</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><font size="3"><span lang="EN-US"><font face="Times New Roman">3:)</font></span><span style="font-family: 宋体;">用户组</span></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span style="font-family: 宋体;"><font size="3">它是角色的集合，一个用户组至少包含一个角色，同时也可能包含多种角色。例如，领导组可能包含来宾角色、普通用户角色等。用户组之间没有继承或依赖关系。</font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span lang="EN-US">
<p><font face="Times new roman" size="3">&nbsp;</font></p>
</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><font size="3"><span lang="EN-US"><font face="Times New Roman">4</font></span><span style="font-family: 宋体;">）用户</span></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span style="font-family: 宋体;"><font size="3">用户隶属于某个或多个用户组。该用户拥有它隶属的用户组的所有权限，如果它属于多个用户组，那么它包含的权限是用户组权限之和。</font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span lang="EN-US">
<p><font face="Times new roman" size="3">&nbsp;</font></p>
</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span style="font-family: 宋体;"><font size="3">按照上面的概念和原则进行了数据库的表设计：</font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><font size="3"><span lang="EN-US"><font face="Times New Roman">PERMISSION</font></span><span style="font-family: 宋体;">——权限表</span></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><font size="3"><span lang="EN-US"><font face="Times New Roman">ROLE</font></span><span style="font-family: 宋体;">——角色表</span></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><font size="3"><span lang="EN-US"><font face="Times New Roman">ROLEPERMISSION</font></span><span style="font-family: 宋体;">——角色权限对应关系表</span></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><font size="3"><span lang="EN-US"><font face="Times New Roman">GROUP</font></span><span style="font-family: 宋体;">——用户组表</span></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><font size="3"><span lang="EN-US"><font face="Times New Roman">GROUPROLE</font></span><span style="font-family: 宋体;">——组角色对应关系表</span></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><font size="3"><span lang="EN-US"><font face="Times New Roman">USERGROUP</font></span><span style="font-family: 宋体;">——用户组的对应关系表</span></font></p>
<p><span style="font-size: 10.5pt; font-family: 宋体;">注意：用户表不再图中。</span></p>
<p><span style="font-size: 10.5pt; font-family: 宋体;"><img src="c:%5CDocuments%20and%20Settings%5Ckevin%5CMy%20Documents%5CMy%20Pictures%5Cpermission.JPG" alt=""></span></p>
<span style="font-size: 10.5pt; font-family: 宋体;">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt;"><span style="font-family: 宋体;">（未完待续。。。。）</span></p>
</span></span>
<br>
<div style="font-size: 14px; line-height: 25px;"><strong>作者Blog：</strong><a href="http://blog.csdn.net/java_gay/" id="ArticleContent1_ArticleContent1_AuthorBlogLink" target="_blank">http://blog.csdn.net/java_gay/</a></div><img src ="http://www.blogjava.net/zpq/aggbug/134130.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zpq/" target="_blank">玉澍淋枫</a> 2007-08-03 00:13 <a href="http://www.blogjava.net/zpq/articles/134130.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>