JAVA/JSP整理 tomcat補充

關於安裝,通常只會卡在,關於環境變數的問題,也就是環境變數沒設定

設定環境變數 win 8.1流程:我的電腦>內容>進階系統設定>進階>環境變數

接著點選系統變數的path編輯,把JAVA的路徑複製貼上

接著就是驗證到底有沒有完成環境設置
(已更改為舊版的JAVA8版)

在CMD(命令提示字元)中輸入java即可檢視

接著 關於tomcat設定
tomcat 要求 Set JAVA_HOME or JRE_HOME if not already set,
而設定的路徑名稱為
set JAVA_HOME = C:\Program Files\Java\jdk1.8.0_231
set JRE_HOME = C:\Program Files\Java\jre1.8.0_231
依照每個人電腦的版本不同,後面的路徑也會不相同,上面的路徑是windows 8.1的Java預設安裝路徑,記得後面不要加上bin,不然會顯示讀'不到檔案。
實在不行重新開機看看會不會解決問題

jsp中匯入包
<%@ page import="java.util.*" contentType="text/html; charset=UTF-8"%>
<%@ page import = "java.io.*"%>
<%@ page import = "java.sql.*,java.util.Date"%>

jsp中匯入標籤
<%@ taglib uri="/WEB-INF/tlds/orataglib_1_0.tld" prefix="ora"%>

jsp中的編碼型別
<META http-equiv=Content-Type content="text/html; charset=utf-8"> 

JSP預設物件
out .print("") .getBufferSize()預設容量
.getRemaining()剩餘容量
.clear()把之前的內容清空並歸還容量
.flush()強制印出out內暫存的內容並且清除
.isAutoFlush是否有Flush的功能

page 代表java中的this

Header大全(搬運)
out.println("Protocol: " + request.getProtocol()); 
out.println("Scheme: " + request.getScheme()); 
out.println("Server Name: " + request.getServerName() ); 
out.println("Server Port: " + request.getServerPort()); 
out.println("Protocol: " + request.getProtocol()); 
out.println("Server Info: " + getServletConfig().getServletContext().getServerInfo()); 
out.println("Remote Addr: " + request.getRemoteAddr()); 
out.println("Remote Host: " + request.getRemoteHost()); 
out.println("Character Encoding: " + request.getCharacterEncoding()); 
out.println("Content Length: " + request.getContentLength()); 
out.println("Content Type: "+ request.getContentType()); 
out.println("Auth Type: " + request.getAuthType()); 
out.println("HTTP Method: " + request.getMethod()); 
out.println("Path Info: " + request.getPathInfo()); 
out.println("Path Trans: " + request.getPathTranslated()); 
out.println("Query String: " + request.getQueryString()); 
out.println("Remote User: " + request.getRemoteUser()); 
out.println("Session Id: " + request.getRequestedSessionId()); 
out.println("Request URI: " + request.getRequestURI()); 
out.println("Servlet Path: " + request.getServletPath()); 
out.println("Accept: " + request.getHeader("Accept")); 
out.println("Host: " + request.getHeader("Host")); 
out.println("Referer : " + request.getHeader("Referer")); 
out.println("Accept-Language : " + request.getHeader("Accept-Language")); 
out.println("Accept-Encoding : " + request.getHeader("Accept-Encoding")); 
out.println("User-Agent : " + request.getHeader("User-Agent")); 
out.println("Connection : " + request.getHeader("Connection")); 
out.println("Cookie : " + request.getHeader("Cookie")); 
out.println("Created : " + session.getCreationTime()); 
out.println("LastAccessed : " + session.getLastAccessedTime());
retresh 畫面更新

request .getRemoteAddr()捕捉ClientIP
.getHeader("user-agent")捕捉Client端作業系統版本標頭
.getHeader("accept-language")捕捉Client端支援語言標頭
.getHeaderNames()捕捉Client端瀏覽器資訊標頭 .getParameter()捕捉表單,輸入鈕等輸入資料

