首先
说下Java Web项目与Java项目的区别:
1.Java Web项目是基于Java EE类的;而Java项目是基于Java应用程序的。
2.Java项目主要面向桌面程序的应用,主要是awt、swing这类的编码,不包括JSP等前台页面的代码,大部分是CS架构的工程和一些jar包;
JavaWeb项目是BS架构的系统,是网页的编码,像Jsp、Servlet、Struts这类的, JavaWeb项目部署到服务器上,任何用户都可以通过浏览器来访问。
3.Java Web项目中的JAVA文件是tomcat服务器来触发的,而java项目是由Main()方法来开始的。
4.JavaWeb项目中的Java文件是tomcat服务器来触发的,脱离了容器如:web服务器Tomcat,jboss就无法启动。而Java项目是由main()方法来开始的,直接依赖JVM就能被编译执行。
下面使用main方法测试启动java项目,并使用网页请求接口
packagegame.gm.test;importcom.alibaba.fastjson.JSONObject;importcom.sun.net.httpserver.HttpExchange;importcom.sun.net.httpserver.HttpHandler;importcom.sun.net.httpserver.HttpServer;import java.io.*;importjava.net.InetSocketAddress;importjava.net.URI;importjava.util.Map;public classTestApp {public static void main(String[] args) throwsIOException {
HttpServer httpServer= HttpServer.create(new InetSocketAddress(8001), 0);
httpServer.createContext("/test", newTestHandler());
httpServer.start();
System.out.println("8001端口已成功启动");
}static class TestHandler implementsHttpHandler {
@Overridepublic void handle(HttpExchange httpExchange) throwsIOException {//返回
String rtn="调用成功";
httpExchange.sendResponseHeaders(200, 0);//获取请求路径
URI requestURI =httpExchange.getRequestURI();
System.out.println("请求路径为:"+requestURI);//获取请求方法
String requestMethod =httpExchange.getRequestMethod();
System.out.println("请求方法为:"+requestMethod);//获取请求体
InputStream requestBody =httpExchange.getRequestBody();
InputStreamReader inputStreamReader= newInputStreamReader(requestBody);
BufferedReader bufferedReader= newBufferedReader(inputStreamReader);
StringBuffer stringBuffer= newStringBuffer();
String s= "";
JSONObject jsonObject= newJSONObject();while ((s = bufferedReader.readLine()) != null) {
stringBuffer.append(s.trim());
}
System.out.println(stringBuffer);//此处引入谷歌Gson框架将String转为Map方便获取参数
System.out.println("请求参数为:"+jsonObject.get("cmd"));
System.out.println("请求参数为:"+jsonObject.get("phone"));
OutputStream responseBody=httpExchange.getResponseBody();
responseBody.write(rtn.getBytes("GBK"));//设置gbk页面(http://127.0.0.1:8001/test?cmd=%E6%B5%8B%E8%AF%95&phone=135)显示正常文字:调用成功
responseBody.close();
}
}
}
启动成功:这里是在eclipse启动的
服务器启动可打成jar包,使用命令启动main方法
请求及参数设置
请求结果: