...
HttpServer.resultLog.println("get\t" + file);
out.println("http/1.1 200 ok");
out.println("mime_version:1.0");
// 需要注意一下mime :p
// 下面这句话有点儿武断了^^
out.println("content_type:text/htm1"); out.println("content_length:" + file.length());
out.println("\n\n"); sendFile(out,file);
...
HttpServer.resultLog.println("get\t" + file);
out.println("http/1.1 200 ok");
out.println("mime_version:1.0");
// 需要注意一下mime :p
// 下面这句话有点儿武断了^^
out.println("content_type:text/htm1"); out.println("content_length:" + file.length());
out.println("\n\n"); sendFile(out,file);
...
解决方案 »
- runnable
- 运行./ikeyman.sh 报错:The java class could not be loaded. java.lang.ExceptionInIniti
- 有什么类或数据结构适合做大量的重复判断
- 正在用java做一个记事本,文本区时用jtextarea做的,但在做事件监听的时候不能用textlistener,所以不能因为文本中的输入字符,删除字符做出事件
- 为什么报错: ".class" expected
- 纸牌小问题,请帮忙!
- 求助用java写的加密算法
- 怎么在文件中找出一个特定String,然后删除那个String?
- 如何将html转成图片
- 这是什么原因。为什么rt包下的AtomicInteger类会只剩下一行package
- 如何实现按下回车键,输入焦点在各个控件之间轮回????????
- 如何判断一个信箱地址有效(判断一个信箱地址存在)
import java.net.*;
import java.io.*;
import java.util.*;class ServerOne extends Thread{
private Socket client;
private BufferedReader in;
private PrintWriter out; public ServerOne(Socket client) throws IOException{
this.client = client;
in = new BufferedReader(new InputStreamReader(client.getInputStream()));
out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(client.getOutputStream())),true);
start();
}
public void run(){
try{
while(true){
String askLine = in.readLine();
if(askLine.indexOf("GET") != -1){
String fileName = getFileName(askLine);
File file =new File(fileName);
if(file.exists()){
System.out.println("get\t" + file);
HttpServer.resultLog.println("get\t" + file +"\r");
out.println("http/1.0 200 ok\r");
out.println("mime_version:1.0\r");
int ind = fileName.lastIndexOf('.');
String ct = null;
if (ind > 0) {
ct = (String)HttpServer.map.get(fileName.substring(ind));
}
//else ct = "text/html";
System.out.println("content_type: " + ct + "\r");
out.println("content_length:" + file.length() + "\r");
out.println("content_type: " + ct + "\r");
out.println("\r");
sendFile(out,file); }
}
System.out.println("askLine\t" + askLine);
HttpServer.resultLog.println("User ask \t" +askLine);
}
}catch(IOException e){
}finally{
try{
client.close();
}catch(IOException e){
}
}
} String getFileName(String askLine){
askLine = askLine.substring(askLine.indexOf(' ') + 1);
askLine = askLine.substring(0,askLine.indexOf(' '));
System.out.println("asdf" + askLine);
try{
if(askLine.indexOf('/') == (askLine.length() - 1)){
askLine = askLine.substring(1);
askLine = askLine + "index.html";
System.out.println("User ask \t" + askLine);
HttpServer.resultLog.println("User ask \t" + askLine);
}
else{
askLine = askLine.substring(1);
System.out.println("User view \t" + askLine);
HttpServer.resultLog.println("User ask \t" + askLine);
} }catch(Exception e){}
return askLine;
}//end getFileName void sendFile(PrintWriter out,File file) throws IOException{
BufferedReader readFile = new BufferedReader(new FileReader(file));
String s1,s2 = new String();
while((s1 = readFile.readLine()) != null){
s2= s2 + s1 + "\n";
}
out.write(s2);
readFile.close();
out.flush();
out.close();
System.out.println(file + "\tOK");
}}//end ServerOnepublic class HttpServer{
static PrintWriter resultLog;//log file
static final int PORT = 80;
static Hashtable map = new Hashtable();//can not include basis type
static {
fillMap();
}
static void setSuffix(String k,String v){
map.put(k, v);
}
static void fillMap(){
//setSuffix("","content/unknown");
setSuffix(".uu","application/octet-stream");
setSuffix(".exe","application/octet-stream");
setSuffix(".ps","application/postscript");
setSuffix(".zip","application/zip");
setSuffix(".sh","application/x-shar");
setSuffix(".tar","application/x-tar");
setSuffix(".snd","audio/basic");
setSuffix(".au","audio/basic");
setSuffix(".wav","audio/x-wav");
setSuffix(".gif","image/gif");
setSuffix(".jpg","image/jpeg");
setSuffix(".jpeg","image/jpeg");
setSuffix(".htm","text/html");
setSuffix(".html","text/html");
setSuffix(".text","text/plain");
setSuffix(".pl","text/plain");
setSuffix(".txt","text/plain");
} public static void main(String[] args) throws IOException{
resultLog = new PrintWriter(new BufferedWriter(new FileWriter("httpLog.log")),true);
ServerSocket httpOne = new ServerSocket(PORT);
System.out.println("Server Started");
resultLog.println("Server Started");
try{
while(true){
Socket client = httpOne.accept();
System.out.println(client);
resultLog.println("\n" + client);
try{
new ServerOne(client);
}catch(IOException e){
client.close();
e.printStackTrace();
resultLog.println(e + "\nCloseed" + "\n");
}
}
}finally{
httpOne.close();
System.out.println("Server Closed");
resultLog.println("Server Closed");
}
}
}///:~
http://developer.java.sun.com/developer/technicalArticles/Networking/Webserver/WebServercode.html