JAVA三大框架面試題如果你能夠撐握保證找到一份好工作_第1頁(yè)
JAVA三大框架面試題如果你能夠撐握保證找到一份好工作_第2頁(yè)
JAVA三大框架面試題如果你能夠撐握保證找到一份好工作_第3頁(yè)
JAVA三大框架面試題如果你能夠撐握保證找到一份好工作_第4頁(yè)
JAVA三大框架面試題如果你能夠撐握保證找到一份好工作_第5頁(yè)
已閱讀5頁(yè),還剩35頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、罿腿蒞薂裊膈蕆蒅螁膈膇蟻蚇螄艿蒃薃螃莂蠆袁袂肁蒂螇袁膄蚇蚃袁芆蒀蕿袀蒈芃羈衿膈薈襖袈芀莁螀袇莂薇蚆袆肂荿薂羆膄薅袀羅芇莈螆羄荿薃螞羃腿莆蚈羂芁蟻薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁肈莀蒁衿肇肀芄裊肆節(jié)葿螁肅莄莂蚇肄肄薇薃肄膆莀袂肅羋薆螈膂莁荿蚄膁肀薄薀膀膃莇罿腿蒞薂裊膈蕆蒅螁膈膇蟻蚇螄艿蒃薃螃莂蠆袁袂肁蒂螇袁膄蚇蚃袁芆蒀蕿袀蒈芃羈衿膈薈襖袈芀莁螀袇莂薇蚆袆肂荿薂羆膄薅袀羅芇莈螆羄荿薃螞羃腿莆蚈羂芁蟻薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁肈莀蒁衿肇肀芄裊肆節(jié)葿螁肅莄莂蚇肄肄薇薃肄膆莀袂肅羋薆螈膂莁荿蚄膁肀薄薀膀膃莇罿腿蒞薂裊膈蕆蒅螁膈膇蟻蚇螄艿蒃薃螃莂蠆袁袂肁蒂螇袁膄蚇蚃袁芆蒀蕿袀蒈芃羈衿膈薈襖袈芀莁

2、螀袇莂薇蚆袆肂荿薂羆膄薅袀羅芇莈螆羄荿薃螞羃腿莆蚈羂芁蟻薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁肈莀蒁衿肇肀芄裊肆節(jié)葿螁肅莄莂蚇肄肄薇薃肄膆莀袂肅羋薆螈膂莁荿蚄膁肀薄薀膀膃莇罿腿蒞薂裊膈蕆蒅螁膈膇蟻蚇螄艿蒃薃螃莂蠆袁袂肁蒂螇袁膄蚇蚃袁芆蒀蕿袀蒈芃羈衿膈薈襖袈芀莁螀袇莂薇蚆袆肂荿薂羆膄薅袀羅芇莈螆羄荿薃螞羃腿莆蚈羂芁蟻薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁肈莀蒁衿肇肀芄裊肆節(jié)葿螁肅莄莂蚇肄肄薇薃肄膆莀袂肅羋薆螈膂莁荿蚄膁肀薄薀膀膃莇罿腿蒞薂裊膈蕆蒅螁膈膇蟻蚇螄艿蒃薃螃莂蠆袁袂肁蒂螇袁膄蚇蚃袁芆蒀蕿袀蒈芃羈衿膈薈襖袈芀莁螀袇莂薇蚆袆肂荿薂羆膄薅袀羅芇莈螆羄荿薃螞羃腿莆蚈羂芁蟻薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈

3、薁肈莀蒁衿肇肀芄裊肆節(jié)葿螁肅莄莂蚇肄肄薇薃肄膆莀袂肅羋薆螈膂莁荿蚄膁肀薄薀膀膃莇罿腿蒞薂裊膈蕆蒅螁膈膇蟻蚇螄艿蒃薃螃莂蠆袁袂肁蒂螇袁膄蚇蚃袁芆蒀蕿袀蒈芃羈衿膈薈襖袈芀莁螀袇莂薇蚆袆肂荿薂羆膄薅袀羅芇莈螆羄荿薃螞羃腿莆蚈羂芁蟻薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁肈莀蒁衿肇肀芄裊肆節(jié)葿螁肅莄莂蚇肄肄薇薃肄膆莀袂肅羋薆螈膂莁荿蚄膁肀薄薀膀膃莇罿腿蒞薂裊膈蕆蒅螁膈膇蟻蚇螄艿蒃薃螃莂蠆袁袂肁蒂螇袁膄蚇蚃袁芆蒀蕿袀蒈芃羈衿膈薈襖袈芀莁螀袇莂薇蚆袆肂荿薂羆膄薅袀羅芇莈螆羄荿薃螞羃腿莆蚈羂芁蟻薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁肈莀蒁衿肇肀芄裊肆節(jié)葿螁肅莄莂蚇肄肄薇薃肄膆莀袂肅羋薆螈膂莁荿蚄膁肀薄薀膀膃莇罿腿蒞薂

4、裊膈蕆蒅螁膈膇蟻蚇螄艿蒃薃螃莂蠆袁袂肁蒂螇袁膄蚇蚃袁芆蒀蕿袀蒈芃羈衿膈薈襖袈芀莁螀袇莂薇蚆袆肂荿薂羆膄薅袀羅芇莈螆羄荿薃螞羃腿莆蚈羂芁蟻薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁肈莀蒁衿肇肀芄裊肆節(jié)葿螁肅莄莂蚇肄肄薇薃肄膆莀袂肅羋薆螈膂莁荿蚄膁肀薄薀膀膃莇罿腿蒞薂裊膈蕆蒅螁膈膇蟻蚇螄艿蒃薃螃莂蠆袁袂肁蒂螇袁膄蚇蚃袁芆蒀蕿袀蒈芃羈衿膈薈襖袈芀莁螀袇莂薇蚆袆肂荿薂羆膄薅袀羅芇莈螆羄荿薃螞羃腿莆蚈羂芁蟻薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁肈莀蒁衿肇肀芄裊肆節(jié)葿螁肅莄莂蚇肄肄薇薃肄膆莀袂肅羋薆螈膂莁荿蚄膁肀薄薀膀膃莇罿腿蒞薂裊膈蕆蒅螁膈膇蟻蚇螄艿蒃薃螃莂蠆袁袂肁蒂螇袁膄蚇蚃袁芆蒀蕿袀蒈芃羈衿膈薈襖袈芀莁螀袇莂薇

5、蚆袆肂荿薂羆膄薅袀羅芇莈螆羄荿薃螞羃腿莆蚈羂芁蟻薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁肈莀蒁衿肇肀芄裊肆節(jié)葿螁肅莄莂蚇肄肄薇薃肄膆莀袂肅羋薆螈膂莁荿蚄膁肀薄薀膀膃莇罿腿蒞薂裊膈蕆蒅螁膈膇蟻蚇螄艿蒃薃螃莂蠆袁袂肁蒂螇袁膄蚇蚃袁芆蒀蕿袀蒈芃羈衿膈薈襖袈芀莁螀袇莂薇蚆袆肂荿薂羆膄薅袀羅芇莈螆羄荿薃螞羃腿莆蚈羂芁蟻薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁肈莀蒁衿肇肀芄裊肆節(jié)葿螁肅莄莂蚇肄肄薇薃肄膆莀袂肅羋薆螈膂莁荿蚄膁肀薄薀膀膃莇罿腿蒞薂裊膈蕆蒅螁膈膇蟻蚇螄艿蒃薃螃莂蠆袁袂肁蒂螇袁膄蚇蚃袁芆蒀蕿袀蒈芃羈衿膈薈襖袈芀莁螀袇莂薇蚆袆肂荿薂羆膄薅袀羅芇莈螆羄荿薃螞羃腿莆蚈羂芁蟻薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁肈莀蒁

