Java:初學 Java,遇到的問題及解決方案小結。


背景

失敗是成功之母,前提是沒有被遺忘的失敗,本文記錄這幾天學習 Java,自己遇到的幾個問題和解決方案,希望能達到強化記憶的作用。

開發環境是:Eclipse + Tomcat7.0。

第一個:依賴的第三方 jar 必須拷貝到 WEB-INF\lib 或 Tomcat 的 lib 目錄

如果只是將第三方 jar 包添加到 build path 中只能保證編譯通過,不能保證運行成功,關於如何配置運行期間類型的加載路徑,我還沒有查資料。

第二個:使用了 == 號

java 中不能重寫運算符,對於 Class 和 Interface 來說,equals 的語義是值比較,== 的語義是引用比較。

第三個:在 Tomcat7.0 中使用了默認包

默認包中的類型在 JSP 中使用的時候,編譯時沒有問題,運行時就出錯了。

第四個:在一個會話里測試 Page 指令的 isThreadSafe 配置

isThreadSafe 為 false 會導致所有請求串行化,為 true 會導致會話內的請求串行化。

如果你用同一個會話測試的話,true 和 false 的效果是一樣的,使用兩個瀏覽器可以到達期望的效果。

 1 <%@ page language="java" session="false" isThreadSafe="false"
 2     contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5 <head>
 6 <meta http-equiv="Content-Type" content="text/html; utf-8">
 7 <title>page 指令學習</title>
 8 </head>
 9 <body>
10     <p>isThreadSafe為false會導致所有請求串行化,為true會導致會話內的請求串行化。</p>
11     開始時間是:
12     <%
13         out.println(new java.util.Date());
14     %>
15     <br />
16     <%
17         Thread.sleep(5000);
18     %>
19     結束時間是:
20     <%
21         out.println(new java.util.Date());
22     %>
23     <br />
24     <%=Thread.currentThread().getId()%>
25 </body>
26 </html>

第五個:獲取請求參數還要手工解碼

不明白 Java 為啥不自動解碼,是不是有地方可以配置?有知道的兄弟告訴我一下。

 1 <%@page import="java.net.URLDecoder"%>
 2 <%@ page language="java" contentType="text/html; charset=utf-8"
 3     pageEncoding="utf-8"%>
 4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 5 <html>
 6 <head>
 7 <meta http-equiv="Content-Type" content="text/html; utf-8">
 8 <title>request study</title>
 9 </head>
10 <body>
11     <p>to get the parameter,you must set the character encoding first.</p>
12     <%
13         request.setCharacterEncoding("utf-8");
14     %>
15     <p>
16         get love:
17         <%
18         if (request.getParameter("love") != null) {
19     %>
20         <%=new String(request.getParameter("love").getBytes(
21                         "iso-8859-1"), "utf-8")%>
22         <%
23             }
24         %>
25     </p>
26     <p>
27         post name:<%=request.getParameter("name")%></p>
28     <form method="get">
29         get form<input type="text" name="love" value="段光偉" /> <input
30             type="submit" />
31     </form>
32     <form method="post">
33         post form<input type="text" name="name" value="段光偉" /> <input
34             type="submit" />
35     </form>
36 </body>
37 </html>

備注

將自己的遇到的問題記錄下來,即使是“白痴”級別的問題。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM