这段时间,学习了一下spring的使用,已经能整合mybitas,security,swagger封装一些redis工具还有一些常用的库去做CRUD了。从gin转到spring最大的感受就是,spring确实是一个大而全的巨无霸框架,几乎啥都有。mybitas-plus也很方便,可能初学的原因,感觉没有gin那么方便,有些许复杂,可能是配置文件这些?gin一般只需要写一个配置文件就差不多。但是spring的IOC注入,容器概念,确实很方便。那没有spring怎么写一个java web程序呢?
java也和go一样有官方的net库
javaimport java.io.IOException;
import java.io.OutputStream;
import java.net.InetSocketAddress;
import com.sun.net.httpserver.HttpHandler;
import com.sun.net.httpserver.HttpServer;
这里我们来引入库,然后看看怎么写一个简单的http服务
java public static void main(String[] args) throws IOException {
int port = 8000; // 设置服务器端口号
HttpServer server = HttpServer.create(new InetSocketAddress(port), 0);
// 创建路由处理器,处理根路径的请求
server.createContext("/", new MyHandler());
server.setExecutor(null); // 使用默认的线程池
server.start();
System.out.println("Server started on port " + port);
}
也是很简洁的,对于createContext第二个参数,需要实现过HttpHandler
接口
javastatic class MyHandler implements HttpHandler {
@Override
public void handle(com.sun.net.httpserver.HttpExchange exchange) throws IOException {
String response = "Hello, World!"; // 设置响应内容
exchange.sendResponseHeaders(200, response.length()); // 设置响应状态码和内容长度
OutputStream os = exchange.getResponseBody();
os.write(response.getBytes()); // 写入响应内容
os.close();
}
}
这个接口只有一个Handler
方法,重写即可。
这是一个简单的web程序。
后面java定义了servlet。servlet是java web应用的基础
本质上是一个普通的接口,但是这个接口是JVM定义的,统一的规范
javapackage javax.servlet;
import java.io.IOException;
public interface Servlet {
// 初始化方法
void init(ServletConfig var1) throws ServletException;
// 包含一个ServletConfig
ServletConfig getServletConfig();
// 运行方法
void service(ServletRequest var1, ServletResponse var2) throws ServletException, IOException;
String getServletInfo();
void destroy();
}
下面是ServletConfig
java
public interface ServletConfig {
String getServletName(); //的到对应的servlet的名字。
ServletContext getServletContext(); //得到servletContext
String getInitParameter(String var1);
Enumeration<String> getInitParameterNames();
}
ServletConfig配置就是如下的xml
xml<servlet>
<servlet-name>SimpleServletContainer</servlet-name>
<servlet-class>com.example.SimpleServletContainer</servlet-class>
</servlet>
<servlet>
<servlet-name>springMvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/springmvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
Servlet容器: 负责创建管理Servlet生命周期。还有接受web请求,然后封装创建ServletRequest 和 ServletResponse 对象,并把它作为参数传给指定的servlet的service方法。
参考:https://www.zhihu.com/question/495411426/answer/2196481247
本文作者:yowayimono
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!