1.盡量用<jsp:include>標簽把相同部分放在一起,以后更改的時候方便。
?
2.request.getAttribute()/.getParameter()中的參數(shù)如果之前沒有內(nèi)容,則得到的是null。
?
3.表單提交的信息不能換行,下面是解決辦法。同理,""變?yōu)?amp;nbsp就能處理空格問題。
//換行的處理,就是將獲得的文本框的換行標記轉(zhuǎn)化為相應的HTML標識,即<br>,下面我以變量description來說明,
//--------------程序開始
//接收description從前邊提交的值
String description.getParameter("Content");
//----------用循環(huán)來轉(zhuǎn)換,用到的JAVA函數(shù)有indexOf和substring,對于這兩個函數(shù)不清楚的請查閱相關資料
//轉(zhuǎn)換換行符
\\r\\n成為HTML換行標記<BR>
while(description.indexOf("\r\n")>=0 || description.indexOf(" ")>=0) //判斷Content中是否含有換行標記"\r\n"和空格標記" "
{
? int i=description.indexOf("\r\n");//記錄換行標記的位置
??if(i>=0)
??{
????=description.substring(0,i)+"<br>"+description.substring(i+2);//替換
??}
??int j = description.indexOf(" ");
??(j >= 0)?
??{
??description=description.substring(0,j)+" "+description.substring(j+1);//替換
??}
}
?
4.對于不支持cookies的瀏覽器,要用encodeURL或encodeRedirectedURL()來支持URL重寫。
比如:<a href="answer.jsp?answer=haha">answer</a>要改為
<%?String?code = response.encodeURL("answer.jsp?answer=haha");?%>
<a href="answer.jsp?answer=haha">answer</a>
?
5.JSP實現(xiàn)瀏覽器關閉cookies情況下的會話管理
??? 通常,會話管理是通過服務器將SessionID作為一個cookie存儲在用戶的Web瀏覽器中來唯一標識每個用戶會話。如果瀏覽器不支持cookies,或者將瀏覽器設置為不接受cookies,我們可以通過URL重寫來實現(xiàn)會話管理。
實質(zhì)上URL重寫是通過向URL連接添加參數(shù),并把sessionID作為值包含在連接中。然而,為使這生效,你需要為你的servlet響應部分的每個連接添加sessionID。
把sessionID加到一個連接可以使用一對方法來簡化:response.encodeURL()使URL包含sessionID,如果你需要使用重定向,可以使用response.encodeRedirectURL()來對URL進行編碼。
encodeURL()及encodeRedirectedURL()方法首先判斷cookies是否被瀏覽器支持;如果支持,則參數(shù)URL被原樣返回,sessionID將通過cookies來維持。
來看下面的例子,兩個JSP文件:hello1.jsp和hello2.jsp,及它們之間的影響。我們在hello1.jsp中簡單的創(chuàng)建一個會話,并在session中存儲一個對象實例。接著用戶可以點擊頁面的連接到達hello2.jsp。在hello2.jsp中,我們從session中獲取原先放置的對象并顯示它的內(nèi)容。注意,我們在hello1.jsp中調(diào)用了encodeURL()方法來獲得hello2.jsp的鏈接,使得在瀏覽器停用cookies的情況下,sessionID自動添加到URL,hello2.jsp仍能得到session對象。
首先在啟用cookies的情況下運行。然后關閉對cookie的支持,重啟瀏覽器,再運行一次。每次你都可以看到會話管理在起作用,并能在頁之間傳遞信息。
注意,如果你想讓這個例子能在關閉了cookies的瀏覽器中工作,你的JSP引擎必須支持URL重寫。
hello1.jsp
<%
Integer num=new Integer(100);
session.putValue("num",num);
String url=response.encodeURL("hello2.jsp");
%>
<a href='<%=url%>'>hello2.jsp</a>
?
hello2.jsp
<%
Integer i=(Integer)session.getValue("num");
out.println("Numvalueinsessionis"+i.intValue());
%>
6、首頁如何寫,例index.jsp
<%@ page language="java" pageEncoding="UTF-8"%>
<%
?response.sendRedirect("home.do");//表示直接轉(zhuǎn)到action
%>
<!--
?web.xml中要:
<welcome-file-list>
??? <welcome-file>index.jsp</welcome-file>
? </welcome-file-list>
因為web.xml不能用***.do形式,所以要新建一個index.jsp來轉(zhuǎn)到想去的action。
-->
7、
<%@ page contentType="text/html;charset=UTF-8"%>定義了jsp字符和頁面響應的MIME類型,即生成的servlet如何相應http請求,此設置表示返回UTF-8編碼的HTML文件。
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>定義了腳本語言只能是java和jsp的頁面的字符編碼,即定義了腳本語言的種類和jsp頁面的編碼方式。
posted on 2006-07-02 11:25
保爾任 閱讀(351)
評論(0) 編輯 收藏