這裡提供兩種方法,但經過我的測試是 ResourceHandler 客戶端不能下載大檔案 (例如 > 5 MB) 會發生例外
而 WebAppContext 就沒這個問題,如果要使用大檔案建議使用 WebAppContext 來做會比較好
import org.eclipse.jetty.server.Server;
這裡提供兩種方法,但經過我的測試是 ResourceHandler 客戶端不能下載大檔案 (例如 > 5 MB) 會發生例外
而 WebAppContext 就沒這個問題,如果要使用大檔案建議使用 WebAppContext 來做會比較好
import java.util.HashMap;
import java.util.Map;
方法一:
Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH) +1;
int day = cal.get(Calendar.DAY_OF_MONTH);
System.out.println(year + "-" + month + "-" + day);
// 為什麼 MONTH 要 +1 請參考:http://openhome.cc/Gossip/JavaGossip-V2/UseCalendar.htm
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
JOptionPane.showMessageDialog(null, "Hello");
這個範例我是採用上傳圖片(至少看的到),當然其他檔案格式也都可以上傳
執行結果:
index.html ------------------------
詳細可參考: https://wiki.eclipse.org/Jetty/Tutorial/Embedding_Jetty
String name = request.getParameter("name");
瀏覽器輸入 http://127.0.0.1:8888/Hello/ 即可看見效果
package server;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.handler.ContextHandler;
public class Main {
public static void main(String[] args) throws Exception {
Server server = new Server(8888);
ContextHandler context = new ContextHandler();
package my;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class NewClass implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent sce) {
System.out.println("Start");
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
package main;
import java.io.*;
import java.net.InetSocketAddress;
import com.sun.net.httpserver.HttpExchange;
import com.sun.net.httpserver.HttpHandler;
import com.sun.net.httpserver.HttpServer;
public class Main {
public static void main(String[] args) throws Exception {
HttpServer server = HttpServer.create(new InetSocketAddress(80), 0);
server.createContext("/Hello", new MyHandler());
package main;
import java.io.IOException;
import java.io.OutputStream;
import java.net.InetSocketAddress;
import com.sun.net.httpserver.HttpExchange;
import com.sun.net.httpserver.HttpHandler;
import com.sun.net.httpserver.HttpServer;
public class Main {
public static void main(String[] args) throws Exception {
HttpServer server = HttpServer.create(new InetSocketAddress(80), 0); // Port
import javax.swing.*;
JFrame f = new JFrame("標題");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(400, 300);
f.setVisible(true);
Container cp =f.getContentPane();
cp.setLayout(null);
請先到 Tomcat 網站下載嵌入式 Tomcat 的 JAR : tomcat-embed-core.jar
package main;
import java.io.File;
import org.apache.catalina.startup.Tomcat;
public class Main {
public static void main(String[] args) {
String prjectPath = new File("").getAbsolutePath();
Tomcat tomcat = new Tomcat();
請先至 http://dom4j.sourceforge.net/ 下載 Dom4j 的 JAR 並加入到您的專案中,目前我用的是 1.6版,最新為 2.0版(除了支持自己的 Dom4j 外,還支持其他Java XML 的類別庫,如:DOM、SAX、JAXP)。
創建XML:
import java.io.*; import java.util.*; import org.dom4j.*; import org.dom4j.io.*; import java.nio.charset.Charset; public class XMLTest { public static void main(String[] args) throws Exception { Document doc = DocumentHelper.createDocument(); //------------------------------------------------------ // 前置動作,依需求可省略: doc.addProcessingInstruction("xml", "type=\"user-data\""); // 宣告 /* doc.addDocType(<根元素>,<註冊//組織//類型標籤//定義語言>,<文檔類型定義位置>); * 基本上 <根元素> 名稱要與 doc.addElement() 相同,程式碼第 23 行 */ doc.addDocType("自訂XML", // 網頁這部分會宣告 HTML "-//水果公司//DTD MyXML 1.0//zh-tw", "http://www.w3.org/TR/myXML/DTD/myXML.dtd"); doc.addComment("這是註解"); //------------------------------------------------------ // 建立根元素(父元素): Element root = doc.addElement("自訂XML"); // 建立 <自訂XML> //------------------------------------------------------ // 內容(子元素): Element root_user = root.addElement("用戶"); // 在<根>底下建立 <用戶> root_user.addAttribute("編號", "1"); //建立<用戶>的屬性: 編號="1" root_user.addAttribute("名子", "蘋果"); //建立<用戶>的屬性: 名子="蘋果" root_user.addAttribute("地址", "月球 惠更斯山 之最高峰"); Element root_user_address = root_user.addElement("手機"); root_user_address.addAttribute("電信", "種花電信"); root_user_address.addAttribute("號碼", "091314520"); root_user_address.addText("山寨的 IPhone 5"); // <手機>山寨的 IPhone 5 //----------------------------------------- Element e2 = root.addElement("用戶"); e2.addAttribute("編號", "2"); e2.addAttribute("名子", "香蕉"); e2.addAttribute("地址", "地球 喜馬拉雅山 之最低峰"); Element e2_1 = e2.addElement("手機"); e2_1.addAttribute("電信", "近傳電信"); e2_1.addAttribute("號碼", "0954385478"); e2_1.addText("三爽"); //----------------------------------------- Element e3 = root.addElement("用戶"); e3.addAttribute("編號", "3"); e3.addAttribute("名子", "蓮霧"); e3.addAttribute("地址", "地球 台灣 總統府"); Element e3_1 = e3.addElement("手機"); e3_1.addAttribute("電信", "吃土電信"); e3_1.addAttribute("號碼", "097878787878"); e3_1.addText("HTC Magic 魔術機"); //------------------------------------------------------ // 預覽/輸出 XML,因為不會格式化 XML 所以全部擠在同一行...: System.out.println(doc.asXML()); //------------------------------------------------------ // 儲存 XML 檔案: FileWriter fw = new FileWriter("D:/My.xml"); // 可自訂 // 下面這行:預設自動換行、Tab 為 2 個空白 // OutputFormat of = OutputFormat.createPrettyPrint(); // 格式化XML OutputFormat of = new OutputFormat(); // 格式化XML of.setIndentSize(4); // 設定 Tab 為 4 個空白 of.setNewlines(true);// 設定 自動換行 XMLWriter xw = new XMLWriter(fw, of); xw.write(doc); xw.close(); } }
編譯並執行後,可查看 D:/My.xml(預設) 路徑,會發現已經有新建 XML 檔案,此時用記事本打開會發現沒有換行,但是實際上是有換行的,只是記事本看不懂,所以可以用 IE 或 GOOGLE 瀏覽器 或 IDE 打開,會發現他們是有經過格式化 排版,效果如下:
更多詳細說明可參考:http://www.blogjava.net/junglesong/archive/2008/02/21/181196.html