锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 瑙e喅鍔炴硶錛?br />鍔炴硶涓錛?br />鐩爣錛氬疄鐜板鏍囩涓櫥褰曞涓敤鎴瘋(gè)屼簰涓嶅獎(jiǎng)鍝嶃?br />鎬濊礬錛氬皢鐢ㄦ埛鐧誨綍淇℃伅錛屾瘮濡傜敤鎴風(fēng)紪鍙楓佺櫥褰昳p絳夊皝瑁呭埌涓涓璞★紝鐒跺悗浠ヤ竴涓敮涓鍊鹼紙姣斿鐧誨綍鏃墮棿錛変負(fù)key鏀懼叆HashMap錛屽啀灝咹ashMap鏀懼叆session銆?br />棣栧厛action涓璦ttribute鐨勫悕瀛椾笉鑳介噸澶嶃?/p>
褰撶櫥褰曟垚鍔燂紝榪涘叆main.jsp欏甸潰鏃訛紝棣栧厛鏍規(guī)嵁sessionId鑾峰緱checkVal騫跺瓨鍏ヤ竴涓〉闈㈢駭鐨勫彉閲忋備笅闈㈠氨寮濮嬪垽鏂簡錛屾瘡嬈℃爣絳鵑〉鑾峰緱鐒︾偣鏃訛紙window.onfocus錛夊氨灝嗛〉闈腑鐨勫彉閲忎笌鍚庡彴鏍規(guī)嵁sessionId浠巆heckMap涓緱鍒扮殑checkVal榪涜姣旇緝錛屽鏋滀笉鎯沖悓錛岃鏄庤欏甸潰宸茬粡澶辨晥錛屾彁紺轟俊鎭茍鍏抽棴璇ラ〉闈€?br />浣嗘槸浠嶆湁涓涓棶棰橈紝window.onfocus涓嶇煡閬撲負(fù)浠涔堝湪欏甸潰鑾峰緱鐒︾偣鏃朵細(xì)鎵ц寰堝嬈? 絎竴姝ワ細(xì)緙栬緫濂絯ord妯$増錛岀劧鍚庡彟瀛樹負(fù)*.htm錛屾瘮濡傦細(xì)liukun.htm銆?br />鎶宸э細(xì)鍦ㄩ渶瑕佸~鍐欐暟鎹殑鍦版柟鏈濂介濉叆涓浜涙槗璇嗗埆鐨勬暟鎹紝榪欐牱鏂逛究鍚庨潰濉啓jsp浠g爜銆?br />絎簩姝ワ細(xì)鎶奾tm鍚庣紑鏀逛負(fù)jsp錛屾瘮濡傦細(xì)liukun.jsp銆?br />絎笁姝ワ細(xì)娣誨姞jsp鐨勫ご錛屾瘮濡傦細(xì) 鍙渶瑕佸湪jsp鐨勬渶涓婇潰鍔犱笂涓鍙ヨ瘽 灝卞彲浠ュ皢緗戦〉鐨勫唴瀹瑰鍑轟負(fù)Excel銆?br />鐩墠緇欏嚭鐨勪緥瀛愪負(fù)浜嗘柟渚胯搗瑙侊紝灝辨槸浣跨敤浜嗙函綺圭殑闈欐侀〉闈紝涓涓猼able鍏朵腑鏈変竴琛屾槸鏍囬錛屼竴琛屾槸鍐呭錛屼絾鏄疄闄呬嬌鐢ㄤ腑涓嶅彲鑳借繖涔堢畝鍗曪紝閮芥槸淇濇寔闈欐佺殑鍐呭錛屽鏋滈渶瑕佷繚瀛樼殑鍐呭鏄粠鏁版嵁搴撲腑鍙栧嚭錛屽垯鍙渶瑕佸驚鐜亶鍘嗗彇鍑虹殑鍐呭錛屾坊鍔犺灝辮浜嗭紝鍋囧浠庢暟鎹簱涓彇鍑虹殑鏁版嵁瀛樺叆UserList涓紝鍙互浣跨敤struts鏍囩榪涜閬嶅巻濡備笅錛?/p>
涓嬮潰鏄畬鏁寸殑渚嬪瓙錛屾柊寤轟竴涓猧ndex.jsp錛岄噷闈㈠彧闇瑕佷竴涓秴閾炬帴<a href = 'DownLoadExcel.jsp'>瀵煎嚭Excel</a> Counter.jsp鏂囦歡 娉ㄦ剰錛氬湪緗戠珯鏍圭洰褰曚笅寤虹珛涓涓猚ount.txt鏂囦歡錛屽垵濮嬫暟瀛椾負(fù)0 銆?/p>
淇敼涔嬪悗閲嶆柊鍚姩鏈嶅姟鍣紝灝辮兘璇誨彇鍒拌鏂囦歡浜嗐?
<%
SmartUpload mySmartUpload =new SmartUpload();
long file_size_max=4000000;
String fileName2="",ext="",testvar="";
String url="uploadfile/images/"; //搴斾繚璇佸湪鏍圭洰褰曚腑鏈夋鐩綍鐨勫瓨鍦?br />//鍒濆鍖?/span>
mySmartUpload.initialize(pageContext);
//鍙厑璁鎬笂杞芥綾繪枃浠?/span>
try {
mySmartUpload.setAllowedFilesList("jpg,gif");
//涓婅澆鏂囦歡
mySmartUpload.upload();
} catch (Exception e){
%>
<SCRIPT language=javascript>
alert("鍙厑璁鎬笂浼?jpg鍜?gif綾誨瀷鍥劇墖鏂囦歡");
window.location='upfile.jsp';
</script>
<%
}
try{
com.jspsmart.upload.File myFile = mySmartUpload.getFiles().getFile(0);
if (myFile.isMissing()){%>
<SCRIPT language=javascript>
alert("璇峰厛閫夋嫨瑕佷笂浼犵殑鏂囦歡");
window.location='upfile.jsp';
</script>
<%}
else{
//String myFileName=myFile.getFileName(); //鍙栧緱涓婅澆鐨勬枃浠剁殑鏂囦歡鍚?/span>
ext= myFile.getFileExt(); //鍙栧緱鍚庣紑鍚?/span>
int file_size=myFile.getSize(); //鍙栧緱鏂囦歡鐨勫ぇ灝?nbsp;
String saveurl="";
if(file_size<file_size_max){
//鏇存敼鏂囦歡鍚嶏紝鍙栧緱褰撳墠涓婁紶鏃墮棿鐨勬縐掓暟鍊?/span>
Calendar calendar = Calendar.getInstance();
String filename = String.valueOf(calendar.getTimeInMillis());
saveurl=request.getRealPath("/")+url;
saveurl+=filename+"."+ext; //淇濆瓨璺緞
myFile.saveAs(saveurl,mySmartUpload.SAVE_PHYSICAL);
//out.print(filename);
//-----------------------涓婁紶瀹屾垚錛屽紑濮嬬敓鎴愮緝鐣ュ浘-------------------------
java.io.File file = new java.io.File(saveurl); //璇誨叆鍒氭墠涓婁紶鐨勬枃浠?/span>
String newurl=request.getRealPath("/")+url+filename+"_min."+ext; //鏂扮殑緙╃暐鍥句繚瀛樺湴鍧
Image src = javax.imageio.ImageIO.read(file); //鏋勯營mage瀵硅薄
float tagsize=200;
int old_w=src.getWidth(null); //寰楀埌婧愬浘瀹?/span>
int old_h=src.getHeight(null);
int new_w=0;
int new_h=0; //寰楀埌婧愬浘闀?/span>
int tempsize;
float tempdouble;
if(old_w>old_h){
tempdouble=old_w/tagsize;
}else{
tempdouble=old_h/tagsize;
}
new_w=Math.round(old_w/tempdouble);
new_h=Math.round(old_h/tempdouble);//璁$畻鏂板浘闀垮
BufferedImage tag = new BufferedImage(new_w,new_h,BufferedImage.TYPE_INT_RGB);
tag.getGraphics().drawImage(src,0,0,new_w,new_h,null); //緇樺埗緙╁皬鍚庣殑鍥?/span>
FileOutputStream newimage=new FileOutputStream(newurl); //杈撳嚭鍒版枃浠舵祦
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(newimage);
encoder.encode(tag); //榪慗PEG緙栫爜
newimage.close();
}
else{
out.print("<SCRIPT language='javascript'>");
out.print("alert('涓婁紶鏂囦歡澶у皬涓嶈兘瓚呰繃"+(file_size_max/1000)+"K');");
out.print("window.location='upfile.jsp;'");
out.print("</SCRIPT>");
}
}
}catch (Exception e){
e.toString();
}
%> 2銆乽pload.htm
<head>
<title>璇烽夋嫨涓婁紶鐨勫浘鐗?/span></title>
</head>
<body>
<table border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td height="45" align="center" valign="middle"><form action="uploadimage.jsp" method="post" enctype="multipart/form-data" name="form1">
璇烽夋嫨涓婁紶鐨勫浘鐗?br /> <input type="file" name="file">
<input type="submit" name="Submit" value="涓婁紶">
</form></td>
</tr>
</table>
</body>
</html>
]]>
]]>
]]>
Random random = new Random();
StringBuffer sid = new StringBuffer();
sid = sid.append(System.currentTimeMillis()); // 鍙栫郴緇熸椂闂?br />// 鍔犱笂10涓?-9闅忔満鏁扮‘淇漵id涓嶉噸澶?/span>
for (int i = 0; i < 10; i++) {
sid = sid.append(random.nextInt(10));
}
// 鎶婃墍鏈夐渶瑕佹斁榪泂ession鐨刟ttribute鏀捐繘涓涓狹apbar<String, Object>
// 涓鏄究浜巈l涓彇鍊箋佷簩鏄究浜庣粺涓綆$悊
Map sessionMap = new HashMap();
sessionMap.put("session_urname", urname);
session.setAttribute(sid.toString(), sessionMap);
String rd = "detail.jsp?sid=" + sid.toString();
request.getRequestDispatcher(rd).forward(request, response);
session.setAttribute("pwd" + sid.toString(), urpassword);
鐩爣錛氶鑰屾眰鍏舵錛屾墦寮鏂版爣絳鵑〉榪涜鐧誨綍錛屽啀鍒囨崲鍒版棫鏍囩欏墊椂錛屾彁紺洪〉闈㈠凡澶辨晥銆傚鏋滄墦寮鏂版爣絳鵑〉錛屽湴鍧鏍忎腑鐩存帴杈撳叆涓婚〉闈㈠湴鍧錛屽垯浠ュ悓涓鐢ㄦ埛榪涜鐧誨綍銆?涓爣絳鵑〉鐨勫唴瀹歸兘鏈夋晥銆?br />鎬濊礬錛氭湇鍔″櫒鍦ㄥ垱寤簊ession鏃朵細(xì)涓烘瘡涓猻ession鍒嗛厤涓涓敮涓鐨剆essionId錛屽洜姝ゆ垜浠彲浠ユ牴鎹畠鏉ユ兂鍔炴硶銆傞鍏堝畾涔変竴涓猵ublic static 綾誨瀷鐨凥ashMap:checkMap銆傚亣璁炬垜鐨勭櫥褰曢〉闈負(fù)login.jsp錛屼富欏甸潰涓簃ain.jsp銆傚悗鍙版墽琛岀櫥褰曟鏌ョ殑鏂規(guī)硶涓篶heckLogin()銆傚綋鎵ц鐧誨綍媯(gè)鏌ョ殑鏃跺欙細(xì)
String sessionId = session.getId;
//鏍囩ず欏甸潰鏄惁鏈夋晥鐨勫?/span>
int checkVal;
if(checkMap.containsKey(sessionId)) {
checkVal = (Integer)checkMap.get(sessionId) + 1;
} else {
checkVal = 1;
}
checkMap.put(sessionId,checkVal);
]]>
<%@page contentType="application/msword;charset=GBK"%>
濡傛灉鏈塱mport錛屼篃瑕佸湪榪欓噷瀵煎叆銆?br />鎶宸э細(xì)application/msword;榪欎釜鍙傛暟寰堥噸瑕侊紝鏈変簡榪欎釜鍙傛暟錛岃皟鐢ㄨ繖涓〉闈㈡椂錛屽氨浼?xì)鎶姍宓闈㈠唴瀹瑰瓨湄?fù)word銆傚綋鐒?dòng)灱屾湰鍦板繀椤诲畨瑁卭ffice銆?br />
瀵煎嚭Excel鏂囨。
<%
response.reset();
response.setContentType("application/vnd.ms-excel;charset=GBK");
%>
<tr>
<td class=formtitle colspan="4"><CENTER> 娓呭崟</CENTER> </td>
</tr>
<tr>
<td class=formtitle align="center" nowrap style="width:13%">濮撳悕</td>
<td class=formtitle align="center" nowrap style="width:13%">騫撮緞</td>
<td class=formtitle align="center" nowrap style="width:13%">鎬у埆</td>
<td class=formtitle align="center" nowrap style="width:13%">浣忓潃</td>
</tr>
<logic:present name="UserList">
<logic:iterate id="user" name="UserList">
<tr>
<td align="center" nowrap style="width:13%">
<bean:write name = "user",property="name"/>
</td>
<td align="center" nowrap style="width:13%">
<bean:write name = "user",property="age"/>
</td>
<td align="center" nowrap style="width:13%">
<bean:write name = "user",property="sex"/>
</td>
<td align="center" nowrap style="width:13%">
<bean:write name = "user",property="address"/>
</td>
</tr>
</logic:iterate>
</logic:present>
</table>
鍐嶆柊寤轟竴涓狣ownLoadExcel.jsp錛屽唴瀹瑰涓嬶細(xì)
response.reset();
response.setContentType("application/vnd.ms-excel;charset=GBK");
%>
<html>
<head>
<title>鍒峰崱娑堣垂鎯呭喌</title>
<style type="text/css">
table.common1 {
width: 100%;
font-size: 9pt;
style-align: center;
background-color: #ffffff;
}
td.formtitle {
font-size: 9pt;
background:#a480b2;
color:#ffffff;
height:30px;
text-align: center;
}
</style>
</head>
<body>
<form name="fm" method="post" >
<table class="common1" cellpadding="5" cellspacing="1" align="center" >
<tr>
<td class=formtitle colspan="4"><CENTER> 娓呭崟</CENTER> </td>
</tr>
<tr>
<td class=formtitle align="center" nowrap style="width:13%">濮撳悕</td>
<td class=formtitle align="center" nowrap style="width:13%">騫撮緞</td>
<td class=formtitle align="center" nowrap style="width:13%">鎬у埆</td>
<td class=formtitle align="center" nowrap style="width:13%">瀹跺涵浣忓潃</td>
</tr>
<tr>
<td align="center" nowrap style="width:13%">寮犱笁</td>
<td align="center" nowrap style="width:13%">25</td>
<td align="center" nowrap style="width:13%">鐢?/span></td>
<td align="center" nowrap style="width:13%">鍖椾含涓叧鏉?/span></td>
</tr>
</table>
</form>
</body>
</html>
]]>
import java.io.*;
public class Counter extends Object {
private String currentRecord = null;// 淇濆瓨鏂囨湰鐨勫彉閲?/span>
private BufferedReader file; // BufferedReader瀵硅薄錛岀敤浜庤鍙栨枃浠舵暟鎹?/span>
private String path;// 鏂囦歡瀹屾暣璺緞鍚?/span>
public Counter() {
}
// ReadFile鏂規(guī)硶鐢ㄦ潵璇誨彇鏂囦歡filePath涓殑鏁版嵁錛屽茍榪斿洖榪欎釜鏁版嵁
public String ReadFile(String filePath) throws FileNotFoundException {
path = filePath;
// 鍒涘緩鏂扮殑BufferedReader瀵硅薄
file = new BufferedReader(new FileReader(path));
String returnStr = null;
try {
// 璇誨彇涓琛屾暟鎹茍淇濆瓨鍒癱urrentRecord鍙橀噺涓?/span>
currentRecord = file.readLine();
} catch (IOException e) {// 閿欒澶勭悊
System.out.println("璇誨彇鏁版嵁閿欒.");
}
if (currentRecord == null)
// 濡傛灉鏂囦歡涓虹┖
returnStr = "娌℃湁浠諱綍璁板綍";
else {// 鏂囦歡涓嶄負(fù)絀?/span>
returnStr = currentRecord;
}
// 榪斿洖璇誨彇鏂囦歡鐨勬暟鎹?/span>
return returnStr;
}
// ReadFile鏂規(guī)硶鐢ㄦ潵灝嗘暟鎹甤ounter+1鍚庡啓鍏ュ埌鏂囨湰鏂囦歡filePath涓?br /> // 浠ュ疄鐜拌鏁板闀跨殑鍔熻兘
public void WriteFile(String filePath, String counter)
throws FileNotFoundException {
path = filePath;
// 灝哻ounter杞崲涓篿nt綾誨瀷騫跺姞涓
int Writestr = Integer.parseInt(counter) + 1;
try {
// 鍒涘緩PrintWriter瀵硅薄錛岀敤浜庡啓鍏ユ暟鎹埌鏂囦歡涓?/span>
PrintWriter pw = new PrintWriter(new FileOutputStream(filePath));
// 鐢ㄦ枃鏈牸寮忔墦鍗版暣鏁癢ritestr
pw.println(Writestr);
// 娓呴櫎PrintWriter瀵硅薄
pw.close();
} catch (IOException e) {
//閿欒澶勭悊
System.out.println("鍐欏叆鏂囦歡閿欒" + e.getMessage());
}
}
}
<%
//璋冪敤counter瀵硅薄鐨凴eadFile鏂規(guī)硶鏉ヨ鍙栨枃浠禼ount.txt涓殑璁℃暟
String url = request.getRealPath("count.txt");
String count = counter.ReadFile(url);
//璋冪敤counter瀵硅薄鐨凴eadFile鏂規(guī)硶鏉ュ皢璁℃暟鍣ㄥ姞涓鍚庡啓鍏ュ埌鏂囦歡count.txt涓?/span>
if (session.isNew())
counter.WriteFile(url, count);
%>
鎮(zhèn)ㄦ槸絎?/span><font color="red"> <%=count%> </font>浣嶈闂?br />
]]>
瑙e喅鏂規(guī)濡備笅錛?br />錛?錛夊鏋滈噰鐢╦dbc-odbc椹卞姩錛岄偅涔堝氨蹇呴』鎸夌収鏌ヨ欏哄簭鏉ヤ竴嬈¤鍙栵紙涓嶈鏈夋病鏈塱mage鎴杢ext綾誨瀷錛夈?br />錛?錛夊鏋滈噰鐢ㄥ井杞彁渚涚殑ms sql server jdbc driver錛屽鏋滄煡璇㈣鍙ヤ腑錛屼笉瀛樺湪image鎴杢ext綾誨瀷瀛楁錛岄偅涔堝彲浠ユ寜鐓ф棤搴忚幏鍙栥?br />錛?錛夊鏋滈噰鐢ㄥ井杞彁渚涚殑ms sql server jdbc driver錛屽鏋滄煡璇㈣鍙ヤ腑錛屽瓨鍦╥mage鎴杢ext綾誨瀷瀛楁錛岄偅涔堝氨蹇呴』鎸夌収欏哄簭璇誨彇錛屽惁鍒欏氨浼?xì)鎶ュ憡Driver]ResultSet can not re-read row data for column涔嬬被鐨勯敊璇?br />錛?錛夊鏋滄兂涓嶆煡璇㈣鍙ヤ腑鏈夋病鏈塱mage鎴杢ext綾誨瀷瀛楁錛岄兘鍙互涓嶆寜鐓ч『搴忚幏鍙栵紝鎴栭噸澶嶈幏鍙栥傞偅涔堝氨蹇呴』鏇存崲椹卞姩錛屾敼鐢ㄧ涓夋柟鐨勩?
SQL Server 2000 :Underlying input stream returned zero bytes
瑙e喅鍔炴硶錛?br />1銆佸皢Text綾誨瀷鐨勫瓧孌靛鍔犻粯璁ゅ?"
2銆佸湪JavaBean涓鍔犲鐞嗭紝紜繚鍦═ext綾誨瀷鐨勫瓧孌典腑涓嶄細(xì)淇濆瓨Null鍊?
濡備綍鑳藉璁塊棶WEB-INF鏂囦歡澶逛笅鐨勯〉闈?br />鍦╓EB-INF涓嬩細(xì)鏈変竴涓獁eb.xml鏂囦歡錛屾鏂囦歡鏄睘浜庢暣涓獁eb绔欑偣鐨勯厤緗枃浠訛紝鍙渶瑕佸湪姝ら厤緗氨鍙互浜嗐?br />WEB-INF閲岄潰闇瑕佽闂殑鏂囦歡涓簂ogin.jsp錛屾墦寮web.xml 鍦?lt;/web-app>涓婇潰鍔犲叆涓涓嬩唬鐮侊細(xì)
<servlet-name>xyy</servlet-name> -->姝よ鐨剎yy鏄敤浜庢爣璇嗙殑鍜屼笅闈㈢殑涓鑷?br /> <jsp-file>/WEB-INF/login.jsp</jsp-file> -->闇瑕佽闂殑欏甸潰鐨勮礬寰?br /></servlet>
<servlet-mapping>
<servlet-name>xyy</servlet-name> -->姝よ鐨剎yy鏄敤浜庢爣璇嗙殑鍜屼笂闈㈢殑涓鑷?br /> <url-pattern>/login</url-pattern> ---->姝よ鐨?login鏃舵槸闇瑕佽闂殑欏甸潰鐨勬槧灝勫悕縐?br /></servlet-mapping>
璇誨彇鏁版嵁搴撳畬鏁存棩鏈熸椂闂?/strong>
ClientAbortException 寮傚父瑙e喅鍔炴硶
ClientAbortException Caused by: java.net.SocketException: Connection reset by peer: socket write error 鐨勫師鍥犳槸鐢變簬澶勭悊http榪炴帴鏃訛紝姝e湪杈撳嚭鍐呭鏃訛紝鐢ㄦ埛鍏抽棴浜咺E錛屼細(xì)鍑虹幇涓涓?ClientAbortException"錛屽睘浜嶪/O澶勭悊涓嚭鐜扮殑涓涓紓甯革紝搴旂敤鏈嶅姟鍣ㄥ簲璇ヤ細(xì)鎹曟崏銆?
Connection reset by peer鐨勫師鍥狅細(xì)
緇忓父鍑虹幇鐨凜onnection reset by peer: 鍘熷洜鍙兘鏄鏂歸潰鐨勶紝涓嶈繃鏇村父瑙佺殑鍘熷洜鏄細(xì)
①錛氭湇鍔″櫒鐨勫茍鍙戣繛鎺ユ暟瓚呰繃浜嗗叾鎵胯澆閲忥紝鏈嶅姟鍣ㄤ細(xì)灝嗗叾涓竴浜涜繛鎺own鎺夛紱
②錛氬鎴峰叧鎺変簡嫻忚鍣紝鑰屾湇鍔″櫒榪樺湪緇欏鎴風(fēng)鍙戦佹暟鎹紱
③錛氭祻瑙堝櫒绔寜浜哠top
寰堝浜洪兘璇存槸瀹㈡埛绔犳垚鐨勶紝娌℃湁鍔炴硶鎺у埗錛岃屼笖鍚庡彴浼?xì)璁板綍杩欎釜寮傚父锛屾棩蹇椾篃浼?xì)鐤媯鐖嗘弧錛屾椂闂撮暱浜?鑲畾浼?xì)DOWN鎺夌殑銆?br />濡傛灉鏄師鍥?#9312;錛岃屼笖璇ュ紓甯哥殑鏃ュ織綰у埆涓簑arn錛屼笉褰卞搷姝e父榪愯錛屽彧瑕佹彁楂樻湇鍔″櫒鐨勬棩蹇楃駭鍒嵆鍙?
Character decoding failed. Parameter skipped.java.io.CharConversionException: isHexDigit.
escapse鍦ㄤ腑鏂囩紪鐮佹椂浼?xì)鍑虹幇鐨勯棶棰樸?br />瑙e喅鏂規(guī)硶錛?br />瀹㈡埛绔紶鍊?br />
url=encodeURI(url);
name = java.net.URLDecoder.decode(name,"UTF-8");
]]>
pageEncoding="UTF-8"%>鍜?lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8">緙栫爜涓篣TF-8錛?/font>
浜屻乸ost鏂瑰紡
閰嶇疆瀛楃榪囨護(hù)鍣?/p>
package com.util.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
/**
* 閲囩敤Filter緇熶竴璁劇疆澶勭悊瀛楃闆?nbsp;
* @author songfeng
* @version 1.0
* Apr 1, 2010
*/
public class CharsetEncodingFilter implements Filter {
private String encoding = "UTF-8";
public void destroy() {
}
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse,
FilterChain filterChain) throws IOException, ServletException {
servletRequest.setCharacterEncoding(this.encoding);
filterChain.doFilter(servletRequest, servletResponse);
}
public void init(FilterConfig filterConfig) throws ServletException {
this.encoding = filterConfig.getInitParameter("encoding");
}
}
閰嶇疆web.xml
涓夈乬et鏂規(guī)硶
1銆侀厤緗畉omcat涓璼erver.xml
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" disableUploadTimeout="true" URIEncoding="UTF-8"/>
2銆佸湪瑕佷紶閫掑弬鏁扮殑鏃跺欒繘琛岃漿鐮侊紙濡備笉杞爜濂囨暟涓枃瀛楃鏈鍚庝竴涓瓧絎︿貢鐮侊級(jí)
錛?錛塉SP浼犲兼柟寮忥細(xì)
璺寵漿欏碉細(xì)
<a href=info.jsp?info="<%= java.net.URLEncoder.encode("涓枃姹夊瓧","GBK") %>">璺寵漿</a>
鎺ユ敹欏?br /><%
String info_str = new String(request.getParameter("info"),"ISO8859-1");
out.print(info_str); //杈撳嚭鎺ユ敹鍊?br />%>
錛?錛塉S浼犲兼柟寮忥細(xì)
鍏堢敤encodeURI()榪涜緙栫爜
var p = "浣犲ソ鍚楋紵";
var url = "aaa.jsp?param=" + encodeURI(p);
鐒跺悗鍦ㄦ湇鍔″櫒绔瑙g爜
<%
String param = request.getParameter("p");
param = new String(param.getBytes("ISO-8859-1"),"UTF-8");
%>
鍥涖乤jax涔辯爜
鍦ㄨ浼犻掍腑鏂囧弬鏁扮殑js涓漿鐮侊細(xì)encodeURIComponent(“×××”)
鏂規(guī)硶錛?br />
1. void clear() ;
娓呴櫎杈撳嚭緙撳啿鍖虹殑鍐呭錛屼絾鏄笉杈撳嚭鍒板鎴風(fēng)銆?/font>
2. void clearBuffer() ;
娓呴櫎杈撳嚭緙撳啿鍖虹殑鍐呭錛屽茍杈撳嚭鍒板鎴風(fēng)銆?/font>
3. void close() ;
鍏抽棴杈撳嚭嫻侊紝娓呴櫎鎵鏈夊唴瀹廣?/font>
4. void flush() ;
杈撳嚭緙撳啿鍖洪噷闈㈢殑鏁版嵁銆?/font>
5. int getBufferSize() ;
鑾峰彇浠b涓哄崟浣嶇殑鐩墠緙撳啿鍖哄ぇ灝忋?/font>
6. int getRemaining() ;
鑾峰彇浠b涓哄崟浣嶇殑緙撳啿鍖轟腑鏈鍗犵敤鐨勭┖闂村ぇ灝忋?/font>
7. boolean isAutoFlush() ;
鏄惁鑷姩鍒鋒柊緙撳啿鍖恒?/font>
8. void newLine() ;
杈撳嚭涓涓崲琛屽瓧絎︺?/font>
9. void print( boolean b ) ;
void print( char c ) ;
void print( char[] s ) ;
void print( double d ) ;
void print( float f ) ;
void print( int i ) ;
void print( long l ) ;
void print( Object obj ) ;
void print( String s ) ;
灝嗘寚瀹氱被鍨嬬殑鏁版嵁杈撳嚭鍒癏ttp嫻侊紝涓嶆崲琛屻?/font>
10. void println( boolean b ) ;
void println( char c ) ;
void println( char[] s ) ;
void println( double d ) ;
void println( float f ) ;
void println( int i ) ;
void println( long l ) ;
void println( Object obj ) ;
void println( String s ) ;
灝嗘寚瀹氱被鍨嬬殑鏁版嵁杈撳嚭鍒癏ttp嫻侊紝騫惰緭鍑轟竴涓崲琛岀銆?br />
11. Appendable append( char c ) ;
Appendable append( CharSequence cxq, int start, int end ) ;
Appendable append( CharSequence cxq ) ;
灝嗕竴涓瓧絎︽垨鑰呭疄鐜頒簡CharSequence鎺ュ彛鐨勫璞℃坊鍔犲埌杈撳嚭嫻佺殑鍚庨潰銆?/font>
鎴愬憳錛?br /> int DEFAULT_BUFFER = 0 - 緙虹渷緙撳啿鍖哄ぇ灝?br /> int NO_BUFFER = -1 - writer鏄惁澶勪簬緙撳啿杈撳嚭鐘舵?br /> int UNBOUNDED_BUFFER = -2 - 鏄惁闄愬埗緙撳啿鍖哄ぇ灝?/font>
鈶?request - javax.servlet.http.HttpServletRequest
request瀵硅薄鍖呭惈鎵鏈夎姹傜殑淇℃伅錛屽璇鋒眰鐨勬潵婧愩佹爣澶淬乧ookies鍜岃姹傜浉鍏崇殑鍙傛暟鍊肩瓑銆?/font>
鏂規(guī)硶錛?br />
1. Object getAttribute( String name ) ;
榪斿洖鐢眓ame鎸囧畾鐨勫睘鎬у鹼紝璇ュ睘鎬т笉瀛樺湪鏃惰繑鍥瀗ull銆?/font>
2. Enumeration getAttributeNames() ;
榪斿洖request瀵硅薄鐨勬墍鏈夊睘鎬у悕縐扮殑闆嗗悎銆?/font>
3. String getAuthType() ;
榪斿洖鐢ㄦ潵淇濇姢servlet鐨勮璇佹柟娉曠殑鍚嶇О錛屾湭鍙椾繚鎶ゆ椂榪斿洖null銆?/font>
4. String getCharacterEncoding() ;
榪斿洖璇鋒眰涓殑瀛楃緙栫爜鏂規(guī)硶錛屽彲浠ュ湪response瀵硅薄涓緗?/font>
5. int getContentLength() ;
榪斿洖璇鋒眰鐨凚ODY鐨勯暱搴︼紝涓嶈兘紜畾闀垮害鏃惰繑鍥?1銆傚彲浠ュ湪response涓緗?/font>
6. String getContentType() ;
榪斿洖鍦╮esponse涓畾涔夌殑鍐呭綾誨瀷銆?/font>
7. String getContentPath() ;
榪斿洖璇鋒眰鐨勮礬寰勩?/font>
8. Cookie[] getCookies() ;
榪斿洖瀹㈡埛绔墍鏈夌殑Cookie鐨勬暟緇勩?/font>
9. Enumeration getHeaderNames() ;
榪斿洖鎵鏈塇TTP澶寸殑鍚嶇О鐨勯泦鍚堛?/font>
10. Enumeration getHeaders( String name ) ;
榪斿洖鎸囧畾HTTP澶寸殑鎵鏈夊肩殑闆嗗悎銆?/font>
11. String getHeader( String name ) ;
榪斿洖鎸囧畾鍚嶇О鐨凥TTP澶寸殑淇℃伅銆?/font>
12. long getDateHeader( String name ) ;
榪斿洖鎸囧畾鍚嶇О鐨凞ata綾誨瀷鐨凥TTP澶寸殑淇℃伅銆?/font>
13. int getIntHeader( String name ) ;
榪斿洖鎸囧畾鍚嶇О鐨処nt綾誨瀷鐨凥TTP澶寸殑淇℃伅銆?/font>
14. ServletInputStream getInputStream() ;
榪斿洖璇鋒眰鐨勮緭鍏ユ祦銆?/font>
15. Locale getLocale() ;
榪斿洖褰撳墠欏電殑Locale瀵硅薄錛屽彲浠ュ湪response涓瀹氥?/font>
16. Enumeration getLocales() ;
榪斿洖璇鋒眰涓墍鏈夌殑Locale瀵硅薄鐨勯泦鍚堛?/font>
17. String getLocalName() ;
鑾峰彇鍝嶅簲璇鋒眰鐨勬湇鍔″櫒绔富鏈哄悕銆?/font>
18. String getLocalAddr() ;
鑾峰彇鍝嶅簲璇鋒眰鐨勬湇鍔″櫒绔湴鍧銆?/font>
19. int getLocalPort() ;
鑾峰彇鍝嶅簲璇鋒眰鐨勬湇鍔″櫒绔鍙?/font>
20. String getMethod() ;
鑾峰彇瀹㈡埛绔悜鏈嶅姟鍣ㄧ鍙戦佽姹傜殑鏂規(guī)硶(GET銆丳OST)銆?/font>
21. String getParameter( String name ) ;
鑾峰彇瀹㈡埛绔彂閫佺粰鏈嶅姟鍣ㄧ鐨勫弬鏁板箋?/font>
22. Map getParameterMap() ;
璇ユ柟娉曡繑鍥炲寘鍚姹備腑鎵鏈夊弬鏁扮殑涓涓狹ap瀵硅薄銆?/font>
23. Enumeration getParameterNames() ;
榪斿洖璇鋒眰涓墍鏈夊弬鏁扮殑闆嗗悎銆?/font>
24. String[] getParameterValues( String name ) ;
鑾峰緱璇鋒眰涓寚瀹氬弬鏁扮殑鎵鏈夊箋?/font>
25. String getQueryString() ;
榪斿洖get鏂規(guī)硶浼犻掔殑鍙傛暟瀛楃涓詫紝璇ユ柟娉曚笉鍒嗚В鍑哄崟鐙殑鍙傛暟銆?/font>
26. String getPathInfo() ;
鍙栧嚭璇鋒眰涓浜嶴ervletPath鍜孮ueryString涔嬮棿鐨勯澶栦俊鎭?/font>
27. String getPathTranslated() ;
榪斿洖鐢╣etPathInfo()鏂規(guī)硶鍙栧緱鐨勮礬寰勪俊鎭殑瀹為檯璺緞銆?/font>
28. String getProtocol() ;
榪斿洖璇鋒眰浣跨敤鐨勫崗璁傚彲浠ユ槸HTTP1.1鎴栬匟TTP1.0銆?/font>
29. BufferedReader getReader() ;
榪斿洖璇鋒眰鐨勮緭鍏ユ祦瀵瑰簲鐨凴eader瀵硅薄錛岃鏂規(guī)硶鍜実etInputStream()鏂規(guī)硶鍦ㄤ竴涓〉闈腑鍙兘璋冪敤涓涓?/font>
30. String getRemoteAddr() ;
鑾峰彇鍙戝嚭璇鋒眰鐨勫鎴風(fēng)IP鍦板潃銆?/font>
31. String getRemoteHost() ;
鑾峰彇鍙戝嚭璇鋒眰鐨勫鎴風(fēng)涓繪満鍚?/font>
32. String getRemoteUser() ;
榪斿洖緇忚繃瀹㈡埛绔獙璇佺殑鐢ㄦ埛鍚嶏紝鏈粡楠岃瘉榪斿洖null銆?/font>
33. int getRemotePort() ;
榪斿洖鍙戝嚭璇鋒眰鐨勫鎴風(fēng)涓繪満绔彛銆?/font>
34. String getRealPath( String path ) ;
榪斿洖緇欏畾铏氭嫙璺緞鐨勭墿鐞嗚礬寰勩?/font>
35. RequestDispatcher getRequestDispatcher( String path ) ;
鎸夌粰瀹氱殑璺緞鐢熸垚璧勬簮杞悜澶勭悊閫傞厤鍣ㄥ璞°?/font>
36. String getRequestedSessionId() ;
榪斿洖璇鋒眰鐨剆ession鐨勬爣璇嗐?/font>
37. String RequestURI() ;
榪斿洖鍙戝嚭璇鋒眰鐨勫鎴風(fēng)鍦板潃錛屼絾鏄笉鍖呮嫭璇鋒眰鐨勫弬鏁板瓧絎︿覆銆?/font>
38. StringBuffer getRequestURI() ;
榪斿洖鍝嶅簲璇鋒眰鐨勬湇鍔″櫒绔湴鍧
39. String getScheme() ;
鑾峰彇鍗忚鍚嶇О錛岀己鐪佸間負(fù)HTTP鍗忚銆?/font>
40. String getServerName() ;
榪斿洖鍝嶅簲璇鋒眰鐨勬湇鍔″櫒鍚嶇О銆?/font>
41. String getServletPath() ;
鑾峰彇瀹㈡埛绔墍璇鋒眰鐨勮剼鏈枃浠剁殑鏂囦歡璺緞銆?/font>
42. int getServerPort() ;
鑾峰彇鍝嶅簲璇鋒眰鐨勬湇鍔″櫒绔富鏈虹鍙e彿銆?/font>
43. void removeAttribute( String name ) ;
鍦ㄥ睘鎬у垪琛ㄤ腑鍒犻櫎鎸囧畾鍚嶇О鐨勫睘鎬с?/font>
44. void setAttribute( String name, Object value ) ;
鍦ㄥ睘鎬у垪琛ㄤ腑娣誨姞/鍒犻櫎鎸囧畾鐨勫睘鎬с?/font>
45. void setCharacterEncoding( String name ) ;
璁劇疆璇鋒眰鐨勫瓧絎︾紪鐮佹牸寮忋?/font>
46. HttpSession getSession() ;
HttpSession getSession( boolean create ) ;
鑾峰彇session錛屽鏋渃reate涓簍rue錛屽湪鏃爏ession鐨勬儏鍐典笅鍒涘緩涓涓?br />
47. boolean isRequestedSessionIdFromCookie() ;
媯(gè)鏌ヨ姹傜殑浼?xì)璇滻D鏄惁涓洪氳繃Cookie浼犲叆銆?/font>
48. boolean isRequestedSessionIdFromURL() ;
媯(gè)鏌ヨ姹傜殑浼?xì)璇滻D鏄惁涓洪氳繃URL浼犲叆銆?/font>
49. boolean isRequestedSessionIdValid() ;
媯(gè)鏌ヨ姹傜殑浼?xì)璇滻D鏄惁浠嶇劧鏈夋晥銆?/font>
50. boolean isSecure() ;
媯(gè)鏌ヨ姹傛槸鍚︿嬌鐢ㄥ畨鍏ㄩ摼鎺ワ紝濡傛灉HTTPS絳夈?/font>
51. boolean isUserInRole( String role ) ;
媯(gè)鏌ュ凡緇忛氳繃楠岃瘉鐨勭敤鎴鋒槸鍚﹀湪鏄痳ole鎵鎸囧畾鐨勮鑹層?/font>
52. Principal getUserPrincipal() ;
榪斿洖鍖呭惈鐢ㄦ埛鐧婚檰鍚嶇殑涓涓猨ava.security.Principal瀵硅薄銆?/font>
鎴愬憳錛?br />
String BASIC_AUTH = "BASIC" -
String CLIENT_CERT_AUTH = "CLIENT_CERT" -
String DIGEST_AUTH = "DIGEST" -
String FORM_AUTH = "FORM" -
鈶?response - javax.servlet.http.HttpServletResponse
response瀵硅薄涓昏灝咼SP瀹瑰櫒澶勭悊鍚庣殑緇撴灉浼犲洖鍒板鎴風(fēng)銆?/font>
鏂規(guī)硶錛?br />
1. void addCookie( Cookie cookie ) ;
娣誨姞涓涓狢ookie瀵硅薄錛屼繚瀛樺鎴風(fēng)淇℃伅銆?/font>
2. void addDateHeader( String name, long value ) ;
娣誨姞涓涓棩鏈熺被鍨嬬殑HTTP澶翠俊鎭紝瑕嗙洊鍚屽悕鐨凥TTP澶翠俊鎭?/font>
3. void addHeader( String name, String value ) ;
娣誨姞涓涓狧TTP澶達(dá)紝瑕嗙洊鍚屽悕鐨勬棫HTTP澶淬?/font>
4. void addIntHeader( String name, int value ) ;
娣誨姞涓涓暣鍨嬬殑HTTP澶達(dá)紝瑕嗙洊鍚屽悕鐨勬棫HTTP澶淬?/font>
5. boolean containsHeader( String name ) ;
鍒ゆ柇鎸囧畾鐨凥TTP澶存槸鍚﹀瓨鍦ㄣ?/font>
6. String encodeRedirectURL( String url ) ;
瀵箂endRedirect()鏂規(guī)硶浣跨敤鐨刄RL榪涜緙栫爜銆?/font>
7. String encodeURL( String url ) ;
灝哢RL浜堜互緙栫爜錛屽洖浼犲寘鍚玸ession ID鐨刄RL銆?br />
8. void flushBuffer() ;
寮哄埗鎶婂綋鍓嶇紦鍐插尯鐨勫唴瀹瑰彂閫佸埌瀹㈡埛绔?/font>
9. int getBufferSize() ;
鍙栧緱浠b涓哄崟浣嶇殑緙撳啿鍖哄ぇ灝忋?/font>
10. String getCharacterEncoding() ;
鑾峰彇鍝嶅簲鐨勫瓧絎︾紪鐮佹牸寮忋?/font>
11. String getContentType() ;
鑾峰彇鍝嶅簲鐨勭被鍨嬨?/font>
12. Locale getLocale() ;
鑾峰彇鍝嶅簲鐨凩ocale瀵硅薄銆?/font>
13. ServletOutputStream getOutputStream() ;
榪斿洖瀹㈡埛绔殑杈撳嚭嫻佸璞°?/font>
14. PrintWriter getWriter() ;
鑾峰彇杈撳嚭嫻佸搴旂殑writer瀵硅薄銆?/font>
15. boolean isCommitted() ;
鍒ゆ柇鏈嶅姟鍣ㄧ鏄惁宸茬粡灝嗘暟鎹緭鍑哄埌瀹㈡埛绔?/font>
16. void reset() ;
娓呯┖buffer涓殑鎵鏈夊唴瀹廣?/font>
17. void resetBuffer() ;
鎯呭喌buffer涓墍鏈夌殑鍐呭錛屼絾鏄繚鐣橦TTP澶村拰鐘舵佷俊鎭?/font>
18. void sendError( int xc, String msg ) ;
void sendError( int xc ) ;
鍙戦侀敊璇紝鍖呮嫭鐘舵佺爜鍜岄敊璇俊鎭?/font>
19. void sendRedirect( String locationg ) ;
鎶婂搷搴斿彂閫佸埌鍙﹀涓涓綅緗繘琛屽鐞嗐?/font>
20. void setBufferSize( int size ) ;
璁劇疆浠b涓哄崟浣嶇殑緙撳啿鍖哄ぇ灝忋?/font>
21. void setCharacterEncoding( String charset ) ;
璁劇疆鍝嶅簲浣跨敤鐨勫瓧絎︾紪鐮佹牸寮忋?/font>
22. void setContentLength( int length ) ;
璁劇疆鍝嶅簲鐨凚ODY闀垮害銆?/font>
23. void setContentType( String type ) ;
璁劇疆鍝嶅簲鐨勭被鍨嬨?/font>
24. void setDateHeader( String name, long value ) ;
璁劇疆鎸囧畾鍚嶇О鐨凞ata綾誨瀷鐨凥TTP澶寸殑鍊箋?/font>
25. void setHeader( String name, String value ) ;
璁劇疆鎸囧畾鍚嶇О鐨凥TTP澶寸殑鍊箋?/font>
26. void setIntHeader( String name, int value ) ;
璁劇疆鎸囧畾鍚嶇О鐨刬nt綾誨瀷鐨凥TTP澶寸殑鍊箋?/font>
27. void setStatus( int xc ) ;
璁劇疆鍝嶅簲鐘舵佺爜錛屾柊鍊間細(xì)瑕嗙洊褰撳墠鍊箋?/font>
鎴愬憳(HTTP鐘舵佺爜)錛?br />
int SC_CONTINUE = 100 int SC_SWITCHING_PROTOCOLS = 101
int SC_OK = 200 int SC_NON_AUTHORITATIVE_INFORMATION = 203
int SC_ACCEPTED = 202 int SC_CREATED = 201
int SC_NO_CONTENT = 204 int SC_RESET_CONTENT = 205
int SC_PARTIAL_CONTENT = 206 int SC_MULTIPLE_CHOICES = 300
int SC_MOVED_PERMANENTLY = 301 int SC_MOVED_TEMPORARILY = 302
int SC_FOUND = 302 int SC_SEE_OTHER = 303
int SC_NOT_MODIFIED = 304 int SC_USE_PROXY = 305
int SC_TEMPORARY_REDIRECT = 307 int SC_BAD_REQUEST = 400
int SC_UNAUTHORIZED = 401 int SC_PAYMENT_REQUIRED = 402
int SC_FORBIDDEN = 403 int SC_NOT_FOUND = 404
int SC_METHOD_NOT_ALLOWED = 405 int SC_NOT_ACCEPTABLE = 406
int SC_PROXY_AUTHENTICATION_REQUIRED = 407 int SC_REQUEST_TIMEOUT = 408
int SC_CONFLICT = 409 int SC_GONE = 410
int SC_LENGTH_REQUIRED = 411 int SC_PRECONDITION_FAILED = 412
int SC_REQUEST_ENTITY_TOO_LARGE = 413 int SC_REQUEST_URI_TOO_LONG = 414
int SC_UNSUPPORTED_MEDIA_TYPE = 415 int SC_REQUESTED_RANGE_NOT_SATISFIABLE = 416
int SC_EXPECTATION_FAILED = 417 int SC_INTERNAL_SERVER_ERROR = 500
int SC_NOT_IMPLEMENTED = 501 int SC_BAD_GATEWAY = 502
int SC_SERVICE_UNAVAILABLE = 503 int SC_GATEWAY_TIMEOUT = 504
int SC_HTTP_VERSION_NOT_SUPPORTED = 505
鈶?session - javax.servlet.http.HttpSession
session瀵硅薄琛ㄧず鐩墠涓埆鐢ㄦ埛鐨勪細(xì)璇濈姸鎬侊紝鐢ㄦ潵璇嗗埆姣忎釜鐢ㄦ埛銆?/font>
鏂規(guī)硶錛?br />
1. Object getAttribute( String name ) ;
鑾峰彇涓庢寚瀹氬悕瀛楃浉鍏寵仈鐨剆ession灞炴у箋?/font>
2. Enumeration getAttributeNames() ;
鍙栧緱session鍐呮墍鏈夊睘鎬х殑闆嗗悎銆?/font>
3. long getCreationTime() ;
榪斿洖session鐨勫垱寤烘椂闂達(dá)紝鏈灝忓崟浣嶅崈鍒嗕箣涓縐掋?/font>
4. String getId() ;
鍙栧緱session鏍囪瘑銆?/font>
5. long getLastAccessedTime() ;
榪斿洖涓庡綋鍓峴ession鐩稿叧鐨勫鎴風(fēng)鏈鍚庝竴嬈¤闂殑鏃墮棿錛岀敱1970-01-01綆楄搗錛屽崟浣嶆縐掋?/font>
6. int getMaxInactiveInterval( int interval ) ;
榪斿洖鎬繪椂闂達(dá)紝浠ョ涓哄崟浣嶏紝琛ㄧずsession鐨勬湁鏁堟椂闂?session涓嶆椿鍔ㄦ椂闂?銆?1涓烘案涓嶈繃鏈熴?/font>
7. ServletContext getServletContext() ;
榪斿洖涓涓JSP欏甸潰瀵瑰簲鐨凷ervletContext瀵硅薄瀹炰緥銆?/font>
8. HttpSessionContext getSessionContext() ;
9. Object getValue( String name ) ;
鍙栧緱鎸囧畾鍚嶇О鐨剆ession鍙橀噺鍊鹼紝涓嶆帹鑽愪嬌鐢ㄣ?/font>
10. String[] getValueNames() ;
鍙栧緱鎵鏈塻ession鍙橀噺鐨勫悕縐扮殑闆嗗悎錛屼笉鎺ㄨ崘浣跨敤銆?/font>
11. void invalidate() ;
閿姣佽繖涓猻ession瀵硅薄銆?/font>
12. boolean isNew() ;
鍒ゆ柇涓涓猻ession鏄惁鐢辨湇鍔″櫒浜х敓錛屼絾鏄鎴風(fēng)騫舵病鏈変嬌鐢ㄣ?/font>
13. void pubValue( String name, Object value ) ;
娣誨姞涓涓猻ession鍙橀噺錛屼笉鎺ㄨ崘浣跨敤銆?/font>
14. void removeValue( String name ) ;
縐婚櫎涓涓猻ession鍙橀噺鐨勫鹼紝涓嶆帹鑽愪嬌鐢ㄣ?/font>
15. void setAttribute( String name, String value ) ;
璁劇疆鎸囧畾鍚嶇О鐨剆ession灞炴у箋?/font>
16. void setMaxInactiveInterval( int interval ) ;
璁劇疆session鐨勬湁鏁堟湡銆?/font>
17. void removeAttribute( String name ) ;
縐婚櫎鎸囧畾鍚嶇О鐨剆ession灞炴с?/font>
鈶?pageContext - javax.servlet.jsp.PageContext
pageContext瀵硅薄瀛樺偍鏈琂SP欏甸潰鐩稿叧淇℃伅錛屽灞炴с佸唴寤哄璞$瓑銆?/font>
鏂規(guī)硶錛?br />
1. void setAttribute( String name, Object value, int scope ) ;
void setAttribute( String name, Object value ) ;
鍦ㄦ寚瀹氱殑鍏變韓鑼冨洿鍐呰緗睘鎬с?/font>
2. Object getAttribute( String name, int scope ) ;
Object getAttribute( String name ) ;
鍙栧緱鎸囧畾鍏變韓鑼冨洿鍐呬互name涓哄悕瀛楃殑灞炴у箋?/font>
3. Object findAttribute( String name ) ;
鎸夐〉闈€佽姹傘佷細(xì)璇濆拰搴旂敤紼嬪簭鍏變韓鑼冨洿鎼滅儲(chǔ)宸插懡鍚嶇殑灞炴с?/font>
4. void removeAttribute( String name, int scope ) ;
void removeAttribute( String name ) ;
縐婚櫎鎸囧畾鍚嶇О鍜屽叡浜寖鍥寸殑灞炴с?/font>
5. void forward( String url ) ;
灝嗛〉闈㈠鑸埌鎸囧畾鐨刄RL銆?/font>
6. Enumeration getAttributeNamesScope( int scope ) ;
鍙栧緱鎸囧畾鍏變韓鑼冨洿鍐呯殑鎵鏈夊睘鎬у悕縐扮殑闆嗗悎銆?/font>
7. int getAttributeScope( String name ) ;
鍙栧緱鎸囧畾灞炴х殑鍏變韓鑼冨洿銆?/font>
8. ErrorData getErrorDate() ;
鍙栧緱欏甸潰鐨別rrorData瀵硅薄銆?/font>
9. Exception getException() ;
鍙栧緱欏甸潰鐨別xception瀵硅薄銆?/font>
10. ExpressionEvaluator getExpressionEvaluator() ;
鍙栧緱欏甸潰鐨別xpressionEvaluator瀵硅薄銆?/font>
11. JspWriter getOut() ;
鍙栧緱欏甸潰鐨刼ut瀵硅薄銆?/font>
12. Object getPage() ;
鍙栧緱欏甸潰鐨刾age瀵硅薄銆?/font>
13. ServletRequest getRequest() ;
鍙栧緱欏甸潰鐨剅equest瀵硅薄銆?/font>
14. ServletResponse getResponse() ;
鍙栧緱欏甸潰鐨剅esponse瀵硅薄銆?/font>
15. ServletConfig getConfig() ;
鍙栧緱欏甸潰鐨刢onfig瀵硅薄銆?/font>
16. ServletContext getServletContext() ;
鍙栧緱欏甸潰鐨剆ervletContext瀵硅薄銆?/font>
17. HttpSession getSession() ;
鍙栧緱欏甸潰鐨剆ession瀵硅薄銆?/font>
18. VariableResolver getVariableResolver() ;
鍙栧緱欏甸潰鐨剉ariableResolver瀵硅薄銆?/font>
19. void include( String url, boolean flush ) ;
void include( String url ) ;
鍖呭惈鍏朵粬鐨勮祫婧愶紝騫舵寚瀹氭槸鍚﹁嚜鍔ㄥ埛鏂般?/font>
20. void release() ;
閲嶇疆pageContext鍐呴儴鐘舵侊紝閲婃斁鎵鏈夊唴閮ㄥ紩鐢ㄣ?/font>
21. void initialize( Servlet servlet, ServletRequest request, ServletResponse response,
String errorPageURL, boolean needSession, int bufferSize, boolean autoFlush ) ;
鍒濆鍖栨湭緇忓垵濮嬪寲鐨刾ageContext瀵硅薄銆?/font>
22. BodyContext pushBody() ;
BodyContext pushBody( Writer writer ) ;
淇濆瓨褰撳墠鐨刼ut瀵硅薄錛屽茍鏇存柊pageContext涓璸age鑼冨洿鍐呯殑out瀵硅薄銆?/font>
23. JspWrite popBody() ;
鍙栧嚭鐢眕ushBody()鏂規(guī)硶淇濆瓨鐨刼ut瀵硅薄銆?/font>
24. void handlePageException( Exception e ) ;
void handlePageException( Thrwoable t ) ;
鎴愬憳錛?br />
int PAGE_SCOPE = 1 - 欏甸潰鍏變韓鑼冨洿
int REQUEST_SCOPE = 2 - 璇鋒眰鍏變韓鑼冨洿
int SESSION_SCOPE = 3 - 浼?xì)璇濆呑冺n鑼冨洿
int APPLICATION_SCOPE = 4 - 搴旂敤紼嬪簭鍏變韓鑼冨洿
String PAGE = "javax.servlet.jsp.jspPage"
String PAGECONTEXT = "javax.servlet.jsp.jspPageContext"
String REQUEST = "javax.servlet.jsp.jspRequest"
String RESPONSE = "javax.servlet.jsp.jspResponse"
String CONFIG = "javax.servlet.jsp.jspConfig"
String SESSION = "javax.servlet.jsp.jspSession"
String OUT = "javax.servlet.jsp.jspOut"
String APPLICATION = "javax.servlet.jsp.jspApplication"
String EXCEPTION = "javax.servlet.jsp.jspException"
鈶?application - javax.servlet.ServletContext
application涓昏鍔熺敤鍦ㄤ簬鍙栧緱鎴栨洿鏀筍ervlet鐨勮瀹氥?/font>
鏂規(guī)硶錛?br />
1. Object getAttribute( String name ) ;
榪斿洖鐢眓ame鎸囧畾鐨刟pplication灞炴с?/font>
2. Enumeration getAttributes() ;
榪斿洖鎵鏈夌殑application灞炴с?/font>
3. ServletContext getContext( String uripath ) ;
鍙栧緱褰撳墠搴旂敤鐨凷ervletContext瀵硅薄銆?/font>
4. String getInitParameter( String name ) ;
榪斿洖鐢眓ame鎸囧畾鐨刟pplication灞炴х殑鍒濆鍊箋?/font>
5. Enumeration getInitParameters() ;
榪斿洖鎵鏈夌殑application灞炴х殑鍒濆鍊肩殑闆嗗悎銆?/font>
6. int getMajorVersion() ;
榪斿洖servlet瀹瑰櫒鏀寔鐨凷ervlet API鐨勭増鏈彿銆?/font>
7. String getMimeType( String file ) ;
榪斿洖鎸囧畾鏂囦歡鐨勭被鍨嬶紝鏈煡綾誨瀷榪斿洖null銆備竴鑸負(fù)"text/html"鍜?image/gif"銆?/font>
8. int getMinorVersion() ;
榪斿洖servlet瀹瑰櫒鏀寔鐨凷ervlet API鐨勫壇鐗堟湰鍙楓?/font>
9. String getRealPath( String path ) ;
榪斿洖緇欏畾铏氭嫙璺緞鎵瀵瑰簲鐗╃悊璺緞銆?/font>
10. RequestDispatcher getNamedDispatcher( String name ) ;
涓烘寚瀹氬悕瀛楃殑Servlet瀵硅薄榪斿洖涓涓猂equestDispatcher瀵硅薄鐨勫疄渚嬨?/font>
11. RequestDispatcher getRequestDispatcher( String path ) ;
榪斿洖涓涓猂equestDispatcher瀵硅薄鐨勫疄渚嬨?/font>
12. URL getResource( String path ) ;
榪斿洖鎸囧畾鐨勮祫婧愯礬寰勫搴旂殑涓涓猆RL瀵硅薄瀹炰緥錛屽弬鏁拌浠?/"寮澶淬?/font>
13. InputStream getResourceAsStream( String path ) ;
榪斿洖涓涓敱path鎸囧畾浣嶇疆鐨勮祫婧愮殑InputStream瀵硅薄瀹炰緥銆?/font>
14. Set getResourcePaths( String path ) ;
榪斿洖瀛樺偍鍦╳eb-app涓墍鏈夎祫婧愯礬寰勭殑闆嗗悎銆?/font>
15. String getServerInfo() ;
鍙栧緱搴旂敤鏈嶅姟鍣ㄧ増鏈俊鎭?/font>
16. Servlet getServlet( String name ) ;
鍦⊿ervletContext涓绱㈡寚瀹氬悕縐扮殑servlet銆?/font>
17. Enumeration getServlets() ;
榪斿洖ServletContext涓墍鏈塻ervlet鐨勯泦鍚堛?/font>
18. String getServletContextName() ;
榪斿洖鏈瑆eb搴旂敤鐨勫悕縐般?/font>
19. Enumeration getServletContextNames() ;
榪斿洖ServletContext涓墍鏈塻ervlet鐨勫悕縐伴泦鍚堛?/font>
20. void log( Exception ex, String msg ) ;
void log( String msg, Throwable t ) ;
void log( String msg ) ;
鎶婃寚瀹氱殑淇℃伅鍐欏叆servlet log鏂囦歡銆?/font>
21. void removeAttribute( String name ) ;
縐婚櫎鎸囧畾鍚嶇О鐨刟pplication灞炴с?/font>
22. void setAttribute( String name, Object value ) ;
璁懼畾鎸囧畾鐨刟pplication灞炴х殑鍊箋?/font>
鈶?config - javax.servlet.ServletConfig
config瀵硅薄鐢ㄦ潵瀛樻斁Servlet鍒濆鐨勬暟鎹粨鏋勩?/font>
鏂規(guī)硶錛?br />
1. String getInitParameter( String name ) ;
榪斿洖鍚嶇О涓簄ame鐨勪績浣垮弬鏁扮殑鍊箋?/font>
2. Enumeration getInitParameters() ;
榪斿洖榪欎釜JSP鎵鏈夌殑淇冧嬌鍙傛暟鐨勫悕縐伴泦鍚堛?/font>
3. ServletContext getContext() ;
榪斿洖鎵ц鑰呯殑servlet涓婁笅鏂囥?/font>
4. String getServletName() ;
榪斿洖servlet鐨勫悕縐般?/font>
鈶?exception - java.lang.Throwable
閿欒瀵硅薄錛屽彧鏈夊湪JSP欏甸潰鐨刾age鎸囦護(hù)涓寚瀹歩sErrorPage="true"鍚庯紝鎵嶅彲浠ュ湪鏈〉闈嬌鐢╡xception瀵硅薄銆?/font>
鏂規(guī)硶錛?br />
1. Throwable fillInStackTrace() ;
灝嗗綋鍓峴tack淇℃伅璁板綍鍒癳xception瀵硅薄涓?/font>
2. String getLocalizedMessage() ;
鍙栧緱鏈湴璇郴鐨勯敊璇彁紺轟俊鎭?/font>
3. String getMessage()
鍙栧緱閿欒鎻愮ず淇℃伅銆?/font>
4. StackTrackElement[] getStackTrace() ;
榪斿洖瀵硅薄涓褰曠殑call stack track淇℃伅銆?/font>
5. Throwable initCause( Throwable cause ) ;
灝嗗彟澶栦竴涓紓甯稿璞″祵濂楄繘褰撳墠寮傚父瀵硅薄涓?br />
6. Throwable getCause() ;
鍙栧嚭宓屽鍦ㄥ綋鍓嶅紓甯稿璞′腑鐨勫紓甯搞?/font>
7. void printStackTrace() ;
void printStackTrace( printStream s ) ;
void printStackTrace( printWriter s ) ;
鎵撳嵃鍑篢hrowable鍙?qiáng)鍏禼all stack trace淇℃伅銆?/font>
8. void setStackTrace( StackTraceElement[] stackTrace )
璁劇疆瀵硅薄鐨刢all stack trace淇℃伅銆?/font>
鈶?page - javax.servlet.jsp.HttpJspPage
page瀵硅薄浠h〃JSP瀵硅薄鏈韓錛屾垨鑰呰浠h〃緙栬瘧鍚庣殑servlet瀵硅薄錛?br />
鍙互鐢? (javax.servlet.jsp.HttpJspPage)page )鏉ュ彇鐢ㄥ畠鐨勬柟娉曞拰灞炴с?/font>
閮藉疄鐜頒簡鏍規(guī)嵁鑷繁鐨勬潯浠跺疄鐜扮殑欏甸潰寰楄煩杞?/span>
2. 鍖哄埆
綾誨埆 |
姒傚康 |
鍏變韓鏁版嵁 |
搴旂敤 |
Redirect |
URL閲嶆柊瀹氬悜錛氬彲浠ユ槸浠繪剰鐨?/span>URL |
涓嶈兘鍏變韓request閲岄潰鐨勬暟鎹?/span> |
涓鑸敤浜庣敤鎴鋒敞閿鐧誨綍鏃惰繑鍥炰富欏甸潰鍜岃煩杞埌鍏跺畠鐨勭綉绔欑瓑絳?/span> |
Forward |
欏甸潰鐨勮漿鍙戯細(xì)鍙兘鏄悓涓涓?/span>Web搴旂敤紼嬪簭鐨勫叾浠?/span>Web緇勪歡 |
杞彂欏甸潰鍜岃漿鍙戝埌鐨勯〉闈㈠彲浠ュ叡鎬?/span>request閲岄潰鐨勬暟鎹?/span> |
涓鑸敤浜庣敤鎴風(fēng)櫥褰曠殑鏃跺欐牴鎹鑹茶漿鍙戝埌鐩稿簲鐨勬ā鍧楃瓑絳?/span> |
3. 渚嬪瓙錛?/span>
璀錛?/span>client 閫氳繃XXX\index.jsp?name=gauss&pwd=123璁塊棶index.jsp,鑰?/span>index.jsp涓湁<jsp:forward page="login.jsp"/>,鍒欏湪login.jsp涓彲浠ラ氳繃request.getParameter()寰楀埌name鍜?/span>pwd錛岃?/span><%response.sendRedirect("login.jsp");%>寰椾笉鍒般?/span>
4. 娉ㄦ剰
涓鑸湪index.jsp欏甸潰涔嬪墠鏈変釜鎻愪氦鏁版嵁鐨勯〉闈?/span>default.jsp錛屽垯defautl.jsp欏甸潰鎻愪氦鐨勬暟鎹氨鍙互鍦?/span>login.jsp欏甸潰寰楀埌錛岃屼笉鏄緱鍒?/span>index.jsp欏甸潰鎻愪氦鐨勬暟鎹紝index.jsp欏甸潰鍙槸鎵ц鐨勯兘鏄竴涓漿鍙戞搷浣滃綋鐒跺湪閲岄潰鍙互澧炲姞涔熷啓涓氬姟鎿嶄綔錛屼粬鍙互寰楀埌request鐨勬暟鎹紝鐢?/span>XXX\index.jsp?name=gauss&pwd=123榪欑鏂瑰紡鐧誨綍灝辨槸鐪佺暐浜?/span>index.jsp鍓嶉潰鐨勪竴涓〉闈㈡彁浜ゆ暟鎹屽凡銆?/span>
finally {
if (_jspxFactory != null) _jspxFactory.releasePageContext(_jspx_page_context);
}
榪欓噷鏄湪閲婃斁鍦?/span>jsp涓嬌鐢ㄧ殑瀵硅薄錛屼細(xì)璋冪敤response.getWriter(),鍥犱負(fù)榪欎釜鏂規(guī)硶鏄拰response.getOutputStream()鐩稿啿紿佺殑錛佹墍浠ヤ細(xì)鍑虹幇浠ヤ笂榪欎釜寮傚父銆傜劧鍚庡綋鐒舵槸瑕佹彁鍑鴻В鍐崇殑鍔炴硶錛屽叾瀹炴尯綆鍗曠殑錛堝茍涓嶆槸鍜屾煇浜涙湅鍙嬭鐨勯偅鏍?/span>--灝?/span>jsp鍐呯殑鎵鏈夌┖鏍煎拰鍥炶濺絎﹀彿鎵鏈夐兘鍒犻櫎鎺夛級(jí)錛屽湪浣跨敤瀹岃緭鍑烘祦浠ュ悗璋冪敤浠ヤ笅涓よ浠g爜鍗沖彲錛?/span>
out.clear();
out = pageContext.pushBody();
闄勶細(xì)浜х敓楠岃瘉鐮佸浘鐗囩殑鏂囦歡image.jsp
鍦?/span>html涓嬌鐢ㄩ獙璇佺爜鍥劇墖錛?/p>
<img src="image.jsp" id="src" height="18" alt="鐪嬩笉娓呮?璇風(fēng)偣鍑誨埛鏂? onclick="this.src=this.src+'?'+Math.random();" />
]]>
response.setHeader("Refresh","2;URL=index.jsp");
鎴戜滑鍦?/span>Jbuilder 2006鐨勫唴緗祻瑙堝櫒榪愯璇ョ▼搴忔椂錛屽嵆浣胯緭鍏ョ殑淇℃伅姝g‘錛屽湪check.jsp欏甸潰涔熶笉浼?xì)漶旂?/span>2縐掔殑寤惰繜鏁堟灉錛岃屽湪IE鎴栧叾浠栨祻瑙堝櫒涓潎鍙疄鐜板歡榪熸晥鏋溿?/span>