gpt4 book ai didi

java - 在 Jetty servlet 中处理 uri 参数

转载 作者:行者123 更新时间:2023-12-02 10:59:45 24 4
gpt4 key购买 nike

我已经使用 Jetty 创建了这个服务器,如下所示。我还创建了一个监听一些 uri (/"clientId") 的 servlet

现在可以正常工作了: http://localhost:8080/clientId

但我希望这个能起作用: http://localhost:8080/?clientId=3

如何让我的代码处理 /?clientId=3 部分

我需要处理带参数的 uri..

我需要添加/更改什么?

谢谢!!

import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.handler.ContextHandler;

public class ProtectingServer
{
public static void main(String[] args) throws Exception
{
org.eclipse.jetty.server.Server server = new org.eclipse.jetty.server.Server(8080);

ContextHandler context = new ContextHandler();
context.setContextPath("/clientId");
context.setResourceBase(".");
context.setClassLoader(Thread.currentThread().getContextClassLoader());
server.setHandler(context);

context.setHandler(new ClientHandler());

server.start();
server.join();

System.out.println();
}


}

客户端处理程序

import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.handler.AbstractHandler;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

public class ClientHandler extends AbstractHandler {

@Override
public void handle(String target,
Request baseRequest,
HttpServletRequest request,
HttpServletResponse response) throws IOException

{
response.setContentType("text/html; charset=utf-8");
response.setStatus(HttpServletResponse.SC_OK);

PrintWriter out = response.getWriter();
String url = request.getParameter("url");
out.println("<h1>" + "HELLO" + "</h1>");


baseRequest.setHandled(true);
}


}

最佳答案

您有一个设置/配置 context.setContextPath("/clientId")

此设置的有效 URL(并考虑您的 ClientHandler 代码)将是...

http://localhost:8080/clientId/?url=myurlvalue

关于java - 在 Jetty servlet 中处理 uri 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51424039/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com