mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-05-09 23:51:34 +08:00
fix code
This commit is contained in:
parent
28fff1fbac
commit
c738d783c2
@ -0,0 +1,49 @@
|
||||
/*
|
||||
* Copyright (c) 2024 Hutool Team and hutool.cn
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.dromara.hutool.http.server.engine.jetty;
|
||||
|
||||
import org.dromara.hutool.http.server.handler.HttpHandler;
|
||||
import org.eclipse.jetty.server.Request;
|
||||
import org.eclipse.jetty.server.handler.AbstractHandler;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
/**
|
||||
* Jetty9版本使用的Handler
|
||||
*
|
||||
* @author Looly
|
||||
*/
|
||||
public class Jetty9Handler extends AbstractHandler {
|
||||
|
||||
private final HttpHandler handler;
|
||||
|
||||
/**
|
||||
* 构造
|
||||
*
|
||||
* @param handler 处理器
|
||||
*/
|
||||
public Jetty9Handler(final HttpHandler handler) {
|
||||
this.handler = handler;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(final String target, final Request baseRequest,
|
||||
final HttpServletRequest request, final HttpServletResponse response) {
|
||||
handler.handle(new Jetty9Request(request), new Jetty9Response(response));
|
||||
}
|
||||
}
|
@ -16,7 +16,7 @@
|
||||
|
||||
package org.dromara.hutool.http.server.engine.jetty;
|
||||
|
||||
import org.dromara.hutool.http.server.ServerRequest;
|
||||
import org.dromara.hutool.http.server.handler.ServerRequest;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.io.IOException;
|
||||
|
@ -17,7 +17,7 @@
|
||||
package org.dromara.hutool.http.server.engine.jetty;
|
||||
|
||||
import org.dromara.hutool.core.io.IORuntimeException;
|
||||
import org.dromara.hutool.http.server.ServerResponse;
|
||||
import org.dromara.hutool.http.server.handler.ServerResponse;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
|
@ -17,36 +17,49 @@
|
||||
package org.dromara.hutool.http.server.engine.jetty;
|
||||
|
||||
import org.dromara.hutool.core.lang.Assert;
|
||||
import org.dromara.hutool.core.util.ObjUtil;
|
||||
import org.dromara.hutool.http.HttpException;
|
||||
import org.dromara.hutool.http.server.ServerConfig;
|
||||
import org.dromara.hutool.http.server.engine.AbstractServerEngine;
|
||||
import org.eclipse.jetty.http.HttpVersion;
|
||||
import org.eclipse.jetty.server.*;
|
||||
import org.eclipse.jetty.server.handler.AbstractHandler;
|
||||
import org.eclipse.jetty.util.ssl.SslContextFactory;
|
||||
|
||||
import javax.net.ssl.SSLContext;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
/**
|
||||
* Jetty引擎实现
|
||||
*
|
||||
* @author Looly
|
||||
*/
|
||||
public class Jetty9Engine extends AbstractServerEngine {
|
||||
public class JettyEngine extends AbstractServerEngine {
|
||||
|
||||
private Server server;
|
||||
/**
|
||||
* 由于Jetty9和以上版本中接口实现不同,此处根据不同版本做兼容自定义
|
||||
*/
|
||||
private Handler jettyHandler;
|
||||
|
||||
/**
|
||||
* 构造
|
||||
*/
|
||||
public Jetty9Engine() {
|
||||
public JettyEngine() {
|
||||
// issue#IABWBL JDK8下,在IDEA旗舰版加载Spring boot插件时,启动应用不会检查字段类是否存在
|
||||
// 此处构造时调用下这个类,以便触发类是否存在的检查
|
||||
Assert.notNull(Server.class);
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置Jetty处理器,用于处理请求
|
||||
*
|
||||
* @param jettyHandler 处理器
|
||||
* @return this
|
||||
*/
|
||||
public JettyEngine setJettyHandler(final Handler jettyHandler) {
|
||||
this.jettyHandler = jettyHandler;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void start() {
|
||||
initEngine();
|
||||
@ -80,13 +93,8 @@ public class Jetty9Engine extends AbstractServerEngine {
|
||||
final ServerConfig config = this.config;
|
||||
final Server server = new Server();
|
||||
server.addConnector(createConnector(server, config));
|
||||
server.setHandler(new AbstractHandler() {
|
||||
@Override
|
||||
public void handle(final String target, final Request baseRequest,
|
||||
final HttpServletRequest request, final HttpServletResponse response) {
|
||||
handler.handle(new Jetty9Request(request), new Jetty9Response(response));
|
||||
}
|
||||
});
|
||||
server.setHandler(ObjUtil.defaultIfNull(this.jettyHandler,
|
||||
() -> new Jetty9Handler(this.handler)));
|
||||
this.server = server;
|
||||
}
|
||||
|
@ -33,7 +33,7 @@ import org.dromara.hutool.http.meta.ContentTypeUtil;
|
||||
import org.dromara.hutool.http.meta.HeaderName;
|
||||
import org.dromara.hutool.http.multipart.MultipartFormData;
|
||||
import org.dromara.hutool.http.multipart.UploadSetting;
|
||||
import org.dromara.hutool.http.server.ServerRequest;
|
||||
import org.dromara.hutool.http.server.handler.ServerRequest;
|
||||
|
||||
import java.io.InputStream;
|
||||
import java.net.HttpCookie;
|
||||
|
@ -22,7 +22,7 @@ import org.dromara.hutool.core.io.IORuntimeException;
|
||||
import org.dromara.hutool.core.io.IoUtil;
|
||||
import org.dromara.hutool.http.meta.ContentType;
|
||||
import org.dromara.hutool.http.meta.HttpStatus;
|
||||
import org.dromara.hutool.http.server.ServerResponse;
|
||||
import org.dromara.hutool.http.server.handler.ServerResponse;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
|
@ -19,7 +19,7 @@ package org.dromara.hutool.http.server.engine.undertow;
|
||||
import io.undertow.server.HttpServerExchange;
|
||||
import io.undertow.util.HeaderMap;
|
||||
import org.dromara.hutool.core.util.CharsetUtil;
|
||||
import org.dromara.hutool.http.server.ServerRequest;
|
||||
import org.dromara.hutool.http.server.handler.ServerRequest;
|
||||
|
||||
import java.io.InputStream;
|
||||
import java.nio.charset.Charset;
|
||||
|
@ -19,7 +19,7 @@ package org.dromara.hutool.http.server.engine.undertow;
|
||||
import io.undertow.io.Sender;
|
||||
import io.undertow.server.HttpServerExchange;
|
||||
import io.undertow.util.HttpString;
|
||||
import org.dromara.hutool.http.server.ServerResponse;
|
||||
import org.dromara.hutool.http.server.handler.ServerResponse;
|
||||
|
||||
import java.io.OutputStream;
|
||||
import java.nio.ByteBuffer;
|
||||
|
@ -16,11 +16,9 @@
|
||||
|
||||
package org.dromara.hutool.http.server.handler;
|
||||
|
||||
import org.dromara.hutool.http.server.ServerRequest;
|
||||
import org.dromara.hutool.http.server.ServerResponse;
|
||||
|
||||
/**
|
||||
* HTTP请求处理器
|
||||
* HTTP请求处理器<br>
|
||||
* 抽象请求处理,对于不同的HTTP服务器,将这个处理器封装成对应的处理器,例如Jetty的JettyHandler,Undertow的UndertowHandler等
|
||||
*
|
||||
* @author Looly
|
||||
*/
|
||||
|
@ -19,8 +19,6 @@ package org.dromara.hutool.http.server.handler;
|
||||
import org.dromara.hutool.core.collection.ListUtil;
|
||||
import org.dromara.hutool.core.io.file.FileUtil;
|
||||
import org.dromara.hutool.http.meta.HttpStatus;
|
||||
import org.dromara.hutool.http.server.ServerRequest;
|
||||
import org.dromara.hutool.http.server.ServerResponse;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.List;
|
||||
|
@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.dromara.hutool.http.server;
|
||||
package org.dromara.hutool.http.server.handler;
|
||||
|
||||
import org.dromara.hutool.core.io.IORuntimeException;
|
||||
import org.dromara.hutool.core.io.IoUtil;
|
@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.dromara.hutool.http.server;
|
||||
package org.dromara.hutool.http.server.handler;
|
||||
|
||||
import org.dromara.hutool.core.io.IoUtil;
|
||||
import org.dromara.hutool.core.io.file.FileUtil;
|
@ -15,6 +15,8 @@
|
||||
*/
|
||||
|
||||
/**
|
||||
* {@link com.sun.net.httpserver.HttpHandler} 实现包装
|
||||
* HTTP服务器请求和响应处理器的统一封装
|
||||
*
|
||||
* @author Looly
|
||||
*/
|
||||
package org.dromara.hutool.http.server.handler;
|
||||
|
@ -21,6 +21,8 @@ import org.dromara.hutool.core.lang.Console;
|
||||
import org.dromara.hutool.core.map.multi.ListValueMap;
|
||||
import org.dromara.hutool.http.HttpUtil;
|
||||
import org.dromara.hutool.http.server.engine.sun.SimpleServer;
|
||||
import org.dromara.hutool.http.server.handler.ServerRequest;
|
||||
import org.dromara.hutool.http.server.handler.ServerResponse;
|
||||
|
||||
/**
|
||||
* http://localhost:8888/?name=hutool
|
||||
|
@ -2,11 +2,11 @@ package org.dromara.hutool.http.server.engine;
|
||||
|
||||
import org.dromara.hutool.core.lang.Console;
|
||||
import org.dromara.hutool.http.server.ServerConfig;
|
||||
import org.dromara.hutool.http.server.engine.jetty.Jetty9Engine;
|
||||
import org.dromara.hutool.http.server.engine.jetty.JettyEngine;
|
||||
|
||||
public class JettyTest {
|
||||
public static void main(String[] args) {
|
||||
final Jetty9Engine engine = new Jetty9Engine();
|
||||
final JettyEngine engine = new JettyEngine();
|
||||
engine.init(ServerConfig.of());
|
||||
engine.setHandler((request, response) -> {
|
||||
Console.log(request.getPath());
|
||||
|
Loading…
x
Reference in New Issue
Block a user