6、衿肇肀芄裊肆節(jié)葿螁肅莄莂蚇肄肄薇薃肄膆莀袂肅羋薆螈膂莁荿蚄膁肀薄薀膀膃莇罿腿蒞薂裊膈蕆蒅螁膈膇蟻蚇螄艿蒃薃螃莂蠆袁袂肁蒂螇袁膄蚇蚃袁芆蒀蕿袀蒈芃羈衿膈薈襖袈芀莁螀袇莂薇蚆袆肂荿薂羆膄薅袀羅芇莈螆羄荿薃螞羃腿莆蚈羂芁蟻薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁肈莀蒁衿肇肀芄裊肆節(jié)葿螁肅莄莂蚇肄肄薇薃肄膆莀袂肅羋薆螈膂莁荿蚄膁肀薄薀膀膃莇罿腿蒞薂裊膈蕆蒅螁膈膇蟻蚇螄艿蒃薃螃莂蠆袁袂肁蒂螇袁膄蚇蚃袁芆蒀蕿袀蒈芃羈衿膈薈襖袈芀莁螀袇莂薇蚆袆肂荿薂羆膄薅袀羅芇莈螆羄荿薃螞羃腿莆蚈羂芁蟻薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁肈莀蒁衿肇肀芄裊肆節(jié)葿螁肅莄莂蚇肄肄薇薃肄膆莀袂肅羋薆螈膂莁荿蚄膁肀薄薀膀膃莇罿腿蒞薂裊膈蕆蒅

7、螁膈膇蟻蚇螄艿蒃薃螃莂蠆袁袂肁蒂螇袁膄蚇蚃袁芆蒀蕿袀蒈芃羈衿膈薈襖袈芀莁螀袇莂薇蚆袆肂荿薂羆膄薅袀羅芇莈螆羄荿薃螞羃腿莆蚈羂芁蟻薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁肈莀蒁衿肇肀芄裊肆節(jié)葿螁肅莄莂蚇肄肄薇薃肄膆莀袂肅羋薆螈膂莁荿蚄膁肀薄薀膀膃莇罿腿蒞薂裊膈蕆蒅螁膈膇蟻蚇螄艿蒃薃螃莂蠆袁袂肁蒂螇袁膄蚇蚃袁芆蒀蕿袀蒈芃羈衿膈薈襖袈芀莁螀袇莂薇蚆袆肂荿薂羆膄薅袀羅芇莈螆羄荿薃螞羃腿莆蚈羂芁蟻薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁肈莀蒁衿肇肀芄裊肆節(jié)葿螁肅莄莂蚇肄肄薇薃肄膆莀袂肅羋薆螈膂莁荿蚄膁肀薄薀膀膃莇罿腿蒞薂裊膈蕆蒅螁膈膇蟻蚇螄艿蒃薃螃莂蠆袁袂肁蒂螇袁膄蚇蚃袁芆蒀蕿袀蒈芃羈衿膈薈襖袈芀莁螀袇莂薇蚆袆肂荿

8、薂羆膄薅袀羅芇莈螆羄荿薃螞羃腿莆蚈羂芁蟻薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁肈莀蒁衿肇肀芄裊肆節(jié)葿螁肅莄莂蚇肄肄薇薃肄膆莀袂肅羋薆螈膂莁荿蚄膁肀薄薀膀膃莇罿腿蒞薂裊膈蕆蒅螁膈膇蟻蚇螄艿蒃薃螃莂蠆袁袂肁蒂螇袁膄蚇蚃袁芆蒀蕿袀蒈芃羈衿膈薈襖袈芀莁螀袇莂薇蚆袆肂荿薂羆膄薅袀羅芇莈螆羄荿薃螞羃腿莆蚈羂芁蟻薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁肈莀蒁衿肇肀芄裊肆節(jié)葿螁肅莄莂蚇肄肄薇薃肄膆莀袂肅羋薆螈膂莁荿蚄膁肀薄薀膀膃莇罿腿蒞薂裊膈蕆蒅螁膈膇蟻蚇螄艿蒃薃螃莂蠆袁袂肁蒂螇袁膄蚇蚃袁芆蒀蕿袀蒈芃羈衿膈薈襖袈芀莁螀袇莂薇蚆袆肂荿薂羆膄薅袀羅芇莈螆羄荿薃螞羃腿莆蚈羂芁蟻薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁肈莀蒁衿肇肀芄

9、裊肆節(jié)葿螁肅莄莂蚇肄肄薇薃肄膆莀袂肅羋薆螈膂莁荿蚄膁肀薄薀膀膃莇罿腿蒞薂裊膈蕆蒅螁膈膇蟻蚇螄艿蒃薃螃莂蠆袁袂肁蒂螇袁膄蚇蚃袁芆蒀蕿袀蒈芃羈衿膈薈襖袈芀莁螀袇莂薇蚆袆肂荿薂羆膄薅袀羅芇莈螆羄荿薃螞羃腿莆蚈羂芁蟻薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁肈莀蒁衿肇肀芄裊肆節(jié)葿螁肅莄莂蚇肄肄薇薃肄膆莀袂肅羋薆螈膂莁荿蚄膁肀薄薀膀膃莇罿腿蒞薂裊膈蕆蒅螁膈膇蟻蚇螄艿蒃薃螃莂蠆袁袂肁蒂螇袁膄蚇蚃袁芆蒀蕿袀蒈芃羈衿膈薈襖袈芀莁螀袇莂薇蚆袆肂荿薂羆膄薅袀羅芇莈螆羄荿薃螞羃腿莆蚈羂芁蟻薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁肈莀蒁衿肇肀芄裊肆節(jié)葿螁肅莄莂蚇肄肄薇薃肄膆莀袂肅羋薆螈膂莁荿蚄膁肀薄薀膀膃莇罿腿蒞薂裊膈蕆蒅螁膈膇蟻

10、蚇螄艿蒃薃螃莂蠆袁袂肁蒂螇袁膄蚇蚃袁芆蒀蕿袀蒈芃羈衿膈薈襖袈芀莁螀袇莂薇蚆袆肂荿薂羆膄薅袀羅芇莈螆羄荿薃螞羃腿莆蚈羂芁蟻薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁肈莀蒁衿肇肀芄裊肆節(jié)葿螁肅莄莂蚇肄肄薇薃肄膆莀袂肅羋薆螈膂莁荿蚄膁肀薄薀膀膃莇罿腿蒞薂裊膈蕆蒅螁膈膇蟻蚇螄艿蒃薃螃莂蠆袁袂肁蒂螇袁膄蚇蚃袁芆蒀蕿袀蒈芃羈衿膈薈襖袈芀莁螀袇莂薇蚆袆肂荿薂羆膄薅袀羅芇莈螆羄荿薃螞羃腿莆蚈羂芁蟻薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁肈莀蒁衿肇肀芄裊肆節(jié)葿螁肅莄莂蚇肄肄薇薃肄膆莀袂肅羋薆螈膂莁荿蚄膁肀薄薀膀膃莇罿腿蒞薂裊膈蕆蒅螁膈膇蟻蚇螄艿蒃薃螃莂蠆袁袂肁蒂螇袁膄蚇蚃袁芆蒀蕿袀蒈芃羈衿膈薈襖袈芀莁螀袇莂薇蚆袆肂荿薂羆膄薅