reponse .containsHeader判斷標頭是否存在
.addIntHeader(String header, int value)增加一個既有的header int
.addHeader(String header, String value)增加一個既有的header String
.setHeader(String header, String value)設定一個新的header String
.setIntHeader(String header, int value)設定一個新的header int
.setCharacterEncoding(String type)設定回傳字元格式 type為編碼格式
.getCharacterEncoding()讀取編碼格式
.setContentType(String type)設定回傳文件格式 type為編碼格式
.getContentType()讀取回傳文件編碼格式
.sendRedirect("url")轉向執行網址為 url 的網站
.setBufferSize(int size)設定buffer容量,單位byte
.getBufferSize()讀取容量
.flushBuffer()強迫輸出並清空
.reset()清除所有內容
.resetBuffer()清除buffer內容,不包含狀態碼和標頭
.isCommitted()查證response是否已執行

session .GetID()讀取識別碼
.setAttribute(String session, String value)設定session內容
.getAttribute(String session)讀取session內容
.removeAttribute(String session)刪除session

application .setAttribute(String application, String value)設定application內容
.getAttribute(String application)讀取application內容
.removeAttribute(String application)刪除application

config .getInitParameter(String name)讀取web.xml內特定(name)初始參數內容
.getInitParameterNames()讀取web.xml中所有初始參數
.getServletName()讀取Servlet名稱

pageContext .include(String uri)將其他(uri)JSP流程轉向本JSP執行
.forward(String uri)將本JSP流程轉向其他JSP執行

拿入<FORM METHOD ="get" ACTION="name.jsp">
送出<FORM METHOD ="post" ACTION="name.jsp">
<INPUT TYPE="submit" VALUE="go to sub Page">
跳轉到name.jsp網頁中

接取表單資料
html
<FORM METHOD ="post" ACTION="name.jsp">
<INPUT TYPE="text" NAME="data" SIZE="30">
jsp
<%
String val = request.getParameter("data");
out.print("Data: "+ val); //只能印出英文物件
%>
在val宣告前面加上 request.setCharacterEncoding("big5")就可以印出中文

TextArea
html
<FORM METHOD ="post" ACTION="name.jsp">
<TEXTAREA NAME = "data" ROW="3" COLS="30" >
jsp
<%
request.setCharacterEncoding("big5");  //設定編碼為BIG5
String val = request.getParameter("data"); //拿出表格內資料
out.print("Data:" + val);
%>

Radio(單一選取)
html
<FORM METHOD ="post" ACTION="name.jsp">
<INPUT TYPE = "radio" NAME="course" VALUE="...1">
<INPUT TYPE = "radio" NAME="course" VALUE="...2">
<INPUT TYPE = "radio" NAME="course" VALUE="...3">
<INPUT TYPE = "radio" NAME="course" VALUE="...4">
jsp
<%
request.setCharacterEncoding("big5");  //設定編碼為BIG5
String val = request.getParameter("course"); //拿出表格內資料
out.print("Data:" + val);

%>


CheckBox(多選)
html
<FORM METHOD ="post" ACTION="name.jsp">
<INPUT TYPE = "checkbox" NAME="course" VALUE="...1">
<INPUT TYPE = "checkbox" NAME="course" VALUE="...2">
<INPUT TYPE = "checkbox" NAME="course" VALUE="...3">
<INPUT TYPE = "checkbox" NAME="course" VALUE="...4">
jsp
<%
request.setCharacterEncoding("big5");  //設定編碼為BIG5
String[] val = request.getParameter("course"); //拿出表格內資料
out.print("Data:");
for (int i =0;i<val.length;i++)out.println(val[i] + "<br>");

%>

Select(下拉式清單)
html
<FORM METHOD ="post" ACTION="name.jsp">
<SELECT NAME = "course">
<OPTION VALUE = "1">1</OPTION>
<OPTION VALUE = "2">2</OPTION>
<OPTION VALUE = "3">3</OPTION>
jsp
<%
request.setCharacterEncoding("big5");  //設定編碼為BIG5
String[] val = request.getParameter("course"); //拿出表格內資料
out.print("Data:" + val[i]);

%>

SelectSize(清單式方塊)
SelectSize Multiple(複選清單方塊)
html
<FORM METHOD ="post" ACTION="name.jsp">
<SELECT NAME = "course" SIZE = "4" MULTIPLE>
<OPTION VALUE = "1">1</OPTION>
<OPTION VALUE = "2">2</OPTION>
<OPTION VALUE = "3">3</OPTION>
<OPTION VALUE = "4">4</OPTION>
jsp
<%
request.setCharacterEncoding("big5");  //設定編碼為BIG5
String[] val = request.getParameter("course"); //拿出表格內資料
out.print("Data:" + val);
out.print("Data: ");
for (int i =0;i<val.length;i++)out.println(val[i] + "<br>");

