精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

JSP學習經驗全面總結

開發 后端
本文全面總結JSP學習經驗,熟悉JAVA語法很久后,遲遲才開始學習JSP,學習JSP時,卻只學了基本的用法就去學Struts和Hibernate,以致對JSP掌握得很不夠。
JSP學習經驗前言
 
熟悉JAVA語法很久后,遲遲才開始學習JSP。而學習JSP時,卻只學了基本的用法就去學Struts和Hibernate,以致對JSP掌握得很不夠。后來發現所學習的Struts框架實際上是“包裝”了的JSP。所以,我在學習框架的時候也回頭看看JSP。
 
以后應該不會再去專門學習JSP了。現在把一些JSP學習經驗總結下,記錄下來,以防來日忘了。
 
說明:以下所描述的環境是jdk1.5、tomcat5.5、 jsp2.0、 servlet2.4、JSTL1.1.2
 
一、基本配置
 
基本的重要的配置在web.xml 文件中。
 
1、Jsp屬性組
  1. <jsp-property-group> 
  2. <url-pattern>/pages/*url-pattern> 
  3. <el-ignore>trueel-ignore> 
  4. <page-encoding>UTF-8page-encoding> 
  5. <include-prelude>/include/header.jspfinclude-prelude> 
  6. <include-coda>/include/copyright.jspfinclude-coda> 
  7. jsp-property-group> 

這個設置可以指定頁面編碼,頁頭頁腳等等。

設置 UTF-8 的好處是不用在每個頁面像這樣指定編碼

而設置 /include/header.jspf 使得每個頁面都在頭部包含header.jspf文件(通常把對標簽的包含放在這里)。

2、數據庫資源的引用

  1. <resource-ref> 
  2. <description>CourseDesignJDNIdatasourcedescription> 
  3. <res-ref-name>jdbc/testres-ref-name> 
  4. <res-type>javax.sql.DataSourceres-type> 
  5. <res-auth>Containerres-auth> 
  6. resource-ref> 

前提是要在TOMCAT的中配置

  1. <ContextpathContextpath="/Course"docBase="Course"debug=
    "0"
    crosscontext="true"reloadable="true"> 
  2. <ResourcenameResourcename="jdbc/test"auth=
    "Container"
    type="javax.sql.DataSource" 
  3. maxActive="100"maxIdle="30"maxWait="10000" 
  4. username="root"password="123456"  
  5. driverClassName="com.mysql.jdbc.Driver" 
  6. url="jdbc:mysql://localhost:3306/databaseName?
    useUnicode=true&characterEncoding=UTF-8"
    /> 
  7. Context> 

在程序中可以這樣獲取連接

  1. publicstaticConnectiongetConnection()  
  2. ...{Connectionconn=null;  
  3. try  
  4. ...{  
  5. ContextinitContext=newInitialContext();  
  6. ContextenvContext=(Context)initContext.lookup"java:/comp/env");  
  7. DataSourceds=(DataSource)envContext.lookup"jdbc/test");  
  8. conn=ds.getConnection();  
  9. }  
  10. catch(Exceptione)...{  
  11. }  
  12. returnconn;  

3、過濾器

一般來說,字符編碼的處理,我們會寫一個過濾器。這個過濾器的JAVA類在TOMCAT的例子中有提供,可以按需來更改再拿來用。只要在配置文件中設置:

  1. <filter-name>setCharacterEncodingfilter-name> 
  2. <filter-class>powerwind.filter.SetCharacterEncodingFilterfilter-class> 
  3. <init-param> 
  4. <param-name>encodingparam-name> 
  5. <param-value>UTF-8param-value> 
  6. init-param> 
  7. filter> 
  8. <filter-mapping> 
  9. <filter-name>setCharacterEncodingfilter-name> 
  10. <url-pattern>/pages/*url-pattern> 
  11. filter-mapping> 

4、標簽的URI

JSTL是個東西,里面提供了很好用的標簽(Tag),但也不一定滿足我們的要求,就自己寫標簽了。把 *.tld 文件直接放到WEB-INF下,在自己定義的tld文件中加上元素,如:http://powerwind/course 。

5、日志

只用過log4j這個日志包。首先是配置文件 log4j.properties (比較完整的配置,應根據情況選擇):

  1. log4j.rootLogger=DEBUG,INFO,A1,A2,A3  
  2. log4j.appender.A1=org.apache.log4j.ConsoleAppender  
  3. log4j.appender.A1.layout=org.apache.log4j.PatternLayout  
  4. log4j.appender.A1.layout.ConversionPattern=%4p[%t](%F:%L)-%m%n  
  5.  
  6. log4j.appender.A2=org.apache.log4j.RollingFileAppender  
  7. log4j.appender.A2.File=../../log/test.log  
  8. log4j.appender.A2.MaxFileSize=1KB 
  9. log4j.appender.A2.MaxBackupIndex=3 
  10. log4j.appender.A2.layout=org.apache.log4j.PatternLayout  
  11. log4j.appender.A2.layout.ConversionPattern=%d{yyyy-MM-ddhh:mm:ss}:%p%t%c-%m%n  
  12.  
  13. log4j.appender.A3=org.apache.log4j.jdbc.JDBCAppender  
  14. log4j.appender.A3.URL=jdbc:mysql://localhost:3306/log4jTest  
  15. log4j.appender.A3.driver=com.mysql.jdbc.Driver  
  16. log4j.appender.A3.user=root 
  17. log4j.appender.A3.password=123456 
  18. log4j.appender.A3.layout=org.apache.log4j.PatternLayout  
  19. log4j.appender.A3.layout.ConversionPattern=INSERTINTO 
  20. log4j(createDate,thread,level,class,message)values('%d','%t','%-5p','%c','%m') 

接著寫個Servlet來加載log4j:

  1. packagepowerwind.servlet;  
  2. importorg.apache.log4j.Logger;  
  3. importorg.apache.log4j.PropertyConfigurator;  
  4.  
  5. importjavax.servlet.*;  
  6. importjavax.servlet.http.*;  
  7.  
  8. publicclassLog4jInitextendsHttpServlet{  
  9. publicvoidinit(ServletConfigconfig)throwsServletException{  
  10. super.init(config);  
  11. Stringprefix=getServletContext().getRealPath("/");  
  12. Stringfile=getInitParameter("log4j");  
  13. System.out.println("initlog4j...");  
  14. if(file!=null){  
  15. PropertyConfigurator.configure(prefix+file);  
  16. }else  
  17. {  
  18. PropertyConfigurator.configure(prefix+"log4j.properties");}  
  19. }  

然后同時要在web.xml下配置:

  1. <servlet> 
  2. <servlet-name>log4jInitservlet-name> 
  3. <servlet-class>powerwind.servlet.Log4jInitservlet-class> 
  4. <init-param> 
  5. <param-name>log4jparam-name> 
  6. <param-value>WEB-INF/classes/log4j.propertiesparam-value> 
  7. init-param> 
  8. <load-on-startup>1load-on-startup> 
  9. servlet> 

小型的應用中,我們并不常需要國際化。但是,如果網站要中文版和英文版的話,這個就不錯啦。使用時很簡單,把資源test_zh_CN.properties文件放到classes目錄下,然后用JSTL的fmt標簽調用。

其中var和scope屬性不是必需的。三者結合,就可以實現國際化了。

  1. <fmt:setLocalevaluefmt:setLocalevalue="zh_CN"scope=”session”/> 
  2. <fmt:setBundlebasenamefmt:setBundlebasename="test"scope=”session”var=”hehe”/> 
  3. <fmt:messagekeyfmt:messagekey="login.title"bundle=”${hehe}”scope=”session”/> 

二、極限與安全

資源放在WEB-INF下是安全的,因為這個目錄對于客戶端是不存在的。權限控制并不是僅僅這樣就可以了。如果只是簡單地判斷用戶是否登錄,可用一個過濾器檢查Session對象即可。若需要級別控制的話,就在Session中保存級別信息,然后加以判斷。

一般把權限的控制做成一個標簽(tag)。如:

  1. publicintdoEndTag()throwsJspException{  
  2. HttpSessionsession=pageContext.getSession();  
  3. if((session!=null)&&(session.getAttribute("user")!=null)){  
  4. Stringt=((UserBean)session.getAttribute("user")).getType();  
  5. if(t==null||role==null){  
  6. invalid();  
  7. return(SKIP_PAGE);  
  8. }  
  9. String[]roleroles=role.split(delimiter);  
  10. for(inti=0;i<roles.length;i++){  
  11. if(roles[i].equalsIgnoreCase(role))  
  12. return(EVAL_PAGE);  
  13. }  
  14. }else{  
  15. invalid();  
  16. return(SKIP_PAGE);  
  17. }  
  18. return(EVAL_PAGE);  

三、上傳與下載

上傳的話,一般使用已有的組件,如commons-fileupload 或者歐萊禮的cos (可能會遇到中文編碼的問題)。而下載,比較簡單,就自己寫了個Servlet。

  1. publicvoidhandleRequest(HttpServletRequestrequest,  
  2. HttpServletResponseresponse)throwsIOException,ServletException{  
  3. Stringname=request.getParameter("name");  
  4. Stringtype=request.getParameter("type");  
  5. Stringdir=request.getParameter("dir");  
  6. if(name==null||name.length()<2||dir==null||dir.
    length()
    <1||type==null||type.length()<1){  
  7. thrownewServletException("Sorry,erroroccured");  
  8. }  
  9. charch=dir.charAt(dir.length()-1);  
  10. if(ch!='/'||ch!='\')  
  11. dirdir=dir+"/";  
  12. ServletOutputStreamos=null;  
  13. BufferedInputStreambis=null;  
  14. try{  
  15. Filefile=newFile(dir+name);  
  16. if(!file.exists()||file.length()>=Integer.MAX_VALUE){  
  17. logger.error("Invalidfileorfiletolarge,file:"+name);  
  18. thrownewServletException(  
  19. "Invalidfileorfiletolarge,file:"+name);  
  20. }  
  21. response.setContentType("application/"+type);  
  22. response.addHeader("Content-Disposition","attachment;filename="+name);  
  23. response.setContentLength((int)file.length());  
  24. os=response.getOutputStream();  
  25. bis=newBufferedInputStream(newFileInputStream(file));  
  26. intsize=-1;  
  27. while((size=bis.read())!=-1)  
  28. os.write(size);  
  29. }catch(IOExceptionioe){  
  30. thrownewServletException(ioe.getMessage());  
  31. }finally{  
  32. if(os!=null)  
  33. os.close();  
  34. if(bis!=null)  
  35. bis.close();  
  36. }  

以上只是個示例程序紀錄在JSP學習經驗中,靈活與方便的做法應該是在Servlet初始化參數()設置下載文件所在目錄,當然也可以在頁面中設置參數。甚至可以做成一個下載標簽,方便使用。

【編輯推薦】

  1. 全面介紹JSP標準標記庫JSTL
  2. JSP開發技術應用詳解
  3. 在實戰中成長:JSP開發之路
  4. Servlet和JSP技術特性
  5. JSP標簽庫概念及特點介紹
責任編輯:佚名 來源: Csdn
相關推薦

2011-07-08 13:15:52

JSP

2009-08-20 17:35:47

Servlet和JSP

2009-07-01 11:44:32

JSP學習教程

2009-09-16 17:13:54

學習Linq

2009-08-10 16:25:30

JSP SQL Ser

2011-07-21 13:40:17

java

2010-06-13 13:44:07

UML學習筆記

2013-12-18 15:54:21

2009-08-13 18:13:27

C#學習經驗

2009-08-11 14:20:41

C# .NET學習經驗

2010-06-02 09:06:26

SVN學習

2009-07-02 11:49:44

JSP學習步驟

2009-09-01 13:10:39

C#讀取Word

2010-01-05 16:46:14

學習.NET Fram

2009-09-04 16:33:28

CCNA學習方法

2009-12-22 18:36:17

WCF知識結構

2011-01-12 17:27:53

2009-08-07 09:47:17

C#枚舉C#數組

2009-03-21 19:21:22

2022-03-14 10:20:15

人工智能學習高效
點贊
收藏

51CTO技術棧公眾號

中文字幕一区二区三区四区五区| 色偷偷偷综合中文字幕;dd| 婷婷五月综合缴情在线视频| 国产黄色片免费观看| 黄色一区二区三区四区| 亚洲精品国产精品久久清纯直播| 综合视频免费看| 高h放荡受浪受bl| 黄色精品网站| 国产亚洲欧美另类中文| 美女日批在线观看| 欧美另类tv| 亚洲国产电影在线观看| 国产精品免费一区二区三区| 久久这里只有精品国产| 玖玖精品一区| 亚洲精品福利视频网站| 成人情视频高清免费观看电影| 成人自拍小视频| 天美av一区二区三区久久| 精品电影在线观看| 麻豆91蜜桃| 亚洲AV无码成人片在线观看| 日韩国产欧美三级| 孩xxxx性bbbb欧美| 中文字幕 自拍| 粉嫩av一区二区| 精品久久久一区| 中文字幕在线乱| 亚洲第一视频在线| 99在线热播精品免费99热| 久久精品国产96久久久香蕉| 国产精品美女高潮无套| 天天躁日日躁狠狠躁欧美巨大小说| 欧美日韩亚洲一区二区三区| 日本高清不卡三区| 国产一区二区三区视频免费观看| 欧美在线影院| 日韩一区二区三区国产| 国产chinesehd精品露脸| 日韩久久一区| 欧美日韩黄色一区二区| 日韩在线第三页| 含羞草www国产在线视频| 国产日韩精品一区二区三区在线| 国产美女久久精品| 好吊色在线视频| 午夜在线视频一区二区区别| 97久久久久久| 天堂av免费在线| 日韩精品91| 在线精品91av| 午夜激情视频在线播放| 日韩毛片视频| 色偷偷88888欧美精品久久久| av免费观看不卡| 成人福利一区二区| 欧美又粗又大又爽| 亚洲一区二区蜜桃| 精品女同一区二区三区在线观看| 亚洲国产sm捆绑调教视频 | 韩国成人动漫| 欧美色视频日本高清在线观看| 亚洲精品免费在线看| 大片免费播放在线视频| 国产免费观看久久| 精品日本一区二区三区在线观看| 中文字幕人妻精品一区| 蜜桃视频一区二区| 欧美在线视频导航| 欧美一区免费看| 免费在线观看精品| 欧美亚洲视频在线观看| 中文字幕xxxx| 老鸭窝一区二区久久精品| 成人激情视频网| www天堂在线| 99精品国产一区二区三区不卡| 91麻豆国产语对白在线观看| 99热这里只有精品66| 成人精品免费视频| 欧美成人综合一区| 五月婷婷在线观看视频| 久久中文字幕电影| 伊甸园精品99久久久久久| 亚洲丝袜一区| 色综合欧美在线| 欧美在线aaa| 欧美三级一区| 日韩成人激情视频| 在线日韩国产网站| 亚洲日韩视频| 午夜精品蜜臀一区二区三区免费 | 日本人妻熟妇久久久久久| 26uuu色噜噜精品一区二区| 亚洲图片都市激情| 国产高清视频色在线www| 欧美日本国产视频| 国产女人18毛片水真多18| av中文一区| 欧美激情在线观看视频| 亚洲免费视频二区| 丁香婷婷综合激情五月色| 日韩欧美精品一区二区| 欧洲黄色一区| 欧美男女性生活在线直播观看| 日本中文字幕二区| 乱中年女人伦av一区二区| 中文字幕在线看视频国产欧美在线看完整| 欧洲av一区二区三区| 伊人情人综合网| 国产成人自拍视频在线观看| 亚洲男人第一天堂| 国产精品沙发午睡系列990531| 亚洲不卡中文字幕| 中中文字幕av在线| 欧美午夜精品电影| 自拍视频一区二区| 中文字幕日韩欧美精品高清在线| 欧美激情小视频| 一本色道久久综合熟妇| 久久久久久久久久久久久女国产乱 | 亚洲第一级黄色片| 欧美激情精品久久久久久免费| 天天操综合网| 国产精品大片wwwwww| 色欲av伊人久久大香线蕉影院| 久久综合九色综合久久久精品综合| 欧美人与性禽动交精品| 国产第一页在线视频| 欧美一区二区日韩一区二区| 亚洲一区二区三区黄色| 久久久久蜜桃| 国产日本欧美一区二区三区| fc2在线中文字幕| 亚洲视频每日更新| 一区二区免费av| 粉嫩av一区二区| 欧美高跟鞋交xxxxhd| 91av久久久| 99久久综合精品| 777久久精品一区二区三区无码| 中文不卡1区2区3区| 亚洲第一网站免费视频| 国产馆在线观看| 日本不卡视频一二三区| 日本在线观看一区二区| 欧美人体一区二区三区| 精品日韩欧美在线| 久久久久久久久久综合 | 91视视频在线观看入口直接观看www | 亚洲一级免费观看| 国产真实有声精品录音| 国产精品久久久久久亚洲调教| 亚洲产国偷v产偷v自拍涩爱| 亚洲欧美色综合| www.欧美com| 黑丝一区二区三区| 国产伦精品一区二区三区高清版| 亚乱亚乱亚洲乱妇| 884aa四虎影成人精品一区| 亚洲欧美精品aaaaaa片| 国内精品久久久久影院色 | 欧美日韩第二页| 色综合综合色| 国产精品久久久久久av| 亚洲欧美日韩成人在线| 日本精品一区二区三区高清| 成人在线观看免费高清| 国产主播一区二区三区| 亚洲爆乳无码精品aaa片蜜桃| 久久久加勒比| 操人视频在线观看欧美| 视频一区 中文字幕| 色久优优欧美色久优优| 久草福利资源在线| 成人国产在线观看| 亚洲成熟丰满熟妇高潮xxxxx| 精品伊人久久久| 欧洲亚洲在线视频| 香蕉视频在线免费看| 欧美放荡的少妇| 久久久精品人妻一区二区三区四| 国产真实乱对白精彩久久| 隔壁人妻偷人bd中字| 韩国三级成人在线| 久久精品福利视频| 手机看片一区二区| 欧美性生交片4| 免费在线一级片| 国产黄色91视频| 茄子视频成人免费观看| 91精品国产视频| 国产一区二区高清视频| 女人高潮被爽到呻吟在线观看| 精品免费一区二区三区| 无码人妻一区二区三区线| 久久久久久久久久久久久夜| 小早川怜子一区二区三区| 国产人成精品一区二区三| 亚洲欧美日韩精品综合在线观看| 国产亚洲欧美日韩精品一区二区三区 | 国产麻豆一精品一男同| 亚洲成在线观看| 纪美影视在线观看电视版使用方法| 天堂蜜桃91精品| 美女av免费观看| 大香伊人久久精品一区二区| 国产精品中文久久久久久久| 国产中文在线播放| 欧美成人精品激情在线观看| 国产高清在线观看| 亚洲国产天堂网精品网站| 欧产日产国产69| 国产女人18水真多18精品一级做| 久久人人爽av| 久久在线精品| 日韩欧美不卡在线| 综合激情网站| 亚洲一区bb| 国产一区二区三区天码| 国产一区免费在线| 玖玖玖电影综合影院| 国产日韩精品电影| 精品123区| 久久夜色精品国产| 日韩在线免费电影| 国产一区二区三区高清在线观看| 国产模特av私拍大尺度| 欧美亚洲国产一卡| 黄色av一级片| 一色桃子久久精品亚洲| xxxx日本免费| 久久亚洲一区二区三区四区| 亚洲av成人精品一区二区三区 | 日韩极品视频在线观看| 亚洲91中文字幕无线码三区| 五月天丁香综合久久国产| 九色成人国产蝌蚪91| 精品网站在线看| 日本成人a网站| 精品一区二区不卡| 亚洲一区二区三区久久久| 国产精品美乳在线观看| 性xxxxfjsxxxxx欧美| 久久夜色撩人精品| 久久精品色图| 亚洲天堂网在线观看| 欧美孕妇孕交| 日韩女优av电影| www.欧美国产| 精品福利av导航| 亚洲在线观看av| 五月天一区二区三区| 五月天综合激情| 欧美三级免费观看| 波多野结衣高清视频| 欧美视频在线播放| 九九热精品视频在线| 色天天综合久久久久综合片| 成年人视频免费| 欧美精品免费视频| 精品国自产拍在线观看| 亚洲成人久久久久| 国产在线小视频| 久久九九全国免费精品观看| 污污视频在线| 8x拔播拔播x8国产精品| 日韩国产激情| 国产在线视频2019最新视频| 一本一道久久a久久| 精品一区二区三区免费毛片| 精品国产乱码久久久久久果冻传媒 | 久久黄色免费视频| 精品久久久久久亚洲国产300 | 国产在线视频你懂得| 中文字幕免费国产精品| 国产专区在线播放| 久久精品中文字幕一区| 爱啪视频在线观看视频免费| 日本人成精品视频在线| 日本成人在线网站| 国产精品日韩一区二区免费视频| 国产一区二区av在线| 国产精品有限公司| 不卡日本视频| 免费的一级黄色片| 欧美精品国产一区| 欧美成人精品欧美一级乱| 国产综合色产在线精品| 8x8x成人免费视频| 国产在线精品国自产拍免费| 四季av综合网站| 国产精品国产三级国产普通话蜜臀| 91成人精品一区二区| 亚洲国产综合91精品麻豆| 国产黄色免费视频| 亚洲成人激情在线| 外国精品视频在线观看| 中文字幕欧美精品日韩中文字幕| www.黄在线观看| 久久久中精品2020中文| 欧美性www| 蜜桃精品久久久久久久免费影院| 亚洲国产网址| 国风产精品一区二区| 丝袜诱惑制服诱惑色一区在线观看 | 日本在线天堂| 欧美孕妇与黑人孕交| 久久亚洲精精品中文字幕| 日韩欧美三级电影| 99精品视频在线观看播放| ww国产内射精品后入国产| 国产一级精品在线| 青青青视频在线播放| 亚洲欧美日韩久久精品| 免费在线观看日韩| 欧美日本视频在线| 黄色软件在线观看| 欧美一性一乱一交一视频| 9l视频自拍蝌蚪9l视频成人| 在线播放豆国产99亚洲| 天堂久久一区二区三区| 中文字幕在线视频一区二区三区 | 91精品人妻一区二区| 一区二区三区在线影院| 免费观看一区二区三区毛片| 日韩欧美国产综合一区| 性xxxx18| 久久久亚洲网站| 看亚洲a级一级毛片| 精品网站在线看| 亚洲经典三级| 777一区二区| 国产女人aaa级久久久级| 亚洲欧美日韩激情| 亚洲久久久久久久久久久| 蜜桃视频www网站在线观看| 国产精品久久精品国产| 国产精品porn| 日本人妻一区二区三区| 一区二区在线观看av| 性中国xxx极品hd| 中文日韩在线观看| 黄色精品视频| 国产精品视频免费一区二区三区| 精品免费一区二区| 成年人网站大全| 成人美女视频在线观看| 日本少妇bbwbbw精品| 亚洲国产欧美一区| 免费一二一二在线视频| 美国av一区二区三区| 欧美国产高潮xxxx1819| 日本成人在线免费| 天天射综合影视| 毛片免费在线播放| 国产欧美精品日韩| 亚洲成人三区| 天天躁日日躁狠狠躁av| 精品日韩视频在线观看| 可以直接在线观看的av| 国产精品美女久久| 亚洲精品亚洲人成在线| 日韩中文字幕二区| 99久久综合国产精品| 欧美日韩在线观看成人| 亚洲第一天堂av| 亚洲一区二区三区四区| 久久综合给合久久狠狠色| 久久一区亚洲| 蜜桃av.com| 精品国产乱码久久| 欧美激情喷水| 中文字幕av导航| 成人免费视频一区二区| 欧美特级黄色片| 美女少妇精品视频| 台湾佬综合网| 中文字幕无码精品亚洲35| 国产校园另类小说区| 国产欧美一区二区三区视频在线观看| 中文字幕久热精品在线视频| 国产亚洲久久| 女女百合国产免费网站| www.欧美精品一二区| 亚洲图片欧美日韩| 九九久久精品一区| 亚洲精品亚洲人成在线观看| 日韩avxxx| 亚洲欧洲日韩av| 天天射天天色天天干| 国产欧美一区二区| 中文久久精品| 成年人午夜剧场| 亚洲欧洲在线观看| 日韩高清在线观看一区二区| 国产 国语对白 露脸| 久久亚洲一区二区三区四区| 在线免费一区二区|