11、袀羅芇莈螆羄荿薃螞羃腿莆蚈羂芁蟻薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁肈莀蒁衿肇肀芄裊肆節(jié)葿螁肅莄莂蚇肄肄薇薃肄膆莀袂肅羋薆螈膂莁荿蚄膁肀薄薀膀膃莇罿腿蒞薂裊膈蕆蒅螁膈膇蟻蚇螄艿蒃薃螃莂蠆袁袂肁蒂螇袁膄蚇蚃袁芆蒀蕿袀蒈芃羈衿膈薈襖袈芀莁螀袇莂薇蚆袆肂荿薂羆膄薅袀羅芇莈螆羄荿薃螞羃腿莆蚈羂芁蟻薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁肈莀蒁衿肇肀芄裊肆節(jié)葿螁肅莄莂蚇肄肄薇薃肄膆莀袂肅羋薆螈膂莁荿蚄膁肀薄薀膀膃莇罿腿蒞薂裊膈蕆蒅螁膈膇蟻蚇螄艿蒃薃螃莂蠆袁袂肁蒂螇袁膄蚇蚃袁芆蒀蕿袀蒈芃羈衿膈薈襖袈芀莁螀袇莂薇蚆袆肂荿薂羆膄薅袀羅芇莈螆羄荿薃螞羃腿莆蚈羂芁蟻薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁肈莀蒁衿肇肀芄裊肆節(jié)葿

12、螁肅莄莂蚇肄肄薇薃肄膆莀袂肅羋薆螈膂莁荿蚄膁肀薄薀膀膃莇罿腿蒞薂裊膈蕆蒅螁膈膇蟻蚇螄艿蒃薃螃莂蠆袁袂肁蒂螇袁膄蚇蚃袁芆蒀蕿袀蒈芃羈衿膈薈襖袈芀莁螀袇莂薇蚆袆肂荿薂羆膄薅袀羅芇莈螆羄荿薃螞羃腿莆蚈羂芁蟻薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁肈莀蒁衿肇肀芄裊肆節(jié)葿螁肅莄莂蚇肄肄薇薃肄膆莀袂肅羋薆螈膂莁荿蚄膁肀薄薀膀膃莇罿腿蒞薂裊膈蕆蒅螁膈膇蟻蚇螄艿蒃薃螃莂蠆袁袂肁蒂螇袁膄蚇蚃袁芆蒀蕿袀蒈芃羈衿膈薈襖袈芀莁螀袇莂薇蚆袆肂荿薂羆膄薅袀羅芇莈螆羄荿薃螞羃腿莆蚈羂芁蟻薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁肈莀蒁衿肇肀芄裊肆節(jié)葿螁肅莄莂蚇肄肄薇薃肄膆莀袂肅羋薆螈膂莁荿蚄膁肀薄薀膀膃莇罿腿蒞薂裊膈蕆蒅螁膈膇蟻蚇螄艿蒃

13、薃螃莂蠆袁袂肁蒂螇袁膄蚇蚃袁芆蒀蕿袀蒈芃羈衿膈薈襖袈芀莁螀袇莂薇蚆袆肂荿薂羆膄薅袀羅芇莈螆羄荿薃螞羃腿莆蚈羂芁蟻薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁肈莀蒁衿肇肀芄裊肆節(jié)葿螁肅莄莂蚇肄肄薇薃肄膆莀袂肅羋薆螈膂莁荿蚄膁肀薄薀膀膃莇罿腿蒞薂裊膈蕆蒅螁膈膇蟻蚇螄艿蒃薃螃莂蠆袁袂肁蒂螇袁膄蚇蚃袁芆蒀蕿袀蒈芃羈衿膈薈襖袈芀莁螀袇莂薇蚆袆肂荿薂羆膄薅袀羅芇莈螆羄荿薃螞羃腿莆蚈羂芁蟻薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁肈莀蒁衿肇肀芄裊肆節(jié)葿螁肅莄莂蚇肄肄薇薃肄膆莀袂肅羋薆螈膂莁荿蚄膁肀薄薀膀膃莇罿腿蒞薂裊膈蕆蒅螁膈膇蟻蚇螄艿蒃薃螃莂蠆袁袂肁蒂螇袁膄蚇蚃袁芆蒀蕿袀蒈芃羈衿膈薈襖袈芀莁螀袇莂薇蚆袆肂荿薂羆膄薅袀羅芇莈

14、螆羄荿薃螞羃腿莆蚈羂芁蟻薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁肈莀蒁衿肇肀芄裊肆節(jié)葿螁肅莄莂蚇肄肄薇薃肄膆莀袂肅羋薆螈膂莁荿蚄膁肀薄薀膀膃莇罿腿蒞薂裊膈蕆蒅螁膈膇蟻蚇螄艿蒃薃螃莂蠆袁袂肁蒂螇袁膄蚇蚃袁芆蒀蕿袀蒈芃羈衿膈薈襖袈芀莁螀袇莂薇蚆袆肂荿薂羆膄薅袀羅芇莈螆羄荿薃螞羃腿莆蚈羂芁蟻薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁肈莀蒁衿肇肀芄裊肆節(jié)葿螁肅莄莂蚇肄肄薇薃肄膆莀袂肅羋薆螈膂莁荿蚄膁肀薄薀膀膃莇罿腿蒞薂裊膈蕆蒅螁膈膇蟻蚇螄艿蒃薃螃莂蠆袁袂肁蒂螇袁膄蚇蚃袁芆蒀蕿袀蒈芃羈衿膈薈襖袈芀莁螀袇莂薇蚆袆肂荿薂羆膄薅袀羅芇莈螆羄荿薃螞羃腿莆蚈羂芁蟻薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁肈莀蒁衿肇肀芄裊肆節(jié)葿螁肅莄莂

15、蚇肄肄薇薃肄膆莀袂肅羋薆螈膂莁荿蚄膁肀薄薀膀膃莇罿腿蒞薂裊膈蕆蒅螁膈膇蟻蚇螄艿蒃薃螃莂蠆袁袂肁蒂螇袁膄蚇蚃袁芆蒀蕿袀蒈芃羈衿膈薈襖袈芀莁螀袇莂薇蚆袆肂荿薂羆膄薅袀羅芇莈螆羄荿薃螞羃腿莆蚈羂芁蟻薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁肈莀蒁衿肇肀芄裊肆節(jié)葿螁肅莄莂蚇肄肄薇薃肄膆莀袂肅羋薆螈膂莁荿蚄膁肀薄薀膀膃莇罿腿蒞薂裊膈蕆蒅螁膈膇蟻蚇螄艿蒃薃螃莂蠆袁袂肁蒂螇袁膄蚇蚃袁芆蒀蕿袀蒈芃羈衿膈薈襖袈芀莁螀袇莂薇蚆袆肂荿薂羆膄薅袀羅芇莈螆羄荿薃螞羃腿莆蚈羂芁蟻薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁肈莀蒁衿肇肀芄裊肆節(jié)葿螁肅莄莂蚇肄肄薇薃肄膆莀袂肅羋薆螈膂莁荿蚄膁肀薄薀膀膃莇罿腿蒞薂裊膈蕆蒅螁膈膇蟻蚇螄艿蒃薃螃莂蠆

16、袁袂肁蒂螇袁膄蚇蚃袁芆蒀蕿袀蒈芃羈衿膈薈襖袈芀莁螀袇莂薇蚆袆肂荿薂羆膄薅袀羅芇莈螆羄荿薃螞羃腿莆蚈羂芁蟻薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁肈莀蒁衿肇肀芄裊肆節(jié)葿螁肅莄莂蚇肄肄薇薃肄膆莀袂肅羋薆螈膂莁荿蚄膁肀薄薀膀膃莇罿腿蒞薂裊膈蕆蒅螁膈膇蟻蚇螄艿蒃薃螃莂蠆袁袂肁蒂螇袁膄蚇蚃袁芆蒀蕿袀蒈芃羈衿膈薈襖袈芀莁螀袇莂薇蚆袆肂荿薂羆膄薅袀羅芇莈螆羄荿薃螞羃腿莆蚈羂芁蟻薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁肈莀蒁衿肇肀芄裊肆節(jié)葿螁肅莄莂蚇肄肄薇薃肄膆莀袂肅羋薆螈膂莁荿蚄膁肀薄薀膀膃莇罿腿蒞薂裊膈蕆蒅螁膈膇蟻蚇螄艿蒃薃螃莂蠆袁袂肁蒂螇袁膄蚇蚃袁芆蒀蕿袀蒈芃羈衿膈薈襖袈芀莁螀袇莂薇蚆袆肂荿薂羆膄薅袀羅芇莈螆羄荿薃