%>

mkdir(建立目錄)
html
<FORM METHOD = "post" ACTION = "name.jsp">
<INPUT TYPE = "text" NAME = "dir" SIZE = "40"> //請在此輸入路徑
<INPUT TYPE = "submit" VALUE = "遞送">
jsp
<%
request.setCharacterEncoding("big5");  //設定編碼為BIG5
String val = request.getParameter("dir"); //拿出表格內資料
File f = new File(val);

if (f.mkdir())
    out.print("成功建立");
else 
    out.print("建立失敗");
%>

createNewFile(建立檔案)
html
<FORM METHOD = "post" ACTION = "name.jsp">
<INPUT TYPE = "text" NAME = "file" SIZE = "40"> //path
<INPUT TYPE =- "submit" VALUE = "遞送">
jsp
<%
request.setCharacterEncoding("big5");  //設定編碼為BIG5
String val = request.getParameter("file"); //拿出表格內資料
File f = new File(val);

if (f.createNewFile())
    out.print(成功建立);
else
    out.print(建立失敗);
%>

write(輸入檔案)
html
<FORM METHOD = "post" ACTION = "name.jsp">
<INPUT TYPE = "text" NAME = "filename" SIZE = "40"> //path
<INPUT TYPE = "text" NAME = "filedata" ROW = "3" COLS = "40">
<INPUT TYPE =- "submit" VALUE = "遞送">
<INPUT TYPE = "reset" VALUE = "清空">
jsp
<%
request.setCharacterEncoding("big5");  //設定編碼為BIG5
String val_name = request.getParameter("filename"); //拿出表格內資料
String val_data = request.getParameter("filedata"); //拿出表格內資料
BufferedWriter fout = new BufferedWriter(new FileWriter(val_name));

fout.write(val_data); //寫入檔案
fout.newLine();
fout.close(); //關閉寫入檔案
%>

read(讀取檔案)
html
<FORM METHOD = "post" ACTION = "name.jsp">
<INPUT TYPE = "text" NAME = "file" SIZE = "40"> //path
<INPUT TYPE =- "submit" VALUE = "遞送">
<INPUT TYPE = "reset" VALUE = "清空">
jsp
<%
request.setCharacterEncoding("big5");  //設定編碼為BIG5
String val_name = request.getParameter("file"); //拿出表格內資料
BufferedReader fin = new BufferedReader(new FileReader(val_name));

int i = fin.read();
while ( i != -1)out.print((char)i);
fin.close;
%>

deleteFile(刪除檔案)
html
<FORM METHOD = "post" ACTION = "name.jsp">
<INPUT TYPE = "text" NAME = "file" SIZE = "40">
<INPUT TYPE = "submit" VALUE = "送出">
<INPUT TYPE = "reset" VALUE = "清除">
jsp
<%
request.setCharacterEncoding("big5");  //設定編碼為BIG5
String val = request.getParameter("file"); //拿出表格內資料
File f = new File(val);

if (f.delete()) out.print("成功刪除");
else out.print("刪除失敗");
%>

deleteDir(刪除目錄)
html
<FORM METHOD = "post" ACTION = "name.jsp">
<INPUT TYPE = "text" NAME = "dir" SIZE = "40">
<INPUT TYPE = "submit" VALUE = "送出">
<INPUT TYPE = "reset" VALUE = "清除">
jsp
<%
request.setCharacterEncoding("big5");  //設定編碼為BIG5
String val = request.getParameter("dir"); //拿出表格內資料
File f = new File(val);

if (f.delete()) out.print("刪除成功");
else out.print("刪除失敗");
%>

Frame Set(網頁框架分隔)
//左右
html
<FRAMESET COL = "30%  , 70%">
<FRAME NAME = "Left" SRC = "a.jsp">
<FRAME NAME = "Right" SRC = "b.jsp">
</FRAMESET>

//上下
html
<FRAMESET ROL = "30% , 70%">
<FRAME NAME = "Top" SRC = "a.jsp">
<FRAME NAME = "Bottom" SRC = "b.jsp">
</FRAMESET>

