摘要:#Study Note
###安裝工具###
Must Setup:J2SDK
JSP Server:Resin、Tomcat
JDBC driver:Java.sun.com/products/jdbc/jdbc.vrivers.html
### 指令###
<%@ page
language=”Java”
extends=”父類別名稱”
Import=”java.io.8, java.util.Date”
Session=”true|false”
Buffer=”none|緩衝大小kb”
autoFlush=”true|false” //buffer滿了是否自動輸出
isThreadSafe=”true|false” //是否已執行緒方式回應jsp要求訊息
info=”網頁說明文件”
errorPage=”url” //發生錯誤時,顯示錯誤訊息之網頁url
isErrorPage=”true|false” //是否為錯誤訊息網頁 取得: <%=exception.getMessage()%>
contentType=”text/html; charset=Big5”
%>
<%@ include File=”檔案名稱”%>
<%@ taglib URI=”uri” prefix”前置標記” %>
<%! …//宣告敘述%>
<% …//程式碼%>
<%-- 註解--%>
<%=”欲輸出資料” %> // out.println
Out、Response、Request
Application、Pagecontext、Session
Config、page
jspInit()
jspDestroy()
### 比較值是否相同
變數.equals(“”) //比較字串
### url解碼
Java.net.URLDecoder.decode(“URL編碼文字”)
### 目前系統時間
(new java.util.Date()).getTime()
### 網頁導向
<%Response.sendRedirect(“url”);%>
<jsp:forward page=”url”/>
### Request ###
###屬性
request.getAttribute(名稱) request.setAttribute(名稱,值)
request.AttributeNames() request.removeAttribute(名稱)
###參數
request.getParameter(名稱) request.setParamater(名稱)
request.ParameterNames()
request.getCookies()
request.getContentType() //取得MIME型態(text/plain,text/htmml,image/gif)
request.getDateHeader(名稱)
request.getIntHeader(名稱)
request.getHeader(名稱)
request.getHeaders(名稱)
request.getHeaderNames(名稱)
request.getCharacterEncodeing() //取得要求訊息主體運用的編碼格式
request.Protocol() //取得連線使用的通訊協定
request.Mehod() //取得連線使用的HTTP方法(get,post,put)
request.getQueryString() //取得網址,包含查詢字串
request.getRealPath(Server Path)
request.getRemoteAddr() //取得client 電腦名稱
request.getRemoteHost() //取得ip
request.getRemoteUser()
request.getRequestDispatcher()
request.getRequestURI() //取得網址,包含路徑檔名
request.getRequestURL() //取得網址,不含?後查詢字串
request.getSession(flag)
Interger.prarseInt(String字串) //資料型別轉換(Interger.paraseFloat ,Dobule.parseDobule)
Boolean.valueOf(String字串) //資料型別轉換
###取得複選清單值
StringArrX [] = Request.getParameterValues(“變數名”); //取得值轉為陣列
Int ArrLn = java.lang.reflect.Array.getLength(ArrX); //取得陣列長度
for (int I = 0 ; i<ArrLn ; i++){
out.println(ArrX[i]);
}
###判斷核取方塊
request.getParameter(“chkbx1”) != null //未被選取的值為null
### Response ###
response.flushBuffer()
response.getBufferSize()response.setBufferSize()
response.isCommitted()
response.reset()
response.sendRedirect(url)
response.setError(代碼,訊息)
response.Status(代碼)
response.addCookie(cookie物件)
response.DateHeader(名稱,值) response.setDateHeader(名稱,值)
response.addHeader(名稱,值) response.setHeader(名稱,值)
response.addIntHeader(名稱,值) response.setIntHeader(名稱,值)
response.containsHeader(名稱)
response.getCharacterEncodeing()
response.setContentType(型態)
response.encodeRedirectURL(url)
response.encodeURL(url)
<%
Response.setHeader(“Refresh”,20); //網頁自動更新same to <META HTTP-EQUIV=”Refresh” Content=”20”>
%>
<%@ page contentType=”application/msexcel; charset=Big5”%>
<% response.setHeader(“content-disposition”,”filename=book.xls”);
###Cookie設定###
<%@ page import=”java.net.URLDecoder”%>
<%
// save in cookie
Int AA = new Interger();
String BB = URLEncoder.encode(“中文資料”);
Cookie ck_AA = new cookie(“AA”,String.valueof(AA));
Cookie ck_BB = new cookie(“BB”,BB);
response.addcookie(ck_AA);
response.addcookie(ck_BB);
// load from cookie
Cookie tmp = null
Cookie[] ck_Arr = request.getCooies();
For (intI = 0 ; i<ck_Arr.length; i++){
Tmp = ck_Arr[i];
If (tmp.getName().equals(“AA”)){
String AA = URLDecoder.decode(tmp.getValue());
}
}
ck_AA.getPath();
ck_AA.setPath(“/jsp/path/”) //set可存取路徑
ck_AA.getDomain();
ck_AA.setDomain(“www.java.com.tw”) //set可存取網站
ck_AA.setMaxAge(秒); //set有效時間
%>
### OUT ###
Out.close()
Out.newLine()
Out.print(資料)
Out.println(資料)
Out.clear()
Out.clearBuffer()
Out.flush()
Out.IsAutoFluse()
Out.getBufferSize()
Out.getRemaining()
### PageContext ###
//屬性存取方法
pageContext.getAttribute(名稱)
pageContext.getAttributeNames()
pageContext.removeAttribute(名稱)
pageContext.setAttribute(名稱,值)
//傳送request物件方法
pageContext.forward(路徑)
pageContext.include(路徑)
//取得其他隱含物件
pageContext.getException()
pageContext.getOut()
pageContext.getPage()
pageContext.getRequest()
pageContext.getResponse()
pageContext..getServletContext()
pageContext.getSession()
//存取隱含物件屬性的方法
pageContext.findAttribute(名稱)
pageContext.getAttribute(名稱,範圍)
pageContext.getAttributeNamesInScope(範圍)
pageContext.getAttributeScope(名稱)
pageContext.setAttribute(名稱,值,範圍)
pageContext.removeAttribute(名稱,範圍)
//有效範圍的常數
pageContext.APPLICATION_SCOPE
pageContext.PAGE_SCOPE
pageContext.REQUEST_SCOPE
pageContext.SESSION_SCOPE
### Server 指令###
<jsp:useBean> <jsp:setProperty> <jsp:getProperty>
<jsp:include page=”檔名”> //動態載入網頁
<jsp:forward page=”檔名”>//網頁導向至
<jsp:param name=”A” value=”100”> //傳遞參數(by include,forward,plugin)
//載入java applet or java beans, same to HTML’s <object>
<jsp:plugin type=”類型” code=”檔名” codebase=”類別路徑” name=”物件名稱”
align=”對齊方式”height=”0” width=”0” hspace=”0” vspace=”0”
archive=”相關檔案路徑”jrevesion=”java環境版本”
nspluginurl=”供NC使用的plugin載入位置” iepluginurl=”供IE使用的plugin載入位置”
>
<jsp:params>
<jp:param name = “參數名1” value=”值1”>
<jp:param name = “參數名2” value=”值1”>
</jsp:params>
<jsp:fallback>錯誤訊息</jsp:fallback>
</jsp:plugin>
###Session ###
Javax.servlet.http.HttpSession
Session.setAttribute(變數,值名)//set Session
Objectobj = session.getAttribute(變數名)// load Session
Session.removeAttribute(變數名) // remove session
Session.setMaxInactiveInterval(“秒數”) //set Active-Time(s)
Session.getMaxInactiveInterval()// get Active-Time(s)
Session.isNew()//判斷是否為新建
Session.invaildate()// 強制中斷
Session.getCreationTime() //get Build-Time
Session.getLastAccessdTime() // get last Access-Time
Session.getId() //get session SN
###Application###
<Web-app id=“path” app-dir=”url”/>
###屬性存取
Application.getAttribute(名稱)
Application.getAttributeNames()
Application.removeAttribute(名稱)
Application.setAttribute(名稱,值)
###取得版本資訊
Application.getMajorVersion
Application.getMinorVesion
Application.getServerInfo
###寫入記錄檔
Application.log(訊息)
Application.log(訊息,例外物件)
###取得web應用程式的初始參數web.xml
Application.getInitParameter
Application.getInitParameterNames()
###取得伺服器的相關資源
Application.getContext(path)
Application.getMimeType(file)
Application.getRealPath(path)
Application.getResource(path)
###File###
File 變數= new File(path,Filename)
Request.getRealPath(“/”)
f.createNewFile(); // create file
f.delete() //delete file
f.mkdir(); //Create Directory
f.exists() // check is file exites?
f.listFiles() //顯示所有檔案列表
###檔案屬性取得
f.getName() //檔名
f.length() //長度
f.isFile() //是否為檔案
f.isDirectory() //是否為資料夾
f.canRead() //是否可讀
f.canWrite() //是否可寫
f.isHiddenO() // 是否隱藏
f.Modified() //最後修改時間
###檔案取得
FileReader fr= new FileReader(path+file)
fr.close()
fr.read(arr, s, n) //從s字元開始讀取n個字元存到arr陣列
fr.skip(n)//略過n字元
fr.read = 13//(換行字元crlf 為13 + 10)
BufferedReader br = new BufferedReader(fr)
br.close()
br.readLine() //讀取整行資料
fr== -1 , br == null //判斷檔案結尾
###寫入檔案
fileWriter fw = new FileWriter(path+file)
fw.close()
fw.write(char | char[] | string | char[])
fw.write(char[], str, n)
BufferedWriter bw = new BufferedWriter(fw)
bw.close()
bw.write(char | char[] | string | char[])
bw.write(char[], str, n)
bw.newLine(); //斷行
###例外處理
Try
{
//錯誤偵測區塊
throw new Exception(“message”)
thr_fun()
}
Catch(錯誤類型1 ){ //錯誤處理區塊}
Catch(錯誤類型2 ){ //錯誤處理區塊}
Finally{//結束處理區塊}
Void thr_fun() Throws exception{
throw new exception(“message”)
}
###DataBase
###建立連線
Class.forName(“com.microsoft.jdbc.sqlserver.SQLServerDriver”) //MS-SQL
Connection cn= DriverManger.getConnection(“jdbc:microsoft:sqlserver://ip:port;databasename=db”, ”Acc”,”pw”)
Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”) //MS-Access
Connection cn= DriverManger.getConnection(“jdbc:odbc:ODBC來源”,”Acc”,”pw”)
cn.close()
###JNDI
■■■Servier.xml
<Resource name=”java:comp/env/路徑” auth=”servlet|container” type=”javax.sql.DataSource” description=”說明” />
<ResourceParams name=”java:comp/env/路徑”>
<parameter><name>driverClassName</name><value>sun.jdbc.odbc.JdbcOdbcDriver</value></param…
<parameter><name>url</name><value>jdbc:odbc: ODBC來源</value></parameter>
<parameter><name>username</name><value>acc</value></parameter>
<parameter><name>password</name><value>pw</value></parameter>
</ResourceParams name>
■■■Code
Context ic= new InitialContext();
DataSource ds= (dataSource) ic.lookup(“java:comp/env/路徑”);
Connection cn= ds.getConnection();
###取得資料
statement sm= cn.createStatement(type|type)
sm.close()
ResultSet rs= sm.executeQuery(sql)
rs.getInt(field|index) //get{Boolean,Byte,Bytes,Date,Double,Float,Int,Long,Time}
rs.beforefirst()//rs.bof
rs.first()
rs.previous()
rs.next()
rs.last()
rs.afterLast() //rs.eof
rs.close()
###MetaData
ResultSetMetaDatarsmd= rs.getMetaData();
rsmd.getColumnCount(); //取得欄數
rsmd.getColumnName(index)// 取得欄名
###page
rs.getRow() //目前指標位置
rs.absolute(n) //移至n位置
###JavaBeans
<jsp:useBean id=”bn” scope=”application|session|request|page” class=”bean類別”/> //載入Bean
<jsp:setProperty name=”AAA” property=”屬性” param=”值”/>
<jsp:setProperty name=”AAA” property=”*” > //introspection mode
bn.setAAA(值)
<jsp:getProperty name=”AAA” property=”屬性” />
bn.getAAA(值)
###Example
Package aaa.bbb.ccc;
Import java.io.*;
Public class Personimplements serializable
{
//屬性
Private string name=””;
Private int age= 0;
//建構子
Public Person()
{
}
//set bean param method
Public void setUserName (string name)
{ this.Name = name; }
Public void setAge(intage);
{this.age= age; }
//get bean param method
Public string getUserName()
{ return this.Name;}
Public int getAge()
{ returnthis.age;}
}