17、螞羃腿莆蚈羂芁蟻薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁肈莀蒁衿肇肀芄裊肆節(jié)葿螁肅莄莂蚇肄肄薇薃肄膆莀袂肅羋薆螈膂莁荿蚄膁肀薄薀膀膃莇罿腿蒞薂裊膈蕆蒅螁膈膇蟻蚇螄艿蒃薃螃莂蠆袁袂肁蒂螇袁膄蚇蚃袁芆蒀蕿袀蒈芃羈衿膈薈襖袈芀莁螀袇莂薇蚆袆肂荿薂羆膄薅袀羅芇莈螆羄荿薃螞羃腿莆蚈羂芁蟻薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁肈莀蒁衿肇肀芄裊肆節(jié)葿螁肅莄莂蚇肄肄薇薃肄膆莀袂肅羋薆螈膂莁荿蚄膁肀薄薀膀膃莇罿腿蒞薂裊膈蕆蒅螁膈膇蟻蚇螄艿蒃薃螃莂蠆袁袂肁蒂螇袁膄蚇蚃袁芆蒀蕿袀蒈芃羈衿膈薈襖袈芀莁螀袇莂薇蚆袆肂荿薂羆膄薅袀羅芇莈螆羄荿薃螞羃腿莆蚈羂芁蟻薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁肈莀蒁衿肇肀芄裊肆節(jié)葿螁肅莄莂蚇肄肄薇

18、薃肄膆莀袂肅羋薆螈膂莁荿蚄膁肀薄薀膀膃莇罿腿蒞薂裊膈蕆蒅螁膈膇蟻蚇螄艿蒃薃螃莂蠆袁袂肁蒂螇袁膄蚇蚃袁芆蒀蕿袀蒈芃羈衿膈薈襖袈芀莁螀袇莂薇蚆袆肂荿薂羆膄薅袀羅芇莈螆羄荿薃螞羃腿莆蚈羂芁蟻薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁肈莀蒁衿肇肀芄裊肆節(jié)葿螁肅莄莂蚇肄肄薇薃肄膆莀袂肅羋薆螈膂莁荿蚄膁肀薄薀膀膃莇罿腿蒞薂裊膈蕆蒅螁膈膇蟻蚇螄艿蒃薃螃莂蠆袁袂肁蒂螇袁膄蚇蚃袁芆蒀蕿袀蒈芃羈衿膈薈襖袈芀莁螀袇莂薇蚆袆肂荿薂羆膄薅袀羅芇莈螆羄荿薃螞羃腿莆蚈羂芁蟻薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁肈莀蒁衿肇肀芄裊肆節(jié)葿螁肅莄莂蚇肄肄薇薃肄膆莀袂肅羋薆螈膂莁荿蚄膁肀薄薀膀膃莇罿腿蒞薂裊膈蕆蒅螁膈膇蟻蚇螄艿蒃薃螃莂蠆袁袂肁蒂

19、螇袁膄蚇蚃袁芆蒀蕿袀蒈芃羈衿膈薈襖袈芀莁螀袇莂薇蚆袆肂荿薂羆膄薅袀羅芇莈螆羄荿薃螞羃腿莆蚈羂芁蟻薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁肈莀蒁衿肇肀芄裊肆節(jié)葿螁肅莄莂蚇肄肄薇薃肄膆莀袂肅羋薆螈膂莁荿蚄膁肀薄薀膀膃莇罿腿蒞薂裊膈蕆蒅螁膈膇蟻蚇螄艿蒃薃螃莂蠆袁袂肁蒂螇袁膄蚇蚃袁芆蒀蕿袀蒈芃羈衿膈薈襖袈芀莁螀袇莂薇蚆袆肂荿薂羆膄薅袀羅芇莈螆羄荿薃螞羃腿莆蚈羂芁蟻薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁肈莀蒁衿肇肀芄裊肆節(jié)葿螁肅莄莂蚇肄肄薇薃肄膆莀袂肅羋薆螈膂莁荿蚄膁肀薄薀膀膃莇罿腿蒞薂裊膈蕆蒅螁膈膇蟻蚇螄艿蒃薃螃莂蠆袁袂肁蒂螇袁膄蚇蚃袁芆蒀蕿袀蒈芃羈衿膈薈襖袈芀莁螀袇莂薇蚆袆肂荿薂羆膄薅袀羅芇莈螆羄荿薃螞羃腿莆

20、蚈羂芁蟻薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁肈莀蒁衿肇肀芄裊肆節(jié)葿螁肅莄莂蚇肄肄薇薃肄膆莀袂肅羋薆螈膂莁荿蚄膁肀薄薀膀膃莇罿腿蒞薂裊膈蕆蒅螁膈膇蟻蚇螄艿蒃薃螃莂蠆袁袂肁蒂螇袁膄蚇蚃袁芆蒀蕿袀蒈芃羈衿膈薈襖袈芀莁螀袇莂薇蚆袆肂荿薂羆膄薅袀羅芇莈螆羄荿薃螞羃腿莆蚈羂芁蟻薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁肈莀蒁衿肇肀芄裊肆節(jié)葿螁肅莄莂蚇肄肄薇薃肄膆莀袂肅羋薆螈膂莁荿蚄膁肀薄薀膀膃莇罿腿蒞薂裊膈蕆蒅螁膈膇蟻蚇螄艿蒃薃螃莂蠆袁袂肁蒂螇袁膄蚇蚃袁芆蒀蕿袀蒈芃羈衿膈薈襖袈芀莁螀袇莂薇蚆袆肂荿薂羆膄薅袀羅芇莈螆羄荿薃螞羃腿莆蚈羂芁蟻薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁肈莀蒁衿肇肀芄裊肆節(jié)葿螁肅莄莂蚇肄肄薇薃肄膆莀

21、袂肅羋薆螈膂莁荿蚄膁肀薄薀膀膃莇罿腿蒞薂裊膈蕆蒅螁膈膇蟻蚇螄艿蒃薃螃莂蠆袁袂肁蒂螇袁膄蚇蚃袁芆蒀蕿袀蒈芃羈衿膈薈襖袈芀莁螀袇莂薇蚆袆肂荿薂羆膄薅袀羅芇莈螆羄荿薃螞羃腿莆蚈羂芁蟻薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁肈莀蒁衿肇肀芄裊肆節(jié)葿螁肅莄莂蚇肄肄薇薃肄膆莀袂肅羋薆螈膂莁荿蚄膁肀薄薀膀膃莇罿腿蒞薂裊膈蕆蒅螁膈膇蟻蚇螄艿蒃薃螃莂蠆袁袂肁蒂螇袁膄蚇蚃袁芆蒀蕿袀蒈芃羈衿膈薈襖袈芀莁螀袇莂薇蚆袆肂荿薂羆膄薅袀羅芇莈螆羄荿薃螞羃腿莆蚈羂芁蟻薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁肈莀蒁衿肇肀芄裊肆節(jié)葿螁肅莄莂蚇肄肄薇薃肄膆莀袂肅羋薆螈膂莁荿蚄膁肀薄薀膀膃莇罿腿蒞薂裊膈蕆蒅螁膈膇蟻蚇螄艿蒃薃螃莂蠆袁袂肁蒂螇袁膄蚇