//巢式分割
html
<FRAMESET ROL = "30% , 60% , 10%">
<FRAME NAME = "Top" SRC = "top.asp">
    <FRAMESET COLS = "20% , *">
    <FRAME NAME = "Mid01" SRC = "mid01.asp">
    <FRAME NAME = "Mid02" SRC = "mid02.asp">
    </FRAMESET>
<FRAME NAME = "Bottom" SRC = "bottom.asp">
</FRAMESET>

TARGET(單層網頁架構關聯)
於Mid01.asp中
<A HERF = "a.asp" TARGET = "Mid02"></a> //執行a.asp於 Mid02此html中
<A HERF = "b.asp" TARGET = "Mid02"></a> //同上
<A HERF = "c.asp" TARGET = "Mid02"></a> //同上

(多層網頁架構關聯)
<TABLE WIDTH = "100%">
<TD ALIGN = "RIGHT">
<A HERF = "Mid02_1.jsp" TARGET = "Mid01">ab</a> //顯示Mid02_1於Mid01中
<A HERF = "Mid02_2.jsp" TARGET = "Mid01">xy</a> //同上

Mid02_1.jsp
<A HREF = "a.asp" TARGET = "Mid02">a</a>
<A HREF = "b.asp" TARGET = "Mid02">b</a>
Mid02_2.jsp
<A HREF = "x.asp" TARGET = "Mid02">x</a>
<A HREF = "y.asp" TARGET = "Mid02">y</a>

設定伺服器
打開 ODBC 資料來源
設定資料庫來源種類
從上寫來是,DB名稱,註解,連接的伺服器主機
設定憑證
建立資料表
載入驅動程式
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")
建立連接物件 連接資料庫
Connection con = DriverManager.getConnection("jdbc:odbc:DBname");
建立敘述物件
Statment stmt = con.createStatement();
建立執行字串
String query = "CREATE TABLE tablename ("
                     + " attributes1 Text(20) PRIMARY KEY"
                     + " attributes2 ... " //建立query字串 用於建立table (或者任何sql語言)
stmt.executeUpdate(query);

stmt.close();
con.close();

建立內容
載入驅動程式
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")
建立連接物件 連接資料庫
Connection con = DriverManager.getConnection("jdbc:odbc:DBname");
建立敘述物件
Statment stmt = con.createStatement();
建立執行字串
String query = "INSERT INTO tablename VALUES ("
                     + " 'String-attributes', attributes)" ; //建立query字串 用於建立table (或者任何sql語言)
stmt.executeUpdate(query);

stmt.close();
con.close();

載入內容
載入驅動程式
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")
建立連接物件 連接資料庫
Connection con = DriverManager.getConnection("jdbc:odbc:DBname");
建立敘述物件
Statment stmt = con.createStatement();
建立存取空間
StringBuffer sb = new StringBuffer();

建立執行字串
String sql = "SELECT * FROM tablename"

if (stmt.excute(sql)){ //假如搜尋結果不是null
ResultSet rs = stmt.ResultSet();
ResultSetMetaData md = rs.getMetaData();
int colCount = md.getColumnCount();
sb.append("<TABLE CELLSPACING = 10><TR>");
for (int i =1;i<colCount;i++)sb.append("<TH>" + md.getColumnLabel(i));

while (rs.next()){
  sb.append("<TR>");
  for (int i = 1;i<colCount;i++)  {
    Object obj = rs.getObject(i);
    if (obj != null) sb.append(obj.toString());
    else sb.append("&nbsp;");
  }
}
sb.append("</TABLE>\n");
}
else sb.append("<B> Update Count:</B>") + stmt.getUpdateCount();
String result = sb.toString();
out.print(result);

stmt.close();
con.close();

使用Java函數時,先import java.util.*
時間函數 import java.util.Date

parse UTC (傳回從1970/1/1開始到現在過幾秒)
jsp
<%
long parse = Date.parse("Fri , 3 Aug 2007 22:15:00");
long UTC = Date.UTC(107 , 7 , 3 , 22 , 15 , 0);

out.print(parse);
out.print(UTC);
%>

Methods(實體方法)
jsp
<%
Date d = new Date();

out.print(d.getYear()+1900); //從1900年開始算起 因此 1901年 = 1
out.print(d.getMonth()); //好像系統上有誤 可能要+1
out.print(d.getDate());
out.print(d.getDay());
out.print(d.getHours());
out.print(d.getMinutes());
out.print(d.getSeconds());

