1.在jsp向頁面輸出圖片的時(shí)候,使用response.getOutputStream()會(huì)有這樣的異常錯(cuò)誤提示信息:java.lang.IllegalStateException: getOutputStream() has already been called for this response的解決辦法:
只需要在jsp頁面的最后加上兩條語句: out.clear();out=pageContext.pushBody();即可(其中out,pageContext均為jsp內(nèi)置對(duì)象!)
2.柱狀圖在顯示橫軸時(shí)名稱不能全部顯示解決方案(讓坐標(biāo)傾斜30度):
CategoryAxis domainAxis = plot.getDomainAxis();
domainAxis.setCategoryLabelPositions(CategoryLabelPositions.createUpRotationLabelPositions(Math.PI/6.0));
plot.setDomainAxis(domainAxis);
3.JFreeChart將柱圖中的Y軸數(shù)字顯示為整數(shù)
NumberAxis numberaxis = (NumberAxis)plot.getRangeAxis();
numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
4.JSP的會(huì)話跟蹤技術(shù)
1. Cookie:服務(wù)器在一個(gè)應(yīng)答首部傳遞給瀏覽器的名稱/值對(duì)。瀏覽器保存的時(shí)間由cookie的過期時(shí)間屬性來指定。當(dāng)瀏覽器向某個(gè)服務(wù)器發(fā)送一個(gè)請(qǐng)求時(shí),它會(huì)檢查其保存的cookie,并在請(qǐng)求首部中包含從同一臺(tái)服務(wù)器上接收到的所有cookie。
2.Session tracking:在瀏覽器和服務(wù)器之間不直接傳送所有的狀態(tài)信息,而只是傳遞表示符(session ID)。瀏覽器發(fā)送sessionID,服務(wù)器跟蹤與該會(huì)話相關(guān)聯(lián)的所有信息。傳遞sessionID可以通過cookie和URL復(fù)寫技術(shù),大部分容器都支持這兩種技術(shù)。服務(wù)器無法分辨用戶是否關(guān)閉了瀏覽器,因此關(guān)閉瀏覽器意味著與先前的會(huì)話關(guān)聯(lián)的所有會(huì)話數(shù)據(jù)都保留在服務(wù)器上,直到會(huì)話超時(shí),服務(wù)器銷毀會(huì)話對(duì)像。®跟蹤同一會(huì)話中的請(qǐng)求的會(huì)話ID可以有多種方法,主要有cookie和url復(fù)寫。
3.URL復(fù)寫:把會(huì)話ID編碼在URL中。 例:counter.jjsp;jsessionnid=be8d697876787876befdbde898789098980這樣,即使瀏覽器不支持cookie,也能夠?qū)崿F(xiàn)會(huì)話跟蹤。對(duì)于URL復(fù)寫,服務(wù)器從請(qǐng)求的URI中提取出會(huì)話ID,并把該請(qǐng)求與相應(yīng)的會(huì)話關(guān)聯(lián)起來,然后在訪問會(huì)話數(shù)據(jù)的時(shí)候,JSP頁面所進(jìn)行的處理方式就和使用cookie跟蹤會(huì)話id時(shí)所使用的方式完全相同。所以sesssion的實(shí)現(xiàn)要依靠cookie或URL復(fù)寫技術(shù)。如果想為不支持cookie的瀏覽器提供會(huì)話跟蹤,就必須使用<c:url>行為對(duì)應(yīng)用程序中的所有URL進(jìn)行復(fù)寫。這意味著應(yīng)用程序中的所有頁面(至少是那些帶有對(duì)其他頁面引用的頁面)都必須是JSP頁面,這樣頁面引用才能以動(dòng)態(tài)方式進(jìn)行編碼,如果遺漏了一個(gè)ur,那么服務(wù)就會(huì)失去對(duì)會(huì)話的跟蹤。
4.隱藏表單域:隱藏表單域是將會(huì)話ID添加到HTML的隱藏表單中(類型為hidden的input)。重定向和轉(zhuǎn)發(fā)可以使用兩種方法來調(diào)用另一個(gè)頁面,重定向和轉(zhuǎn)發(fā)。i) 轉(zhuǎn)發(fā):<jsp:forward page=”userInfo.jsp”/>轉(zhuǎn)發(fā),JSP容器將使用一個(gè)內(nèi)部方法來調(diào)用目標(biāo)頁面,新的頁面繼續(xù)處理同一個(gè)請(qǐng)求,而瀏覽器不會(huì)知道這個(gè)過程涉及到了多個(gè)頁面。瀏覽器URL會(huì)保持不變。ii) 重定向:<c:redirect url=”userInfo.jsp”/>重定向與轉(zhuǎn)發(fā)不同,重定向時(shí),第一個(gè)頁面會(huì)通知瀏覽器發(fā)送一個(gè)新的目標(biāo)頁面的請(qǐng)求。瀏覽器所顯示的URL會(huì)變成新頁面的URL。重定向的速度比轉(zhuǎn)發(fā)要慢,因?yàn)闉g覽器得發(fā)出一個(gè)新的請(qǐng)求。同時(shí),由于重定向產(chǎn)生了一個(gè)新的請(qǐng)求,所以經(jīng)過一次重定向之后請(qǐng)求作用域內(nèi)的對(duì)象將無法再使用了。
5.JFreeChart柱狀圖數(shù)字顯示在柱子上方:
renderer.setItemLabelGenerator(new StandardCategoryItemLabelGenerator());
renderer.setItemLabelsVisible(true);
// 默認(rèn)的數(shù)字顯示在柱子中,通過如下兩句可調(diào)整數(shù)字的顯示
renderer.setPositiveItemLabelPosition(new ItemLabelPosition(
ItemLabelAnchor.OUTSIDE12,TextAnchor.BASELINE_LEFT));
1.得到相對(duì)路徑
URL url = ServiceFactory.class.getResource("/config/log4j.properties");
Properties properties = new Properties();
try {
properties.load(new InputStreamReader(url.openStream()));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
PropertyConfigurator.configure(properties);
2 簡單數(shù)據(jù)庫連接池使用:
1.加入要用到的數(shù)據(jù)庫包:mysql-connector-java-3.1.13-bin.jar
2.加入proxool-cglib.jar,proxool-0.9.1.jar和commong-logging-1.1.jar
3.加入如下代碼:
PropertyConfigurator.configure("src/Proxool.properties");(只在加載時(shí)使用一次)
Connection connection = DriverManager.getConnection("proxool.proxool-sipity");(獲得連接)
3.IntelliJ一款java 編譯工具(才知道)
4.JAVA字符串轉(zhuǎn)日期或日期轉(zhuǎn)字符串
SimpleDateFormat sdf = new SimpleDateFormat( " yyyy-MM-dd HH:mm:ss " );
1.字符串轉(zhuǎn)日期
2008-07-10 19:20:00 要把它轉(zhuǎn)成日期,可以用 Date date = sdf.parse( " 2008-07-10 19:20:00 " );
2.日期轉(zhuǎn)字符串
String str = sdf.format(new Date());字符串內(nèi)容的格式類似2008-07-10 19:20:00。
SimpleDateFormat sdf = new SimpleDateFormat( " yyyy年MM月dd日 " );
String str = sdf.format(new Date());
5使用JSP大約有下列三種跳轉(zhuǎn)方式:
1. response.sendRedirect();
2. response.setHeader("Location","");
3. <jsp:forward page="" />
5.JfreeChart使用:http://www.itpub.net/archiver/tid-628960.html