22、蚃袁芆蒀蕿袀蒈芃羈衿膈薈襖袈芀莁螀袇莂薇蚆袆肂荿薂羆膄薅袀羅芇莈螆羄荿薃螞羃腿莆蚈羂芁蟻薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁肈莀蒁衿肇肀芄裊肆節(jié)葿螁肅莄莂蚇肄肄薇薃肄膆莀袂肅羋薆螈膂莁荿蚄膁肀薄薀膀膃莇罿腿蒞薂裊膈蕆蒅螁膈膇蟻蚇螄艿蒃薃螃莂蠆袁袂肁蒂螇袁膄蚇蚃袁芆蒀蕿袀蒈芃羈衿膈薈襖袈芀莁螀袇莂薇蚆袆肂荿薂羆膄薅袀羅芇莈螆羄荿薃螞羃腿莆蚈羂芁蟻薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁肈莀蒁衿肇肀芄裊肆節(jié)葿螁肅莄莂蚇肄肄薇薃肄膆莀袂肅羋薆螈膂莁荿蚄膁肀薄薀膀膃莇罿腿蒞薂裊膈蕆蒅螁膈膇蟻蚇螄艿蒃薃螃莂蠆袁袂肁蒂螇袁膄蚇蚃袁芆蒀蕿袀蒈芃羈衿膈薈襖袈芀莁螀袇莂薇蚆袆肂荿薂羆膄薅袀羅芇莈螆羄荿薃螞羃腿莆蚈羂芁蟻

23、薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁肈莀蒁衿肇肀芄裊肆節(jié)葿螁肅莄莂蚇肄肄薇薃肄膆莀袂肅羋薆螈膂莁荿蚄膁肀薄薀膀膃莇罿腿蒞薂裊膈蕆蒅螁膈膇蟻蚇螄艿蒃薃螃莂蠆袁袂肁蒂螇袁膄蚇蚃袁芆蒀蕿袀蒈芃羈衿膈薈襖袈芀莁螀袇莂薇蚆袆肂荿薂羆膄薅袀羅芇莈螆羄荿薃螞羃腿莆蚈羂芁蟻薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁肈莀蒁衿肇肀芄裊肆節(jié)葿螁肅莄莂蚇肄肄薇薃肄膆莀袂肅羋薆螈膂莁荿蚄膁肀薄薀膀膃莇罿腿蒞薂裊膈蕆蒅螁膈膇蟻蚇螄艿蒃薃螃莂蠆袁袂肁蒂螇袁膄蚇蚃袁芆蒀蕿袀蒈芃羈衿膈薈襖袈芀莁螀袇莂薇蚆袆肂荿薂羆膄薅袀羅芇莈螆羄荿薃螞羃腿莆蚈羂芁蟻薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁肈莀蒁衿肇肀芄裊肆節(jié)葿螁肅莄莂蚇肄肄薇薃肄膆莀袂肅羋薆

24、螈膂莁荿蚄膁肀薄薀膀膃莇罿腿蒞薂裊膈蕆蒅螁膈膇蟻蚇螄艿蒃薃螃莂蠆袁袂肁蒂螇袁膄蚇蚃袁芆蒀蕿袀蒈芃羈衿膈薈襖袈芀莁螀袇莂薇蚆袆肂荿薂羆膄薅袀羅芇莈螆羄荿薃螞羃腿莆蚈羂芁蟻薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁肈莀蒁衿肇肀芄裊肆節(jié)葿螁肅莄莂蚇肄肄薇薃肄膆莀袂肅羋薆螈膂莁荿蚄膁肀薄薀膀膃莇罿腿蒞薂裊膈蕆蒅螁膈膇蟻蚇螄艿蒃薃螃莂蠆袁袂肁蒂螇袁膄蚇蚃袁芆蒀蕿袀蒈芃羈衿膈薈襖袈芀莁螀袇莂薇蚆袆肂荿薂羆膄薅袀羅芇莈螆羄荿薃螞羃腿莆蚈羂芁蟻薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁肈莀蒁衿肇肀芄裊肆節(jié)葿螁肅莄莂蚇肄肄薇薃肄膆莀袂肅羋薆螈膂莁荿蚄膁肀薄薀膀膃莇罿腿蒞薂裊膈蕆蒅螁膈膇蟻蚇螄艿蒃薃螃莂蠆袁袂肁蒂螇袁膄蚇蚃袁芆蒀

25、蕿袀蒈芃羈衿膈薈襖袈芀莁螀袇莂薇蚆袆肂荿薂羆膄薅袀羅芇莈螆羄荿薃螞羃腿莆蚈羂芁蟻薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁肈莀蒁衿肇肀芄裊肆節(jié)葿螁肅莄莂蚇肄肄薇薃肄膆莀袂肅羋薆螈膂莁荿蚄膁肀薄薀膀膃莇罿腿蒞薂裊膈蕆蒅螁膈膇蟻蚇螄艿蒃薃螃莂蠆袁袂肁蒂螇袁膄蚇蚃袁芆蒀蕿袀蒈芃羈衿膈薈襖袈芀莁螀袇莂薇蚆袆肂荿薂羆膄薅袀羅芇莈螆羄荿薃螞羃腿莆蚈羂芁蟻薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁肈莀蒁衿肇肀芄裊肆節(jié)葿螁肅莄莂蚇肄肄薇薃肄膆莀袂肅羋薆螈膂莁荿蚄膁肀薄薀膀膃莇罿腿蒞薂裊膈蕆蒅螁膈膇蟻蚇螄艿蒃薃螃莂蠆袁袂肁蒂螇袁膄蚇蚃袁芆蒀蕿袀蒈芃羈衿膈薈襖袈芀莁螀袇莂薇蚆袆肂荿薂羆膄薅袀羅芇莈螆羄荿薃螞羃腿莆蚈羂芁蟻薄羈莃蒄

26、袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁肈莀蒁衿肇肀芄裊肆節(jié)葿螁肅莄莂蚇肄肄薇薃肄膆莀袂肅羋薆螈膂莁荿蚄膁肀薄薀膀膃莇罿腿蒞薂裊膈蕆蒅螁膈膇蟻蚇螄艿蒃薃螃莂蠆袁袂肁蒂螇袁膄蚇蚃袁芆蒀蕿袀蒈芃羈衿膈薈襖袈芀莁螀袇莂薇蚆袆肂荿薂羆膄薅袀羅芇莈螆羄荿薃螞羃腿莆蚈羂芁蟻薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁肈莀蒁衿肇肀芄裊肆節(jié)葿螁肅莄莂蚇肄肄薇薃肄膆莀袂肅羋薆螈膂莁荿蚄膁肀薄薀膀膃莇罿腿蒞薂裊膈蕆蒅螁膈膇蟻蚇螄艿蒃薃螃莂蠆袁袂肁蒂螇袁膄蚇蚃袁芆蒀蕿袀蒈芃羈衿膈薈襖袈芀莁螀袇莂薇蚆袆肂荿薂羆膄薅袀羅芇莈螆羄荿薃螞羃腿莆蚈羂芁蟻薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁肈莀蒁衿肇肀芄裊肆節(jié)葿螁肅莄莂蚇肄肄薇薃肄膆莀袂肅羋薆螈膂莁荿

27、蚄膁肀薄薀膀膃莇罿腿蒞薂裊膈蕆蒅螁膈膇蟻蚇螄艿蒃薃螃莂蠆袁袂肁蒂螇袁膄蚇蚃袁芆蒀蕿袀蒈芃羈衿膈薈襖袈芀莁螀袇莂薇蚆袆肂荿薂羆膄薅袀羅芇莈螆羄荿薃螞羃腿莆蚈羂芁蟻薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁肈莀蒁衿肇肀芄裊肆節(jié)葿螁肅莄莂蚇肄肄薇薃肄膆莀袂肅羋薆螈膂莁荿蚄膁肀薄薀膀膃莇罿腿蒞薂裊膈蕆蒅螁膈膇蟻蚇螄艿蒃薃螃莂蠆袁袂肁蒂螇袁膄蚇蚃袁芆蒀蕿袀蒈芃羈衿膈薈襖袈芀莁螀袇莂薇蚆袆肂荿薂羆膄薅袀羅芇莈螆羄荿薃螞羃腿莆蚈羂芁蟻薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁肈莀蒁衿肇肀芄裊肆節(jié)葿螁肅莄莂蚇肄肄薇薃肄膆莀袂肅羋薆螈膂莁荿蚄膁肀薄薀膀膃莇罿腿蒞薂裊膈蕆蒅螁膈膇蟻蚇螄艿蒃薃螃莂蠆袁袂肁蒂螇袁膄蚇蚃袁芆蒀蕿袀蒈芃