out.print(d.toLocalString()); //獲取當地時間
out.print(d.toGMTString()); //獲取格林威治時間
out.print(d.getTime());
%>

網頁拜訪人次
預設資料庫 Visitor 資料表 Counter 欄位 Work Num
<%@page contextType = "text/html;charset=big5"%>
<%@page import = "java.sql.*"%>
<%@page import = "java.io.*"%>
<html>
<head>
  <title>EXCounter</title>
</head>
<body>
  <p align = "left">
  <font size = "5">EXCounter</font>
  </p>
</body>
<%
載入驅動程式
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")
建立連接物件 連接資料庫
Connection con = DriverManager.getConnection("jdbc:odbc:Visitor");
建立敘述物件
Statment stmt = con.createStatement();
建立存取空間
StringBuffer sb = new StringBuffer();

int num = 0;
String numStr;

//曾儲存人數
String sql = "SELECT * FROM Counter WHERE Work = 0";
if (stmt.excute(sql)){
  ResultSet rs = stmt.getRrsultSet();
  while(rs.next()){
  num = rs.getInt("Num");
  }
}

//儲存人數+1 且重複整理無效
if (session.isNew()){
  num += 1;
  sql = "UPDATE Counter SER Work = 0 Num = " + num + " WHERE Work = 0";
  stmt.excuteUpdate(sql);
}
//使用圖形數字印出
numStr = num.toString();
for (int i =0;i<numStr,length();i++){
%>
<img src = "/path/<% = numStr.charAt(i) %>.gif "></img>
<%
}

stmt.close();
con.close();
%>
</html>

到訪人次(檔案儲存法)
建立一檔案為Visitor
<%@page contextType = "text/html;charset=big5"%>
<%@page import = "java.io.*"%>
<html>
<head>
  <title>EXCounter</title>
</head>
<body>
  <p align = "left">
  <font size = "5">EXCounter</font>
  </p>
</body>
<%
request.setCharacterEncoding("big5")
String fName = request.getRealPath("/Visitor.txt")

//曾儲存人數
BufferedReader br = new BufferedReader(new FileReader(fName));
String numStr = br.readLine();
br.close();

//儲存人數+1 且重複整理無效
if (session.isNew()){
  int num = numStr.toInt() + 1;
  numStr = num.toString();
  BufferWriter bw = new BufferedWriter(new FileWriter(fName));
  bw.write(numStr.toString());
  bw.close();
}

//使用圖形數字印出
for (int i =0;i<numStr,length();i++){
%>
<img src = "/path/<% = numStr.charAt(i) %>.gif "></img>
<%
}

stmt.close();
con.close();
%>
</html>

到訪人次最易法
<%@page contextType = "text/html;charset=big5"%>
<%! int count = 0%>
<html>
<head>
  <title>EXCounter</title>
</head>
<body>
  <p align = "left">
  <font size = "5">EXCounter</font>
  </p>
<%
count += 1;
out.print(count);
%>
</body>
</html>

線上拜訪人次及網址
建立資料庫Online資料表informations欄位時間,網址
<%@page contextType = "text/html;charset=big5"%>
<%@page import = "java.sql.* , java.util.Date"%>
<%Date T = new Date(); %>
<html>
<head><title>Online Visitor</title></head>
<body>
<%
response.addIntHeader("refresh,5"); //每五秒重整一次

out.print("This is the page of Online Visitor" + "<br>");

out.print("每五秒重整一次" + "<br>");

載入驅動程式
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")
建立連接物件 連接資料庫
Connection con = DriverManager.getConnection("jdbc:odbc:Online");
建立敘述物件
Statment stmt = con.createStatement();

//捕捉拜訪者網址與時間並輸入資料庫----------------
String timeStr = T.toLocaleString();
out.print("現在時間: " + timeStr + "<br>");
long timeL = T.getTime();
int timeInt = (int)timeL;
String ClientAddr = request.getRemoteAddr();

String sql = "INSERT INTO informations(時間,網址) + VALUE(" + timeInt + ",'" + ClientAddr + "')";
stmt.excuteUpdate(sql);

