資源描述:
《北大青鳥學子總結-JSP》由會員上傳分享,免費在線閱讀,更多相關內容在教育資源-天天文庫。
1、北大青鳥學員學習總結-JSP發(fā)布日期:2010-09-1018:12:07 瀏覽次數(shù):151一、什么是JSP?JSP是JavaServerPages的簡稱,是由Sun公司于1999年推出的一種動態(tài)網(wǎng)頁技術標準。JSP在傳統(tǒng)的HTML網(wǎng)頁中加入了Java程序片段和JSP標記,可以根據(jù)用戶的不同操作顯示出不同的效果。JSP的工作方式為請求/響應式,客戶端發(fā)送請求,服務端進行處理,并返回處理結果。JSP程序需要運行在特定的Web服務器中,例如:Tomcat、WebLogic等,所有JSP文件,在執(zhí)行的時
2、候都會被服務端的JSP引擎轉換為Servlet程序(Java源文件),然后調用Java編譯器將Servlet程序編譯為class文件(字節(jié)碼文件),并由Java虛擬機(JVM)解釋執(zhí)行。二、集合Collection是最基本的集合接口,一個Collection代表一組元素。List允許插入重復的元素ArrayList非同步,順序存儲結構,對其進行查找、修改效率較高Vector同步,LinkedList非同步,鏈式存儲結構,對其進行增加、刪除效率較高Set不包含重復元素HashSet非同步,迭代時間與
3、Set容量成正比。LinkedHashSet非同步,鏈式存儲結構,可以保證迭代的順序,迭代時間與Set大小成正比。Map鍵值對集合遍歷Map。TreeMap非同步,其順序可以根據(jù)構造方法的不同而不同。HashMap非同步,允許使用null值和null鍵。不保證映射的順序。HashtableConcurrentModificationException異常不允許并發(fā)修改時,但進行了并發(fā)修改。對上述非同步問題均可采用Collections.synchronized**()方法進行處理。三、亂碼的處理用
4、post提交,用request.setCharacterEncoding("編碼")處理即可;用get提交,byte[]b=squadName.getBytes("iso-8859-1");squadName=newString(b,"gbk");直接傳漢字,URLEncoder.encode("呵呵","編碼");接收時用get方式接收即可。四、跳轉的不同實現(xiàn)方式HTML用表單進行跳轉;超鏈JSPresponse.sendRedirect("URL");request.getRequestDis
5、patcher("URL").forward(request,response);JSwindow.location="URL";五、隱式對象request,response,session,application,out,pageContext(常用)exceptionpageconfig(少見)request對象常用方法getParameter(Stringname)String[]getParameterValues(Stringname)voidsetCharacterEncoding(S
6、tringcharset)getRequestDispatcher(Stringpath)當isErrorPage=“true”時可以使用exception當isErrorPage="false"時頁面中不能使用ExceptionpageContext與session和application相似代表當前頁的自定義標簽中比較常用pageContext.getOut得到輸出對象getRequestgetservletContext得到一個application對象四個作用域對象pageContextr
7、equestsessionapplication從小到大它們都有三個相同的方法:setAttributegetAttributeremoveAttribultpageContext.findAttribute("abc")在作用域中從小到大的尋找abc六、常見的異常異常是由多種情況引起的,一定要按照步驟慢慢來。為了避免少報異常,按照下面的步驟一步一步來。1、修改java類后,重新啟動下服務。2、修改了JSP頁面后,保存了在進行測試。3、若修改了頁面名稱,但是訪問不到,重新部署一下工程,基本上就可以
8、解決了。4、有些情況需要清除Tomcate生成的代碼,讓其重新生成;Project--Clean--……;404頁面找不到查看URL是否正確;查看Tomcate是否啟動;重新部署,重啟服務。500頁面有錯誤如果是JSP頁面有問題,往往會告訴你哪一行;java.lang.NullPointerException空異常,java.net.BindException:Addressalreadyinuse:JVM_Bind:8080端口被占用;javaw.exe;java.lang.Nu