版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 課 程 設(shè) 計(jì)</b></p><p> 課程名稱___操作系統(tǒng)__________</p><p> 題目名稱___多級(jí)文件系統(tǒng)-1_____</p><p> 學(xué)生學(xué)院___計(jì)算機(jī)學(xué)院________</p><p> 專業(yè)班級(jí)__ 10級(jí)網(wǎng)絡(luò)3班______</p>
2、<p> 2013年 7 月 1 日</p><p><b> 目錄</b></p><p> 1.設(shè)計(jì)目的.....................................................................4</p><p> 2.設(shè)計(jì)內(nèi)容.................
3、....................................................4</p><p> 3.運(yùn)行環(huán)境及開(kāi)發(fā)技術(shù)說(shuō)明............................................4</p><p> 4.設(shè)計(jì)步驟.........................................................
4、.............5</p><p> 5.心得體會(huì)......................................................................16</p><p> 6.主要實(shí)現(xiàn)代碼...............................................................16</p>
5、;<p><b> 1.設(shè)計(jì)目的:</b></p><p> 本課程設(shè)計(jì)要求設(shè)計(jì)一個(gè)模擬的多用戶多級(jí)目錄的文件系統(tǒng)。通過(guò)具體的文件存儲(chǔ)空間的管理、文件的物理結(jié)構(gòu)、目錄結(jié)構(gòu)和文件操作的實(shí)現(xiàn),加深對(duì)文件系統(tǒng)內(nèi)部功能和實(shí)現(xiàn)過(guò)程的理解。 </p><p><b> 2.設(shè)計(jì)內(nèi)容:</b></p><p> 首
6、先在內(nèi)存中開(kāi)辟一個(gè)虛擬磁盤(pán)空間作為文件存儲(chǔ)器,在其上實(shí)現(xiàn)一個(gè)多用戶多目錄的文件系統(tǒng)。其中文件物理結(jié)構(gòu)可采用顯式鏈接。另外磁盤(pán)空閑空間的管理選擇位示圖。由于采用位示圖來(lái)管理文件存儲(chǔ)空間,并采用顯式鏈接分配方式,則可以將位示圖合并到FAT中。</p><p> 文件目錄結(jié)構(gòu)采用多用戶多級(jí)目錄結(jié)構(gòu),每個(gè)目錄項(xiàng)包含文件名、物理</p><p> 地址、長(zhǎng)度等信息,還可以通過(guò)目錄項(xiàng)實(shí)現(xiàn)對(duì)文件的讀
7、和寫(xiě)的保護(hù)。</p><p> 另外設(shè)計(jì)一個(gè)的用戶界面,提供以下相關(guān)文件操作:</p><p> (1)具有l(wèi)ogin (用戶登錄);</p><p> ?。?)系統(tǒng)初始化(建文件卷、提供登錄模塊);</p><p> ?。?)文件的創(chuàng)建: create;</p><p> ?。?)文件的打開(kāi):open;</
8、p><p> (5)文件的讀:read;</p><p> ?。?)文件的寫(xiě):write;</p><p> (7)文件關(guān)閉:close;</p><p> ?。?)刪除文件:delete ;</p><p> ?。?)創(chuàng)建目錄(建立子目錄):mkdir;</p><p> (10)改變當(dāng)前目
9、錄:cd;</p><p> (11)列出文件目錄:dir;</p><p> ?。?2)退出:logout。</p><p> 3.運(yùn)行環(huán)境及開(kāi)發(fā)技術(shù)說(shuō)明:</p><p> 1.本課程設(shè)計(jì)是用web的形式模擬多級(jí)用戶多目錄文件系統(tǒng)。本系統(tǒng)用到技術(shù)有jsp+Tomcat+mysql。</p><p> 2.系
10、統(tǒng)運(yùn)行的環(huán)境:配置好java的jre1.5及以上版本,Tomcat6.0版本,mysql5.5版本,eclipse10.0版本。</p><p> 3.運(yùn)行系統(tǒng)說(shuō)明:將項(xiàng)目導(dǎo)入eclipse或者直接把項(xiàng)目文件夾復(fù)制到tomcat的webapp目錄下,打開(kāi)tomcat服務(wù)器,再在瀏覽器地址欄輸入</p><p> 即可進(jìn)入系統(tǒng)的登錄頁(yè)面:</p><p><
11、b> 4.設(shè)計(jì)步驟:</b></p><p><b> (1)需求分析。</b></p><p> 本系統(tǒng)為多用戶多目錄的文件管理系統(tǒng),用戶可以對(duì)文件或是文件目錄進(jìn)行操作。多用戶功能可以滿足不同用戶不同的需求,同時(shí)因增加了管理員登陸和用戶登錄功能使得系統(tǒng)起到了很好的保密作用。</p><p> 文件系統(tǒng)是操作系統(tǒng)中負(fù)責(zé)
12、管理和存取文件信息的機(jī)構(gòu),它具有“按名存取”的功能,已使得用戶能透明的存儲(chǔ)和訪問(wèn)文件。為了是實(shí)現(xiàn)按名存取,文件需要對(duì)文件存儲(chǔ)設(shè)備進(jìn)行合理化的組織,分配;對(duì)存儲(chǔ)設(shè)備上的文件進(jìn)行保護(hù),保密和提供共享的手段。文件系統(tǒng)主要實(shí)現(xiàn)對(duì)具體的文件存取空間的管理、文件的物理結(jié)構(gòu)、目錄結(jié)構(gòu)管理和文件操作。另外文件系統(tǒng)還要提供檢索文件或是文件中記錄的手段,文件系統(tǒng)就是完成上述功能的一組軟件和數(shù)據(jù)結(jié)構(gòu)的集合。</p><p> 而模擬
13、一個(gè)多用戶多級(jí)目錄的文件管理系統(tǒng),要完成對(duì)文件的基本操作,文件的基本操作有文件,文件夾的新建、打開(kāi)、讀取、寫(xiě)入文件、創(chuàng)建更改目錄、修改文件內(nèi)容、刪除、列出目錄內(nèi)容等信息。系統(tǒng)建立了文件目錄樹(shù),存儲(chǔ)文件中的所有文件。對(duì)于用戶名下的文件,用文件目錄樹(shù)的分枝來(lái)存儲(chǔ)。另外由于文件系統(tǒng)提供了安全保密功能,所有模擬文件系統(tǒng)還需要有管理員登陸和創(chuàng)建用戶和用戶登錄,密碼修改等功能。</p><p> 另外,為了方便操作,還需模
14、擬一個(gè)操作界面,方便用戶進(jìn)行操作。</p><p><b> (2)概要設(shè)計(jì):</b></p><p><b> 1).設(shè)計(jì)思想</b></p><p> 文件系統(tǒng)是操作系統(tǒng)中負(fù)責(zé)管理和存取文件信息的機(jī)構(gòu),它具有“按名存取”的功能。文件系統(tǒng)主要實(shí)現(xiàn)對(duì)具體的文件存取空間的管理、文件的物理結(jié)構(gòu)、目錄結(jié)構(gòu)管理和文件操作。&
15、lt;/p><p> 本實(shí)驗(yàn)中的文件系統(tǒng)是多用戶多級(jí)目錄的文件系統(tǒng)。實(shí)驗(yàn)中定義用戶的上限為5個(gè),目錄結(jié)構(gòu)采用多級(jí)目錄結(jié)構(gòu)</p><p> 2).抽象數(shù)據(jù)類型的定義</p><p> //連接數(shù)據(jù)庫(kù)在數(shù)據(jù)類型保存在數(shù)據(jù)庫(kù)中</p><p> /*create database homework;*/</p><p>
16、; use homework;</p><p><b> /*用戶表*/</b></p><p> create table user</p><p><b> (</b></p><p> id int primary key auto_increment,</p><
17、;p> name varchar(100),</p><p> password varchar(150)</p><p><b> );</b></p><p><b> /*目錄表 */</b></p><p> create table directory</p>
18、<p><b> (</b></p><p> id int primary key auto_increment,</p><p> name varchar(100),</p><p> pathp varchar(100), /* 表途徑*/</p><p> pdate datetime
19、</p><p><b> );</b></p><p><b> /*文件表*/</b></p><p> create table ufile</p><p><b> (</b></p><p> id int primary key a
20、uto_increment,</p><p> name varchar(100),</p><p> content varchar(100), /*文件內(nèi)容*/</p><p> pdate datetime,</p><p> pathu varchar(100) /* 表途徑*/</p><p>&l
21、t;b> );</b></p><p> create table priority </p><p><b> (</b></p><p> id int primary key auto_increment,</p><p> fileName varchar(100),/*文件名稱*/&
22、lt;/p><p> userName varchar(100),/*用戶名*/</p><p> r int, /*1表示可讀,0表示不可讀 */</p><p> w int, /*1表示可寫(xiě),0表示不可寫(xiě) */ </p><p> exe int /*1表示可執(zhí)行,0表示不可執(zhí)行*/ </p><p>&l
23、t;b> );</b></p><p> /*insert into ufile vaules (null,'a','aa',,now(),'A')*/</p><p> /*初始化目錄表*/</p><p> insert into directory values (null,'r
24、oot','A',now() );</p><p> insert into directory values (null,'root','B',now() );</p><p> insert into directory values (null,'root','C',now() );</
25、p><p> 3).主程序的流程以及各程序模塊之間的層次(調(diào)用)關(guān)系。</p><p> 在系統(tǒng)中設(shè)置了用戶登陸模式。用戶初始化時(shí)不存在,則可在注冊(cè)。注冊(cè)成功后方可進(jìn)行登錄,登錄成功后則可進(jìn)行一系列的操作。如</p><p> 用戶注冊(cè):register.jsp</p><p> 用戶登錄:login.jsp </p>&
26、lt;p> 磁盤(pán)的初始化:art_mana.jsp //建立3個(gè)分區(qū)</p><p> 文件的創(chuàng)建:info_ufile.jsp//建立新文件</p><p> 文件的打開(kāi):file_mana.jsp//打開(kāi)文件</p><p> 文件刪除:delete__file.jsp//刪除文件</p><p> 文件的讀:che
27、ck_file.jsp//查看文件</p><p> 創(chuàng)建目錄(建立子目錄):info_dir.jsp//建立新目錄</p><p> 查看當(dāng)前目錄:file_mana.jsp //顯示目錄</p><p> 刪除目錄:delete_dir.jsp//刪除目錄</p><p> 返回上一級(jí)目錄:main.jsp//向上返回
28、</p><p> 退出: main.jsp //退出功能</p><p> (3)詳細(xì)設(shè)計(jì):實(shí)現(xiàn)概要設(shè)計(jì)中定義的功能;畫(huà)出函數(shù)的調(diào)用關(guān)系圖;畫(huà)出各程序流程圖。</p><p> (4)部分功能模塊流程圖:</p><p><b> 用戶登錄模塊</b></p><p> 用戶首次登錄要
29、注冊(cè),用戶登錄模塊要求用戶輸入賬號(hào)與密碼,當(dāng)輸入正確后進(jìn)入主視圖才能進(jìn)行其他模塊操作,否則提示賬號(hào)密碼錯(cuò)誤并要求用戶重新輸入。用戶包括普通用戶和超級(jí)用戶。超級(jí)用戶可以修改其他用戶的權(quán)限,使他們可以修改其他用戶創(chuàng)建的文件。</p><p><b> yes</b></p><p><b> no</b></p><p>
30、 Yes no</p><p><b> no</b></p><p> B.修改文件功能結(jié)構(gòu)圖</p><p><b> yes</b></p><p><b> no</b></p><p><b> no&l
31、t;/b></p><p><b> yes</b></p><p> (5)系統(tǒng)測(cè)試:列出所有系統(tǒng)功能的測(cè)試結(jié)果,測(cè)試數(shù)據(jù)應(yīng)該完整、嚴(yán)格,應(yīng)該至少包含需求分析中所列。</p><p> 1)若不是用戶 先注冊(cè) 注冊(cè)如下:</p><p><b> 2)用戶登錄功能:</b><
32、/p><p> 登錄成功后可進(jìn)行用戶的操作:</p><p> 3)系統(tǒng)初始化:及磁盤(pán)的分區(qū)</p><p> 目錄的創(chuàng)建:(創(chuàng)建子目錄)</p><p> 在A盤(pán)下創(chuàng)建目錄home</p><p><b> 結(jié)果如下:</b></p><p><b>
33、5)創(chuàng)建文件</b></p><p> 如在A盤(pán)目錄home中創(chuàng)建文件myfile</p><p><b> 如下</b></p><p> 6)文件的打開(kāi):(查看)</p><p><b> 7)文件的讀取</b></p><p><b>
34、結(jié)果如下</b></p><p> 8)文件的寫(xiě):(修改)</p><p><b> 結(jié)果如下:</b></p><p> 9)文件的刪除(刪除)</p><p> 刪除myfile結(jié)果如下</p><p> 10)改變當(dāng)前目錄(修改)</p><p>
35、; 將home修改為home-lzf</p><p><b> 結(jié)果如下</b></p><p><b> 11)列出目錄</b></p><p> 如B目錄下有目錄和文件</p><p> 12)用戶修改密碼的功能:</p><p><b> 13)用
36、戶退出功能</b></p><p><b> 返回用戶登錄界面</b></p><p> 14)用其他用戶zj登錄修改前面lzf用戶創(chuàng)建的文件myfile2</p><p> 修改myfile2文件</p><p><b> 結(jié)果如下圖:</b></p><p
37、> 用root用戶修改zj對(duì)myfile2的權(quán)限修改,時(shí)他能修改myfile2</p><p><b> 修改權(quán)限</b></p><p> 修改后,再用zj用戶修改lzf用戶創(chuàng)建的文件myfile2</p><p><b> (6)系統(tǒng)文件說(shuō)明</b></p><p> Regis
38、ter.jsp:用戶注冊(cè);login.jsp:用戶登錄;art_mana.jsp:磁盤(pán)初始化; info_dir.jsp建立目錄</p><p> Info_ufile.jsp新建文件,file_mana.jsp打開(kāi)文件,delete_file.jsp刪除文件;check_file.jsp查看文件;main.jsp主頁(yè)面,prioritDdit.jsp修改權(quán)限;priorityEditDeal.jsp修改權(quán)限處
39、理。faithConn.jsp連接錯(cuò)誤頁(yè)面;faithregister.jsp注冊(cè)錯(cuò)誤頁(yè)面。</p><p><b> 5.心得體會(huì)。</b></p><p> 在做課程設(shè)計(jì)的過(guò)程中遇到很多的問(wèn)題,因?yàn)槭怯胘ava web 來(lái)做的,系統(tǒng)在顯示的效果上并不是很好,但是都基本上完成了實(shí)驗(yàn)的要求,如多用戶多目錄的文件系統(tǒng)要求的多用戶登錄,每個(gè)用戶進(jìn)去后都可以創(chuàng)建自己的目
40、錄和文件。但是每個(gè)用戶創(chuàng)建的文件只能是自己修改,除非root用戶修改其他用戶的權(quán)限。</p><p> 在編程此系統(tǒng)時(shí),方發(fā)覺(jué)自己對(duì)文件系統(tǒng)理解得不夠透徹。例如在考慮如何實(shí)現(xiàn)多用戶多目錄時(shí),雖然書(shū)本上樹(shù)行目錄的圖看起來(lái)很清晰,但一編程起來(lái)就好像往二級(jí)目錄思路那樣編程了。</p><p> 通過(guò)這次實(shí)驗(yàn),讓我對(duì)操作系統(tǒng)的多級(jí)用戶多目錄文件系統(tǒng)有了更深的理解,對(duì)文件系統(tǒng)的文件組織形式和存儲(chǔ)
41、方式有了更深的理解。</p><p> 最后通過(guò)用java 編程有加深了對(duì)java知識(shí)點(diǎn)的理解和java web的理解。</p><p> 總之,這次課程設(shè)計(jì)讓自己受益匪淺。</p><p><b> 6.主要實(shí)現(xiàn)代碼。</b></p><p><b> (1)相關(guān)類定義</b></
42、p><p><b> A)連接數(shù)據(jù)庫(kù)類</b></p><p> public class DB {</p><p> public static Connection getConn() {</p><p> Connection conn = null; </p><p><b>
43、; try {</b></p><p> Class.forName("com.mysql.jdbc.Driver");</p><p> conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/homework", "root" , &qu
44、ot;123456");</p><p> } catch (ClassNotFoundException e) {</p><p> e.printStackTrace(); </p><p> } catch (SQLException e) { </p><p> e.printStackTrace(); </
45、p><p><b> }</b></p><p> return conn;</p><p><b> }</b></p><p> public static Statement createStmt(Connection conn) {</p><p> State
46、ment stmt = null;</p><p><b> try {</b></p><p> stmt = conn.createStatement();</p><p> } catch (SQLException e) {</p><p> e.printStackTrace();</p>
47、<p><b> }</b></p><p> return stmt;</p><p><b> }</b></p><p> public static ResultSet executeQuery(Statement stmt, String sql) {</p><p>
48、 ResultSet rs = null;</p><p><b> try {</b></p><p> rs = stmt.executeQuery(sql);</p><p> } catch (SQLException e) {</p><p> e.printStackTrace();</p&g
49、t;<p><b> } </b></p><p> return rs;</p><p><b> }</b></p><p><b> }</b></p><p><b> B)目錄類</b></p><p&
50、gt; public class Directory {</p><p> private int id;</p><p> private String name;</p><p> private String pathp; /* 父節(jié)點(diǎn),表途徑*/</p><p> private Date pdate;</p&g
51、t;<p> public void saveRs(ResultSet rs) {</p><p><b> try {</b></p><p> setId(rs.getInt("id"));</p><p> setName(rs.getString("name"));</
52、p><p> setPathp(rs.getString("pathp"));</p><p> setPdate(rs.getTimestamp("pdate"));</p><p> } catch (SQLException e) {</p><p> e.printStackTrace();
53、</p><p><b> }</b></p><p><b> }</b></p><p><b> C)權(quán)限類</b></p><p> public class Priority {</p><p> private int id;<
54、;/p><p> private String fileName;</p><p> private String userName;</p><p> private int r;</p><p> private int w;</p><p> private int exe;</p><
55、p> public void saveRs(ResultSet rs) {</p><p><b> try {</b></p><p> setId(rs.getInt("id"));</p><p> setFileName(rs.getString("fileName"));</
56、p><p> setUserName(rs.getString("userName"));</p><p> setR(rs.getInt("r"));</p><p> setW(rs.getInt("w"));</p><p> setExe(rs.getInt("
57、exe"));</p><p> } catch (SQLException e) {</p><p> e.printStackTrace();</p><p><b> }</b></p><p><b> }</b></p><p><b>
58、 D)文件類</b></p><p><b> /*文件表*/</b></p><p> public class Ufile {</p><p> private int id;</p><p> private String name;</p><p> private
59、 String content;</p><p> private Date pdate;</p><p> private String pathu ;/*表路徑*/ </p><p> public void saveRs(ResultSet rs) {</p><p><b> try {</b><
60、/p><p> setId(rs.getInt("id"));</p><p> setName(rs.getString("name"));</p><p> setContent(rs.getString("content"));</p><p> setPdate(rs.g
61、etTimestamp("pdate"));</p><p> setPathu(rs.getString("pathu"));</p><p> } catch (SQLException e) {</p><p> e.printStackTrace();</p><p><b>
62、 }</b></p><p><b> }</b></p><p><b> E)用戶文件表</b></p><p> public class User {</p><p> private int id; </p><p> private Stri
63、ng name;</p><p> private String password; </p><p> public void saveRs(ResultSet rs) {</p><p><b> try {</b></p><p> setId(rs.getInt("id"));<
64、/p><p> setName(rs.getString(name));</p><p> setPassword(rs.getString(password));</p><p> } catch (SQLException e) {</p><p> e.printStackTrace();</p><p>&
65、lt;b> }</b></p><p><b> }</b></p><p> ?。?)登錄功能代碼:</p><p><b> <%</b></p><p> boolean success=true;</p><p> request.s
66、etCharacterEncoding("GBK");</p><p> String username = (String)request.getParameter("username");</p><p> System.out.println(username);</p><p> String password
67、=(String)request.getParameter("password");</p><p> System.out.println(password);</p><p> Connection conn = DB.getConn();</p><p> Statement stmt=DB.createStmt(conn);&l
68、t;/p><p> String sql = "select * from user where name='"+ username +"'and password='"+ password +"'";</p><p> System.out.print(sql);</p><p
69、> ResultSet rs = DB.executeQuery(stmt, sql);</p><p> if(!rs.next()){</p><p> success=false;</p><p><b> }</b></p><p> DB.close(rs);</p><p&
70、gt; DB.close(stmt);</p><p> DB.close(conn);</p><p> if(success){</p><p> session.setAttribute("username", username);</p><p> response.sendRedirect("
71、mian.jsp");</p><p><b> }else{</b></p><p> out.print("登錄失敗,請(qǐng)重新登錄");</p><p> response.sendRedirect("faithlogin.jsp");</p><p><b
72、> }</b></p><p><b> %></b></p><p><b> ?。?)注冊(cè)功能代碼</b></p><p><b> <%</b></p><p> String path = request.getContextPat
73、h();</p><p> String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";</p><p><b> %></b></p>
74、<p><b> <%</b></p><p> String username=request.getParameter("username");</p><p> String password=request.getParameter("password");</p><p>
75、; String repassword=request.getParameter("repassword");</p><p> if(username!=null&&password!=null&&repassword.equals(password))</p><p><b> {</b></p>
76、;<p> session.setAttribute("username", username);</p><p> session.setAttribute("password", password); </p><p> response.sendRedirect("check_register.jsp"
77、;); </p><p><b> } </b></p><p><b> %></b></p><p> <script type="text/javascript"></p><p> function check()</p&g
78、t;<p><b> {</b></p><p> if(form.username.value=="")</p><p><b> {</b></p><p> alert("請(qǐng)輸入用戶名!");</p><p> form.user
79、name.focus();</p><p> return false;}</p><p> if(form.password.value==""){</p><p> alert("請(qǐng)輸入密碼!");</p><p> form.password.focus();</p><
80、;p> return false;} </p><p> }</script></p><p><b> ?。?)創(chuàng)建目錄代碼</b></p><p><b> <% </b></p><p> request.setCharacterEncoding("
81、GBK");</p><p> String ppath=(String)session.getAttribute("ppath");</p><p> String action = request.getParameter("action");</p><p> if (action != null &am
82、p;& action.trim().equals("post")) {</p><p> String name = (String)request.getParameter("name");</p><p> System.out.println(name);</p><p> //String ppath =
83、 (String)request.getParameter("ppath");</p><p> //System.out.println(path);</p><p> String tpath=(ppath+'/'+name).trim();</p><p> Connection conn = DB.getConn()
84、;</p><p> boolean autoCommit = conn.getAutoCommit();</p><p> conn.setAutoCommit(false);</p><p> //insert into directory values (null,'root','A',now() );</p>
85、<p> String sql = "insert into directory values (null, ?, ?, now())";</p><p> PreparedStatement pstmt = DB.prepareStmt(conn, sql, Statement.RETURN_GENERATED_KEYS);</p><p> ps
86、tmt.setString(1, name);</p><p> pstmt.setString(2,tpath);</p><p> pstmt.executeUpdate();</p><p> conn.commit();</p><p> conn.setAutoCommit(autoCommit);</p>&
87、lt;p> DB.close(pstmt);</p><p> DB.close(conn);</p><p> response.sendRedirect("art_mana.jsp");</p><p><b> }else{</b></p><p> String pathp =
88、 request.getParameter("pathp");</p><p> System.out.println(pathp);</p><p> session.setAttribute("ppath", pathp);</p><p><b> }</b></p><p
89、><b> %></b></p><p> ?。?)創(chuàng)建文件代碼:</p><p><b> <% </b></p><p> request.setCharacterEncoding("GBK");</p><p> String ppath=(St
90、ring)session.getAttribute("ppath");</p><p> System.out.println(ppath+"路徑2");</p><p> String action = request.getParameter("action");</p><p> if (act
91、ion != null && action.trim().equals("post")) {</p><p> String name = (String)request.getParameter("name");</p><p> System.out.println(name);</p><p> S
92、tring content = (String)request.getParameter("content");</p><p> System.out.println(content);</p><p> String userName =(String)session.getAttribute("username");</p>
93、<p> /*int r = request.getParameter("r");</p><p> System.out.println(r);</p><p> int w = (Integer)request.getParameter("w");</p><p> System.out.println(
94、w);</p><p> int exe = (Integer)request.getParameter("exe");</p><p> System.out.println(exe);</p><p> //String ppath = (String)request.getParameter("ppath");&l
95、t;/p><p> //System.out.println(path);*/</p><p> Connection conn = DB.getConn();</p><p> boolean autoCommit = conn.getAutoCommit();</p><p> conn.setAutoCommit(false);&l
96、t;/p><p> /*insert into ufile vaules (null,'a','aa','A',now(),1,1,1)*/</p><p> String sql = "insert into ufile values (null, ?, ? , now(),?)";</p><p&g
97、t; String prioritySql = "insert into priority values (null,?,?,1,1,1)";</p><p> PreparedStatement pstmt = DB.prepareStmt(conn, sql, Statement.RETURN_GENERATED_KEYS);</p><p> Prepare
98、dStatement p2stmt = DB.prepareStmt(conn, prioritySql, Statement.RETURN_GENERATED_KEYS);</p><p> pstmt.setString(1,name);</p><p> pstmt.setString(2, content);</p><p> pstmt.setStr
99、ing(3, ppath);</p><p> pstmt.executeUpdate();</p><p><b> //加入權(quán)限表</b></p><p> p2stmt.setString(1,name);</p><p> p2stmt.setString(2,userName);</p>
100、<p> p2stmt.executeUpdate();</p><p> conn.commit();</p><p> conn.setAutoCommit(autoCommit);</p><p> DB.close(pstmt);</p><p> DB.close(conn);</p><p&
101、gt; response.sendRedirect("art_mana.jsp");</p><p><b> }else{</b></p><p> String pathp = (String)request.getParameter("pathp");</p><p> System.out
102、.println(pathp+"途徑1");</p><p> session.setAttribute("ppath", pathp);</p><p><b> }</b></p><p><b> %></b></p><p><b&g
103、t; (6)編輯文件代碼</b></p><p><b> <%</b></p><p> String name=null;</p><p> String content=null;</p><p> String pathu=null;</p><p> req
104、uest.setCharacterEncoding("GBK");</p><p> int id = Integer.parseInt(request.getParameter("id"));</p><p> System.out.print(id+"3333333");</p><p> Con
105、nection conn = DB.getConn();</p><p> Statement stmt=DB.createStmt(conn);</p><p> String sql = "select * from ufile where id='"+ id +"'";</p><p> Syste
106、m.out.print(sql);</p><p> ResultSet rs = DB.executeQuery(stmt, sql);</p><p> if(rs.next()){</p><p> name=rs.getString("name");</p><p> content=rs.getStrin
107、g("content");</p><p> pathu=rs.getString("pathu");</p><p> System.out.print(name);</p><p> System.out.print(content);</p><p><b> }</b&g
108、t;</p><p> DB.close(rs);</p><p> DB.close(stmt);</p><p> DB.close(conn);</p><p><b> %></b></p><p><b> (7)修改權(quán)限代碼</b></p&g
109、t;<p> <%request.setCharacterEncoding("GBK");</p><p> String filename=(String)request.getParameter("filename");</p><p> String username=(String)request.getParam
110、eter("username");</p><p> int r = 0;</p><p> int w = 0;</p><p> int exe =0;</p><p> PrintWriter pout = response.getWriter();</p><p> Conne
111、ction cconn = DB.getConn();</p><p> Statement cstmt=DB.createStmt(cconn);</p><p> String csql = "select * from priority where filename='"+ filename +"'" +" and
112、 username='"+ username +"'";</p><p> ResultSet crs = DB.executeQuery(cstmt, csql);</p><p> if(crs.next()){</p><p> filename=crs.getString("filename&qu
113、ot;);</p><p> username=crs.getString("username");</p><p> r = crs.getInt("r");</p><p> w = crs.getInt("w");</p><p> exe = crs.getInt(&
114、quot;exe");</p><p><b> }</b></p><p><b> %></b></p><p><b> <html></b></p><p><b> <body></b></p
115、><p> page of priority edit ...</p><p> <form action="priorityEditDeal.jsp" method="post" ></p><p> <input type="hidden" name="id"
116、/></p><p> <label>文件名:</label><input type="text"name="filename" value=<%=filename%> /><br></p><p> <label>用戶名:</label><input
117、 type="text"name="username" value=<%=username%>/><br></p><p> <label>可  讀:</label><input type="text"name="r" value=<
118、%=r%>/><br></p><p> <label>可  寫(xiě):</label><input type="text"name="w" value=<%=w%>/><br></p><p> <label>可執(zhí)行:&l
119、t;/label><input type="text"name="exe" value=<%=exe%>/><br></p><p> <input type="submit" value="提交" /></p><p><b> <%&
120、lt;/b></p><p> String path = request.getContextPath();</p><p> String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"
121、;/";</p><p><b> %></b></p><p> <%request.setCharacterEncoding("GBK");</p><p> String filename=(String)request.getParameter("filename")
122、;</p><p> String username=(String)request.getParameter("username");</p><p> int r = Integer.parseInt(request.getParameter("r"));</p><p> int w = Integer.pars
123、eInt(request.getParameter("w"));</p><p> int exe =Integer.parseInt(request.getParameter("exe"));</p><p> System.out.println(filename+"#"+username+"#"+
124、r+"#"+w+"#"+exe);</p><p> PrintWriter pout = response.getWriter();</p><p> Connection cconn = DB.getConn();</p><p> Statement cstmt=DB.createStmt(cconn);<
125、/p><p> String csql = "select * from priority where filename='"+ filename +"'" +" and username='"+ username +"'";</p><p> ResultSet crs = D
126、B.executeQuery(cstmt, csql);</p><p> if(!crs.next()){ </p><p> System.out.println("!crs.next()");</p><p> Connection conn = DB.getConn();</p><p> boolean
127、autoCommit = conn.getAutoCommit();</p><p> conn.setAutoCommit(false);</p><p> String sql = "insert into priority values (null, ?, ?,?,?,?)";</p><p> PreparedStatement p
128、stmt = DB.prepareStmt(conn, sql, Statement.RETURN_GENERATED_KEYS);</p><p> pstmt.setString(1, filename);</p><p> pstmt.setString(2, username);</p><p> pstmt.setInt(3,r);</p>
129、;<p> pstmt.setInt(4,w);</p><p> pstmt.setInt(5,exe);</p><p> pstmt.executeUpdate();</p><p> conn.commit();</p><p> conn.setAutoCommit(autoCommit);</p>
130、;<p> pout.println("權(quán)限修改成功");</p><p> DB.close(pstmt);</p><p> DB.close(conn); </p><p><b> }</b></p><p> else if(crs.next()){&l
131、t;/p><p> PreparedStatement pstmt2 = DB.prepareStmt(cconn, "update priority set r = ?, w = ? ,exe = ? where filename='"+ filename +"'" +" and username='"+ username +&q
132、uot;'");</p><p> pstmt2.setInt(1, r);</p><p> pstmt2.setInt(2, w);</p><p> pstmt2.setInt(3, exe);</p><p> pstmt2.executeUpdate();</p><p> p
133、out.println("權(quán)限修改成功");</p><p> DB.close(pstmt2);</p><p> DB.close(cstmt);</p><p> DB.close(cconn);</p><p><b> }</b></p><p><b&
134、gt; else{</b></p><p> System.out.println("nimeid ");</p><p> pout.println("權(quán)限修改失敗");</p><p><b> }</b></p><p><b> %>&
135、lt;/b></p><p><b> ?。?)用戶密碼修改</b></p><p><b> <%</b></p><p> request.setCharacterEncoding("GBK");</p><p> String username=(Stri
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 操作系統(tǒng)課程設(shè)計(jì)報(bào)告--多級(jí)文件系統(tǒng)
- 操作系統(tǒng)課程設(shè)計(jì)報(bào)告--多級(jí)文件系統(tǒng)
- 操作系統(tǒng)課程設(shè)計(jì)報(bào)告--多級(jí)文件系統(tǒng).doc
- 操作系統(tǒng)課程設(shè)計(jì)--多用戶多級(jí)目錄文件系統(tǒng)實(shí)現(xiàn)
- 操作系統(tǒng)課程設(shè)計(jì)---多用戶多級(jí)目錄文件系統(tǒng)的實(shí)現(xiàn)
- 操作系統(tǒng)課程設(shè)計(jì)--模擬文件系統(tǒng)
- 操作系統(tǒng)課程設(shè)計(jì)--樹(shù)形目錄文件系統(tǒng)
- 操作系統(tǒng)課程設(shè)計(jì)---多用戶多級(jí)目錄文件系統(tǒng)的實(shí)現(xiàn)
- 操作系統(tǒng)課程設(shè)計(jì)---文件系統(tǒng)的模擬
- 操作系統(tǒng)課程設(shè)計(jì)---模擬文件系統(tǒng)
- 操作系統(tǒng)課程設(shè)計(jì)-模擬文件系統(tǒng)
- 操作系統(tǒng)課程設(shè)計(jì)---多用戶多級(jí)目錄文件系統(tǒng)的實(shí)現(xiàn)
- 操作系統(tǒng)課程設(shè)計(jì)報(bào)告--linux二級(jí)文件系統(tǒng)設(shè)計(jì)
- 操作系統(tǒng)課程設(shè)計(jì)報(bào)告--虛擬文件系統(tǒng)的實(shí)現(xiàn)
- 操作系統(tǒng)課程設(shè)計(jì)二級(jí)文件系統(tǒng)
- 操作系統(tǒng)課程設(shè)計(jì)(文件系統(tǒng)管理)
- 操作系統(tǒng)課程設(shè)計(jì)--簡(jiǎn)單文件系統(tǒng)的實(shí)現(xiàn)
- 操作系統(tǒng)課程設(shè)計(jì)----二級(jí)文件系統(tǒng)
- 操作系統(tǒng)課程設(shè)計(jì)二級(jí)文件系統(tǒng)
- 操作系統(tǒng)課程設(shè)計(jì)簡(jiǎn)單文件系統(tǒng)的實(shí)現(xiàn)
評(píng)論
0/150
提交評(píng)論