我正在創建一個基本服務器,它直接從瀏覽器接受HTTP協議。我想要做的就是使用DoGet方法來使用HTML頁面來響應GET請求。通常,您可以使用servlet完成相同的結果,但對於練習,我使用接口MyHttpRequest,MyHttpResponse,MyHttpHandler來執行與servlet相同的功能。這是我到目前爲止有:服務器對瀏覽器的響應:調用doGet方法Java
public class Server implements MyHttpRequest, MyHttpResponse, MyHttpHandler {
private static final String CONTENT_TYPE = "text/html; charset=windows-1252";
public static void main(String[] args) throws IOException {
Server server = new Server();
ServerSocket serversocket = new ServerSocket(8080);//localhost
Socket socket = serversocket.accept();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String line = bufferedReader.readLine();
System.out.println(line);
if(line.equals("GET/HTTP/1.1"))
{
System.out.println("Request works. Responding now...");
//PROBLEM CODE //--------------------------------------------//
doGet(problem_parameter1, problem_parameter2,);
//-----------------------------------------------------------//
}
OutputStream out = socket.getOutputStream();
PrintWriter pw = new PrintWriter(out, true);
//finally {
out.flush();
out.close();
socket.close();
serversocket.close();
//}
}
我的doGet方法:
@Override
public void doGet(MyHttpRequest request, MyHttpResponse response)
{
//response
response.getContentType();
PrintWriter pw = response.getWriter();
pw.println("<html><body>");
pw.println("<h1>Welcome to our Site!</h1>");
pw.println("<p>We hope you enjoy your stay.</p>");
pw.println("</body></html>");
pw.close();
}
我的問題是,我很困惑,我所應該使用的主要doGet方法的參數。練習的要點是能夠使用doGet方法將HTML發送到本地主機:8080 - 但我不知道如果不使用JSP或Servlet,這是如何實現的。
有什麼我在這裏失蹤?我研究了使用doGet所能做的所有事情,但我一直覺得Servlet會在需要時自動調用doGet或doPost。如果我不使用servlet,應該如何調用doGet方法?
任何有用的建議表示讚賞。