非java web项目启动
首先
说下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项目,并使用网页请求接口
package game.gm.test; import com.alibaba.fastjson.JSONObject; import com.sun.net.httpserver.HttpExchange; import com.sun.net.httpserver.HttpHandler; import com.sun.net.httpserver.HttpServer; import java.io.*; import java.net.InetSocketAddress; import java.net.URI; import java.util.Map; public class TestApp { public static void main(String[] args) throws IOException { HttpServer httpServer = HttpServer.create(new InetSocketAddress(8001), 0); httpServer.createContext("/test", new TestHandler()); httpServer.start(); System.out.println("8001端口已成功启动"); } static class TestHandler implements HttpHandler { @Override public void handle(HttpExchange httpExchange) throws IOException { //返回 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 = new InputStreamReader(requestBody); BufferedReader bufferedReader = new BufferedReader(inputStreamReader); StringBuffer stringBuffer = new StringBuffer(); String s = ""; JSONObject jsonObject = new JSONObject(); 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方法
请求及参数设置
请求结果:
源码,是痛苦的,又是快乐的,如果没有这痛苦,也就没有了这快乐!
本文作者:好Wu赖
本文链接:https://www.cnblogs.com/erlongxizhu-03/p/13558301.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现