2013年5月29日 星期三

JSP 網頁下,提供USER下SQL指令

利用Mysql 建立 一個資料庫,利用JDBC 連上資料庫
使用者可於Textarea 下使用SQL 語法


<%@page import="com.mysql.jdbc.Driver"%>
<%@ page language="java" contentType="text/html; charset=BIG5"
    pageEncoding="BIG5"
    import="java.sql.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=uft-8">
<title>教育訓練管理系統</title>
</head>
<body>

<table width="2" ><tr > <td></td>
<form action=SQL.jsp>

    <textarea cols=200 rows=15 name="sqltext" width=1
    text=<%=request.getParameter("sqlText")%>>
   
    </textarea>
    <input type="submit" value="ok"/>
</form>
</tr>
</table>

<%
try
{
String sqlText=request.getParameter("sqltext");
out.write(sqlText);
Class.forName("com.mysql.jdbc.Driver");
System.out.println("Driver is loaded");
Connection c =DriverManager.getConnection("jdbc:mysql://localhost:3306/db","user","pwd");
Statement s = c.createStatement();
//sqlText="Select idEducation id from education";
        ResultSet rs = s.executeQuery(sqlText);
        ResultSetMetaData rsmeta = rs.getMetaData();

        //out.print("rs.getStatement()="+rs.getStatement());
        //out.print("rs.getArray(0)"+rs.getArray(0));
       
        int cols = rsmeta.getColumnCount();
        //out.print(""+cols);
        out.print("<Table Border=1>");
    out.print("<tr>");
   
    for(int i=1; i<=cols; i++)
        {
          out.print("<th>");
          out.print(rsmeta.getColumnLabel(i));
          out.print("</th>");
        }
    out.print("</tr>");
    //rs.first();
        while(rs.next()) // Retrieve data from ResultSet
       {          
        out.print("<tr>");
        for (int i=1;i<=cols;i++)
        out.print("<th border=1>"+rs.getString(i)+"</th>");      
           
        out.print("</tr>");
        }
        out.print("</Table>");
}catch(Exception e)
{
System.out.println("Exception : " +e);
}
%>

</body>
</html>

2013年4月20日 星期六

Linklist 範例




LinkedList 使用範例


package dispatch;

import java.util.HashMap;
import java.util.LinkedList;
import java.util.Queue;

public class Dispatch {

/**
* @param args
*/
String L[]={"40","39","38","37","26","25","12","11","4","3","10","9","24","23","60","59",
"7","8","22","21","58","57","19","20","53","54","55","56"};
 
String R[]={"41","42","43","44","27","28","29","30","13","14","5","6","15","16","31","32","45","46"
  , "2","1","18","17","33","34","47","48","36","35","52","51","50","49"  
};

LinkedList <String> maps;
public void  process()
{
maps=new LinkedList<>();
HashMap map=new HashMap<>();
for(int i=0;i<L.length;i++)
{
maps.add(L[i]);
}

while (!maps.isEmpty())
{System.out.print(maps.remove());
System.out.print("\t");
}


}


public static void main(String[] args) {
// TODO Auto-generated method stub
new Dispatch().process();

}

}


2013年4月16日 星期二

List 介面使用


import java.util.LinkedList;
import java.util.List;


public class ListExample {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
List list1= new LinkedList<>();
list1.add("abc");
list1.add(new Integer(3));
list1.add(new Boolean(true));
list1.add(new Integer(3));
System.out.print("LinkedList:"+list1);

}

}





2013年2月26日 星期二

第一隻 JSP





如要將請求轉發另一JSP 頁面處理,可使用標準頁籤<jsp:forward>,例如:jsp:forward page="sayYes.jsp">, 目前頁面會生成一個servlet,sayYes 即為一個Servlet。
Response的職責將被指派給被forward的對象。如果要傳遞參數時可以搭配<jsp:param >動作元素指定參數給被forward的對象。forward的對象回應之後,執行流程會回到原頁面,你可以再進行一些陳述執行,不過無法再作任何回應







2013年2月24日 星期日

開啟Eclipse 出現 Fail to create the Java Virtual Machine





開啟Eclipse 出現 Fail to create the Java Virtual Machine。



爬文之後發現問題出現在Eclipse.ini 檔中的


-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.200.v20120522-1813
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-product
org.eclipse.epp.package.java.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
256M
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Dhelp.lucene.tokenizer=standard
-Xms40m
-Xmx512m

將256 M改為128 M 即可正常啟動

2013年2月19日 星期二

Web 伺服器和Tomcat

一般所謂的Web 伺服器,是指一種軟體。管理Servlet /JSP 並不屬於Web 伺服器的權責,而是交由Web 容器(亦稱為Servlet/JSP )容器。當Web 伺服器收到用戶端瀏覽器的請求時,將其轉發給Web 容器,Web 容器呼叫對應的Servlet 回應請求,Web伺服器再將Web 容器的回應發送給用戶端瀏覽器。

2013年2月2日 星期六

Web 控制項 避免重複觸發 Button



1.
屬性中 OnClientClick 設定 disabled=true;this.form1.submit();
UseSubmitBehavious=false,將產生下列的_doPostBack











執行結果


2.或者可以在Code Behind 程式碼中加上


/* Sensor 代表觸動事件來源物件,e為傳遞給該事件的額外描述
在畫面上的點選動作,可用e來擷取

*/
 protected void Button1_Click(object sender, EventArgs e)
    {
        Button1.Enabled = false;
    }