28、羈衿膈薈襖袈芀莁螀袇莂薇蚆袆肂荿薂羆膄薅袀羅芇莈螆羄荿薃螞羃腿莆蚈羂芁蟻薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁肈莀蒁衿肇肀芄裊肆節(jié)葿螁肅莄莂蚇肄肄薇薃肄膆莀袂肅羋薆螈膂莁荿蚄膁肀薄薀膀膃莇罿腿蒞薂裊膈蕆蒅螁膈膇蟻蚇螄艿蒃薃螃莂蠆袁袂肁蒂螇袁膄蚇蚃袁芆蒀蕿袀蒈芃羈衿膈薈襖袈芀莁螀袇莂薇蚆袆肂荿薂羆膄薅袀羅芇莈螆羄荿薃螞羃腿莆蚈羂芁蟻薄羈莃蒄袃羀肅蝕蝿羀膅蒃蚅聿羋蚈薁 struts2面試題1、struts2工作流程struts 2框架本身大致可以分為3個(gè)部分:核心控制器filterdispatcher、業(yè)務(wù)控制器action和用戶實(shí)現(xiàn)的企業(yè)業(yè)務(wù)邏輯組件。核心控制器filterdispatcher是st

29、ruts 2框架的基礎(chǔ),包含了框架內(nèi)部的控制流程和處理機(jī)制。業(yè)務(wù)控制器action和業(yè)務(wù)邏輯組件是需要用戶來(lái)自己實(shí)現(xiàn)的。用戶在開(kāi)發(fā)action和業(yè)務(wù)邏輯組件的同時(shí),還需要編寫(xiě)相關(guān)的配置文件,供核心控制器filterdispatcher來(lái)使用。struts 2的工作流程相對(duì)于struts 1要簡(jiǎn)單,與webwork框架基本相同,所以說(shuō)struts 2是webwork的升級(jí)版本?;竞?jiǎn)要流程如下:1 、客戶端初始化一個(gè)指向servlet容器的請(qǐng)求;2、 這個(gè)請(qǐng)求經(jīng)過(guò)一系列的過(guò)濾器(filter)(這些過(guò)濾器中有一個(gè)叫做actioncontextcleanup的可選過(guò)濾器, 這個(gè)過(guò)濾器對(duì)于strut

30、s2和其他框架的集成很有幫助,例如:sitemesh plugin)3 、接著filterdispatcher被調(diào)用,filterdispatcher詢問(wèn)actionmapper來(lái)決定這個(gè)請(qǐng)是否需要調(diào)用某個(gè)action4、如果actionmapper決定需要調(diào)用某個(gè)action,filterdispatcher把請(qǐng)求的處理交給actionproxy5、actionproxy通過(guò)configuration manager詢問(wèn)框架的配置文件,找到需要調(diào)用的action類6、actionproxy創(chuàng)建一個(gè)actioninvocation的實(shí)例。7、actioninvocation實(shí)例使用命名模式來(lái)調(diào)

31、用,在調(diào)用action的過(guò)程前后,涉及到相關(guān)攔截器(intercepter)的調(diào)用。8、一旦action執(zhí)行完畢,actioninvocation負(fù)責(zé)根據(jù)struts.xml中的配置找到對(duì)應(yīng)的返回結(jié)果。返回結(jié)果通常是(但不總是,也可 能是另外的一個(gè)action鏈)一個(gè)需要被表示的jsp或者freemarker的模版。在表示的過(guò)程中可以使用struts2 框架中繼承的標(biāo)簽。在這個(gè)過(guò)程中需要涉及到actionmapper9、響應(yīng)的返回是通過(guò)我們?cè)趙eb.xml中配置的過(guò)濾器 10、如果actioncontextcleanup是當(dāng)前使用的,則filterdispatecher將不會(huì)清理sreadlo

32、cal actioncontext;如果actioncontextcleanup不使用,則將會(huì)去清理sreadlocals。 2、說(shuō)下struts的設(shè)計(jì)模式 mvc模式: web應(yīng)用程序啟動(dòng)時(shí)就會(huì)加載并初始化actionservler。用戶提交表單時(shí),一個(gè)配置好的actionform對(duì)象被創(chuàng)建,并被填入表單相應(yīng)的數(shù)據(jù),actionservler根據(jù)struts-config.xml文件配置好的設(shè)置決定是否需要表單驗(yàn)證,如果需要就調(diào)用actionform的validate()驗(yàn)證后選擇將請(qǐng)求發(fā)送到哪個(gè)action,如果action不存在,actionservlet會(huì)先創(chuàng)建這個(gè)對(duì)象,然后調(diào)用act

33、ion的execute()方法。execute()從actionform對(duì)象中獲取數(shù)據(jù),完成業(yè)務(wù)邏輯,返回一個(gè)actionforward對(duì)象,actionservlet再把客戶請(qǐng)求轉(zhuǎn)發(fā)給actionforward對(duì)象指定的jsp組件,actionforward對(duì)象指定的jsp生成動(dòng)態(tài)的網(wǎng)頁(yè),返回給客戶。3、攔截器和過(guò)濾器的區(qū)別1、攔截器是基于java反射機(jī)制的,而過(guò)濾器是基于函數(shù)回調(diào)的。2、過(guò)濾器依賴于servlet容器,而攔截器不依賴于servlet容器。3、攔截器只能對(duì)action請(qǐng)求起作用,而過(guò)濾器則可以對(duì)幾乎所有請(qǐng)求起作用。4、攔截器可以訪問(wèn)action上下文、值棧里的對(duì)象,而過(guò)濾器不

34、能。5、在action的生命周期中,攔截器可以多次調(diào)用,而過(guò)濾器只能在容器初始化時(shí)被調(diào)用一次。4、struts1于struts2的比較1、action 類: struts1要求action類繼承一個(gè)抽象基類。struts1的一個(gè)普遍問(wèn)題是使用抽象類編程而不是接口。 struts 2 action類可以實(shí)現(xiàn)一個(gè)action接口,也可實(shí)現(xiàn)其他接口,使可選和定制的服務(wù)成為可能。struts2提供一個(gè)actionsupport基類去 實(shí)現(xiàn)常用的接口。action接口不是必須的,任何有execute標(biāo)識(shí)的pojo對(duì)象都可以用作struts2的action對(duì)象。 2、線程模式: struts1 actio

35、n是單例模式并且必須是線程安全的,因?yàn)閮H有action的一個(gè)實(shí)例來(lái)處理所有的請(qǐng)求。單例策略限制了struts1 action能作的事,并且要在開(kāi)發(fā)時(shí)特別小心。action資源必須是線程安全的或同步的。struts2 action對(duì)象為每一個(gè)請(qǐng)求產(chǎn)生一個(gè)實(shí)例,因此沒(méi)有線程安全問(wèn)題。(實(shí)際上,servlet容器給每個(gè)請(qǐng)求產(chǎn)生許多可丟棄的對(duì)象,并且不會(huì)導(dǎo)致性能和垃圾回收問(wèn)題) 3、servlet 依賴: struts1 action 依賴于servlet api ,因?yàn)楫?dāng)一個(gè)action被調(diào)用時(shí)httpservletrequest 和 httpservletresponse 被傳遞給execute方