//刪除10秒前拜訪者資料
int timeDInt = timeInt - 10000;
sql = "DELETE FROM Informations WHERE 時間 <= " + timeDInt + ";";
stmt.excute(sql)

//印出線上拜訪者網址及人數
sql = "SELECT DISTINCT 網址 FROM Informations";
if (sql.excute(sql)){
  out.print("目前線上使用者 : " + "<br>");
  ResultSet rs = stmt.getResultSet();
  int i = 0;
  while(re.next()){
    String addResult = rs.getString("網址");
    out.print(addrResult + "<br>"); //印出網址 
    i++;
  }
  out.print("目前線上人數: " + i + "<br>"); ..印出目前線上人數
}
stmt.close();
con.close();
%>
</body>
</html>

跑馬燈與即時新聞
建立資料庫Marquee資料表informations欄位時間,訊息
<%@page contextType = "text/html;charset=big5"%>
<html>
<head><title>MarQ</title></head>
<body>
<%
String dataStr = "First Marquee";
%>
<b><font color = "#FF0000">
<marquee scrolldelay = "120" loop = "5" bgcolor = "#00FFFF">
<%dataStr%> ~ </marquee></font></b>
</body>
</html>

即時訊息輸入
html
<html>
<head>
<title>Marq</title>
</head>
<body>
<FORM METHOD = "post" ACTION ="name.jsp">
<p align = "left">
即時訊息 : <br>
<TEXTAREA NAME = "data" ROW = "3" COLS="45"></TEXTAREA></p>
<p>
<INPUT TUPE = "submit" VALUE = "送出">
<INPUT TUPE = "reset" VALUE = "取消">
</p>
</FORM>
</body>
</html>

jsp
<%@page contentType = "text/html;charset=big5"%>
<html>
<head><title>Marq</title></head>
<body>
<p align = "center">
<font size = "5"><b>Sub Page of Marq</b></font></p>
<%
request.setCharacterEncoding("big5");
String dataStr = request.getParameter("data");
%>
<b><font color = "#FF0000">
<marquee scrolldelay = "120" loop = "5" bgcolor = "#00FFFF">
<%dataStr%> ~ </marquee></font></b>
</body>
</html>

資料庫即時訊息
html
<html>
<head>
<title>Server Write Font Page of Marq</title>
</head>

<body>
<FORM METHOD = "post" ACTION = "name.jsp">
<p align = "left">
即時訊息:<br>
<TEXTAREA NAME = "marqData" ROWS = "3" COLS = "45"><./TEXTAREA>
</p>
<p>
<INPUT TYPE = "submit" VALUE = "送出">
<INPUT TYPE = "reset" VALUE = "取消">
</p>
</FORM>
</body>
</html>

Server jsp //於Server端 將訊息填入資料庫
<%@page contextType = "text/html;charset=big5"%>
<%@page import = "java.sql.* , java.util.Date"%>
<html>
<head>
<title>Server Marq</title>
</head>
<body>
<p align = "center">
<font size = "5"><b>Sub Page of Server Marq</b></font>
</p>
<%
載入驅動程式
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")
建立連接物件 連接資料庫
Connection con = DriverManager.getConnection("jdbc:odbc:Marquee");
建立敘述物件
Statment stmt = con.createStatement();

request.setCharacterEncoding("big5");
String dataStr = request.getParameter("marqData"); //取得首頁文字資料

if(dataStr = ""){
  out.print("訊息未填寫");
  %>
  <a href = "MarqWriteDB.html" target = "_top">按此回首頁</a>
  <%
}
else {
  Date msgDate = new Date();
  String dateStr = msgDate.toLocaleString();

  String sql = "INSERT INTO Informations(時間,訊息) VALUES('" dateStr  + "',"+ dataStr +")"
  stmt.executeUpdate(sql);
  out.print("成功完成輸入");
  stmt.close();
  con.close();
}
%>
</body>
</html>

Client jsp //於Client端 將DB資料印出
<%@page contextType = "text/html;charset=big5"%>
<%@page import = "java.sql.*"%>
<%@page import = "java.io.*"%>
<html>
<head>
<title>Client Marq</title>
</head>
<body>
<p align = "center">
<font size = "5"><b>Sub Page of Client Marq</b></font>
</p>
<%
載入驅動程式
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")
建立連接物件 連接資料庫
Connection con = DriverManager.getConnection("jdbc:odbc:Marquee");
建立敘述物件
Statment stmt = con.createStatement();
建立存取空間
StringBuffer sb = new StringBuffer();