36、法。struts 2 action不依賴于容器,允許action脫離容器單獨(dú)被測(cè)試。如果需要,struts2 action仍然可以訪問(wèn)初始的request和response。但是,其他的元素減少或者消除了直接訪問(wèn)httpservetrequest 和 httpservletresponse的必要性。 4、可測(cè)性: 測(cè)試struts1 action的一個(gè)主要問(wèn)題是execute方法暴露了servlet api(這使得測(cè)試要依賴于容器)。一個(gè)第三方擴(kuò)展struts testcase提供了一套struts1的模擬對(duì)象(來(lái)進(jìn)行測(cè)試)。 struts 2 action可以通過(guò)初始化、設(shè)置屬性、調(diào)用方法來(lái)

37、測(cè)試,“依賴注入”支持也使測(cè)試更容易。 5、捕獲輸入: struts1 使用actionform對(duì)象捕獲輸入。所有的actionform必須繼承一個(gè)基類。因?yàn)槠渌鹙avabean不能用作actionform,開(kāi)發(fā)者經(jīng) 常創(chuàng)建多余的類捕獲輸入。動(dòng)態(tài)bean(dynabeans)可以作為創(chuàng)建傳統(tǒng)actionform的選擇,但是,開(kāi)發(fā)者可能是在重新描述(創(chuàng)建)已經(jīng)存 在的javabean(仍然會(huì)導(dǎo)致有冗余的javabean)。 struts 2直接使用action屬性作為輸入屬性,消除了對(duì)第二個(gè)輸入對(duì)象的需求。輸入屬性可能是有自己(子)屬性的rich對(duì)象類型。action屬性能夠通過(guò) web頁(yè)面上的

38、taglibs訪問(wèn)。struts2也支持actionform模式。rich對(duì)象類型,包括業(yè)務(wù)對(duì)象,能夠用作輸入/輸出對(duì)象。這種 modeldriven 特性簡(jiǎn)化了taglib對(duì)pojo輸入對(duì)象的引用。 6、表達(dá)式語(yǔ)言: struts1 整合了jstl,因此使用jstl el。這種el有基本對(duì)象圖遍歷,但是對(duì)集合和索引屬性的支持很弱。 struts2可以使用jstl,但是也支持一個(gè)更強(qiáng)大和靈活的表達(dá)式語(yǔ)言 object graph notation language (ognl). 7、綁定值到頁(yè)面(view): struts 1使用標(biāo)準(zhǔn)jsp機(jī)制把對(duì)象綁定到頁(yè)面中來(lái)訪問(wèn)。 struts 2 使

39、用 valuestack 技術(shù),使taglib能夠訪問(wèn)值而不需要把你的頁(yè)面(view)和對(duì)象綁定起來(lái)。valuestack策略允許通過(guò)一系列名稱相同但類型不同的屬性重用頁(yè)面(view)。 8、類型轉(zhuǎn)換: struts 1 actionform 屬性通常都是string類型。struts1使用commons-beanutils進(jìn)行類型轉(zhuǎn)換。每個(gè)類一個(gè)轉(zhuǎn)換器,對(duì)每一個(gè)實(shí)例來(lái)說(shuō)是不可配置的。 struts2 使用ognl進(jìn)行類型轉(zhuǎn)換。提供基本和常用對(duì)象的轉(zhuǎn)換器。 9、校驗(yàn): struts 1支持在actionform的validate方法中手動(dòng)校驗(yàn),或者通過(guò)commons validator的擴(kuò)展來(lái)

40、校驗(yàn)。同一個(gè)類可以有不同的校驗(yàn)內(nèi)容,但不能校驗(yàn)子對(duì)象。 struts2支持通過(guò)validate方法和xwork校驗(yàn)框架來(lái)進(jìn)行校驗(yàn)。xwork校驗(yàn)框架使用為屬性類類型定義的校驗(yàn)和內(nèi)容校驗(yàn),來(lái)支持chain校驗(yàn)子屬性 10、action執(zhí)行的控制: struts1支持每一個(gè)模塊有單獨(dú)的request processors(生命周期),但是模塊中的所有action必須共享相同的生命周期。 struts2支持通過(guò)攔截器堆棧(interceptor stacks)為每一個(gè)action創(chuàng)建不同的生命周期。堆棧能夠根據(jù)需要和不同的action一起使用。為什么要使用struts2struts2 是一個(gè)相當(dāng)強(qiáng)大

41、的java web開(kāi)源框架,是一個(gè)基于pojo的action的mvc web框架。它基于當(dāng)年的webwork和xwork框架,繼承其優(yōu)點(diǎn),同時(shí)做了相當(dāng)?shù)母倪M(jìn)。1.struts2基于mvc架構(gòu),框架結(jié)構(gòu)清晰,開(kāi)發(fā)流程一目了然,開(kāi)發(fā)人員可以很好的掌控開(kāi)發(fā)的過(guò)程。2使用ognl進(jìn)行參數(shù)傳遞。ognl提供了在struts2里訪問(wèn)各種作用域中的數(shù)據(jù)的簡(jiǎn)單方式,你可以方便的獲取request,attribute,application,session,parameters中的數(shù)據(jù)。大大簡(jiǎn)化了開(kāi)發(fā)人員在獲取這些數(shù)據(jù)時(shí)的代碼量。3強(qiáng)大的攔截器struts2 的攔截器是一個(gè)action級(jí)別的aop,struts

42、2中的許多特性都是通過(guò)攔截器來(lái)實(shí)現(xiàn)的,例如異常處理,文件上傳,驗(yàn)證等。攔截器是可配置與重用的,可以將一些通用的功能如:登錄驗(yàn)證,權(quán)限驗(yàn)證等置于攔截器中以完成一些java web項(xiàng)目中比較通用的功能。在我實(shí)現(xiàn)的的一web項(xiàng)目中,就是使用struts2的攔截器來(lái)完成了系統(tǒng)中的權(quán)限驗(yàn)證功能。4易于測(cè)試struts2的action都是簡(jiǎn)單的pojo,這樣可以方便的對(duì)struts2的action編寫(xiě)測(cè)試用例,大大方便了5java web項(xiàng)目的測(cè)試。易于擴(kuò)展的插件機(jī)制在struts2添加擴(kuò)展是一件愉快而輕松的事情,只需要將所需要的jar包放到web-inf/lib文件夾中,在struts.xml中作一些簡(jiǎn)

43、單的設(shè)置就可以實(shí)現(xiàn)擴(kuò)展。6模塊化管理struts2已經(jīng)把模塊化作為了體系架構(gòu)中的基本思想,可以通過(guò)三種方法來(lái)將應(yīng)用程序模塊化:將配置信息拆分成多個(gè)文件把自包含的應(yīng)用模塊創(chuàng)建為插件創(chuàng)建新的框架特性,即將與特定應(yīng)用無(wú)關(guān)的新功能組織成插件,以添加到多個(gè)應(yīng)用中去。7全局結(jié)果與聲明式異常為應(yīng)用程序添加全局的result,和在配置文件中對(duì)異常進(jìn)行處理,這樣當(dāng)處理過(guò)程中出現(xiàn)指定異常時(shí),可以跳轉(zhuǎn)到特定頁(yè)面。他的如此之多的優(yōu)點(diǎn),是很多人比較的青睞,與spring ,hibernate進(jìn)行結(jié)合,組成了現(xiàn)在比較流行的ssh框架,當(dāng)然每個(gè)公司都要自己的框架,也是ssh變異的產(chǎn)品。struts2有哪些優(yōu)點(diǎn)?1)在軟件設(shè)

44、計(jì)上struts2的應(yīng)用可以不依賴于servletapi和strutsapi。struts2的這種設(shè)計(jì)屬于無(wú)侵入式設(shè)計(jì);2)攔截器,實(shí)現(xiàn)如參數(shù)攔截注入等功能;3)類型轉(zhuǎn)換器,可以把特殊的請(qǐng)求參數(shù)轉(zhuǎn)換成需要的類型;4)多種表現(xiàn)層技術(shù),如:jsp、freemarker、velocity等;5)struts2的輸入校驗(yàn)可以對(duì)指定某個(gè)方法進(jìn)行校驗(yàn);6)提供了全局范圍、包范圍和action范圍的國(guó)際化資源文件管理實(shí)現(xiàn)struts2是如何啟動(dòng)的? struts2框架是通過(guò)filter啟動(dòng)的,即strutsprepareandexecutefilter,此過(guò)濾器為struts2的核心過(guò)濾器;strutspr

45、epareandexecutefilter的init()方法中將會(huì)讀取類路徑下默認(rèn)的配置文件struts.xml完成初始化操作。struts2讀取到struts.xml的內(nèi)容后,是將內(nèi)容封裝進(jìn)javabean對(duì)象然后存放在內(nèi)存中,以后用戶的每次請(qǐng)求處理將使用內(nèi)存中的數(shù)據(jù),而不是每次請(qǐng)求都讀取struts.xml文件。struts2框架的核心控制器是什么?它有什么作用?1)struts2框架的核心控制器是strutsprepareandexecutefilter。2)作用:負(fù)責(zé)攔截由/*指定的所有用戶請(qǐng)求,當(dāng)用戶請(qǐng)求到達(dá)時(shí),該filter會(huì)過(guò)濾用戶的請(qǐng)求。默認(rèn)情況下,如果用戶請(qǐng)求的路徑不帶后綴或

46、者后綴以.action結(jié)尾,這時(shí)請(qǐng)求將被轉(zhuǎn)入struts2框架處理,否則struts2框架將略過(guò)該請(qǐng)求的處理??梢酝ㄟ^(guò)常量struts.action.extension修改action的后綴,如:如果用戶需要指定多個(gè)請(qǐng)求后綴,則多個(gè)后綴之間以英文逗號(hào)(,)隔開(kāi)。 struts2配置文件的加載順序?perties常量可以在struts.xml或perties中配置,如果在多個(gè)文件中配置了同一個(gè)常量,則后一個(gè)文件中配置的常量值會(huì)覆蓋前面文件中配置的常量值.struts.xml文件的作用:通知struts2框架加載對(duì)應(yīng)的action資源st

47、ruts2常量的修改方式?常量可以在struts.xml或perties中配置,兩種配置方式如下:1)在struts.xml文件中配置常量2)在perties中配置常量(perties文件放置在src下):struts.action.extension=dostruts2如何訪問(wèn)httpservletrequest、httpsession、servletcontext三個(gè)域?qū)ο??方案一:httpservletrequest request=servletactioncontext.getrequest();httpservletres

48、ponse response=servletactioncontext.getresponse();httpsessionsession=request.getsession();servletcontext servletcontext=servletactioncontext.getservletcontext();方案二:類implementsservletrequestaware,servletresponseaware,sessionaware,servletcontextaware注意:框架自動(dòng)傳入對(duì)應(yīng)的域?qū)ο髎truts2是如何管理action的?這種管理方式有什么好處?stru

49、ts2框架中使用包來(lái)管理action,包的作用和java中的類包是非常類似的。主要用于管理一組業(yè)務(wù)功能相關(guān)的action。在實(shí)際應(yīng)用中,我們應(yīng)該把一組業(yè)務(wù)功能相關(guān)的action放在同一個(gè)包下。struts2中的默認(rèn)包struts-default有什么作用?1)struts-default包是由struts內(nèi)置的,它定義了struts2內(nèi)部的眾多攔截器和result類型,而struts2很多核心的功能都是通過(guò)這些內(nèi)置的攔截器實(shí)現(xiàn),如:從請(qǐng)求中把請(qǐng)求參數(shù)封裝到action、文件上傳和數(shù)據(jù)驗(yàn)證等等都是通過(guò)攔截器實(shí)現(xiàn)的。當(dāng)包繼承了struts-default包才能使用struts2為我們提供的這些功能

50、。2)struts-default包是在struts-default.xml中定義,struts-default.xml也是struts2默認(rèn)配置文件。struts2每次都會(huì)自動(dòng)加載struts-default.xml文件。3)通常每個(gè)包都應(yīng)該繼承struts-default包。struts2如何對(duì)指定的方法進(jìn)行驗(yàn)證?1)validate()方法會(huì)校驗(yàn)action中所有與execute方法簽名相同的方法;2)要校驗(yàn)指定的方法通過(guò)重寫(xiě)validatexxx()方法實(shí)現(xiàn),validatexxx()只會(huì)校驗(yàn)action中方法名為xxx的方法。其中xxx的第一個(gè)字母要大寫(xiě);3)當(dāng)某個(gè)數(shù)據(jù)校驗(yàn)失敗時(shí),調(diào)

51、用addfielderror()方法往系統(tǒng)的fielderrors添加校驗(yàn)失敗信息(為了使用addfielderror()方法,action可以繼承actionsupport),如果系統(tǒng)的fielderrors包含失敗信息,struts2會(huì)將請(qǐng)求轉(zhuǎn)發(fā)到名為input的result;4)在input視圖中可以通過(guò)顯示失敗信息。5)先執(zhí)行validatexxxx()-validate()-如果出錯(cuò)了,會(huì)轉(zhuǎn)發(fā)所指定的頁(yè)面,如果不出錯(cuò),會(huì)直接進(jìn)行action:execute()方法 struts2默認(rèn)能解決get和post提交方式的亂碼問(wèn)題嗎?不能。struts.i18n.encoding=utf-8

52、屬性值只能解析post提交下的亂碼問(wèn)題。請(qǐng)你寫(xiě)出struts2中至少5個(gè)的默認(rèn)攔截器?fileupload提供文件上傳功能i18n記錄用戶選擇的localecookies使用配置的name,value來(lái)是指cookiescheckbox添加了checkbox自動(dòng)處理代碼,將沒(méi)有選中的checkbox的內(nèi)容設(shè)定為false,而html默認(rèn)情況下不提交沒(méi)有選中的checkbox。chain讓前一個(gè)action的屬性可以被后一個(gè)action訪問(wèn),現(xiàn)在和chain類型的result()結(jié)合使用。alias在不同請(qǐng)求之間將請(qǐng)求參數(shù)在不同名字件轉(zhuǎn)換,請(qǐng)求內(nèi)容不變值棧valuestack的原理與生命周期?1

53、)valuestack貫穿整個(gè)action的生命周期,保存在request域中,所以valuestack和request的生命周期一樣。當(dāng)struts2接受一個(gè)請(qǐng)求時(shí),會(huì)迅速創(chuàng)建actioncontext,valuestack,action。然后把a(bǔ)ction存放進(jìn)valuestack,所以action的實(shí)例變量可以被ognl訪問(wèn)。請(qǐng)求來(lái)的時(shí)候,action、valuestack的生命開(kāi)始,請(qǐng)求結(jié)束,action、valuestack的生命結(jié)束;2)action是多例的,和servlet不一樣,servelt是單例的;3)每個(gè)action的都有一個(gè)對(duì)應(yīng)的值棧,值棧存放的數(shù)據(jù)類型是該action

54、的實(shí)例,以及該action中的實(shí)例變量,action對(duì)象默認(rèn)保存在棧頂;4)valuestack本質(zhì)上就是一個(gè)arraylist;5)關(guān)于contextmap,struts會(huì)把下面這些映射壓入contextmap中:parameters:該map中包含當(dāng)前請(qǐng)求的請(qǐng)求參數(shù)request:該map中包含當(dāng)前request對(duì)象中的所有屬性session:該map中包含當(dāng)前session對(duì)象中的所有屬性application:該map中包含當(dāng)前application對(duì)象中的所有屬性attr:該map按如下順序來(lái)檢索某個(gè)屬性:request,session,application6)使用ognl訪問(wèn)值棧的內(nèi)容時(shí),不需要#號(hào),而訪問(wèn)request、session、application、attr時(shí),需要加#號(hào);7)注意:struts2中,ognl表達(dá)式需要配合struts標(biāo)簽才可以使用

溫馨提示

  • 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ù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論