request.setCharacterEncoding("big5");

String sql = "SELECT * FROM Informations"
if (stmt.execute(sql)){
  ResultSet rs = stmt.getResultSet();
  while(rs.next){
    sb.append(rs.getString("時間"));
    sb.append(rs.getString("訊息"));
  }
}
String Info = sb.toString();
%>
<b><font color = "#FF0000">
<marquee scrolldelay = "120" loop = "3" bgcolor = "#0000FF">
<% =Info %> ~ </marquee></font></b>
<%
stmt.close();
con.close();
%>
</body>
</html>

留言板
建立資料庫Message.accdb資料表Informations欄位時間,名稱,信箱,留言
<html>
<head><title>Front Page of MsgWrite</title></head>
<body>
<FORM METHOD = "post" ACTION = "name.jsp">
<p align = "left">
<font size = "5"><b>Front Page of MsgWrite</b></font>
</p>
<p>
<INPUT TYPE = "text" NAME = "msgName" SIZE = "10"><br>
<INPUT TYPE = "text" NAME = "eMail" SIZE = "20">
</p>
<p><TEXTAREA NAME ="data" ROW = "3" COLS = "45"></TEXTAREA>
<p>
<INPUT TYPE = "submit" VALUE = "送出">
<INPUT TYPE = "reset" VALUE = "取消">
</p>
</FORM>
</body>
</html>

jsp留言輸入資料庫
<%@page contextType = "text/html;charset=big5"%>
<%@page import = "java.sql.* , java.util.Date"%>
<html>
<head>
<title>MsgWrite</title>
</head>
<body>
<p align = "center">
<font size = "5"><b>Sub Page of MsgWrite</b></font>
</p>
<%
載入驅動程式
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")
建立連接物件 連接資料庫
Connection con = DriverManager.getConnection("jdbc:odbc:Message");
建立敘述物件
Statment stmt = con.createStatement();

request.setCharacterEncoding("big5");
String msgName = request.getParameter("msgName");
String eMail = request.getParameter("eMail");
String data = request.getParameter("data");

if(msgName =="" || eMail =="" || data ==""){
  out.print("資料未填寫");
  %><br>
  <a herf = "MsgWrite.html" target = "_top"></a> //按此可以回herf
  <%
}
else {
  Date msgDate = new Date();
  String dateStr = msgDate.toLocaleString();

  String sql = "INSERT INTO Informations( 時間 , 名稱 , 信箱 , 留言) VALUES('" + dateStr + "','" + msgName + "','" + eMail + "','" + data + "')";

stmt.executeUpdate(sql);
out.print("成功完成輸入");

stmt.close();
con.close();
}
%>
</body>
</html>

jsp讀取資料庫內容
<%
String sql = "SELECT * FROM Informations";

if (stmt.excute(sql)){
  Result rs = stmt.getResultSet();

  while (rs.next()){

  rs.getString(" 時間 ");
  rs.getString(" 名稱 ");
  rs.getString(" 信箱 ");
  rs.getString(" 留言 ");
  }
%>
html讀取特定資料庫內容
<html>
<head><title>Front Page of MsgTargetRead</title></head>
<body>
<INPUT TYPE = "text" SIZE = "10" NAME = "msgName">
</body>
</html>
jsp讀取特定資料庫內容

<%
String msgName = request.getParameter("msgName");
String sql = "SELECT * FROM Informations WHERE 名稱 = '"+ msgName + "';";
if(stmt.execute(sql)){
  ResultSet rs = stmt.getResultSet();
  while(rs.next()){
    rs.getString(" 時間 ");
    rs.getString(" 名稱 ");
    rs.getString(" 信箱 ");
    rs.getString(" 留言 ");
  }
}
stmt.close();
con.close();
%>

在jsp內執行html指令
out.print("<FORM METHOD = post ACTION = name.jsp>");
out.print("<INPUT TYPE = radio NAME = postIndex VALUE = " +  value + "> 按鈕名稱");







留言

這個網誌中的熱門文章

無法載入檔案或組件 'System.IO.Compression' 或其相依性的其中之一。

MongoDB 入門

javascript 更改屬性及創建標籤