在 Jetty servlet 中处理 uri 参数
handle uri parameters in Jetty servlet
我已经使用 Jetty 创建了这个服务器,如下所示。
我还创建了一个 servlet 来监听一些 uri (/"clientId")
现在可以正常工作了:
http://localhost:8080/clientId
但我希望它能起作用:
http://localhost:8080/?clientId=3
如何让我的代码处理 /?clientId=3 部分
我需要用参数处理 uri..
我需要什么 add/change?
谢谢!!
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);
}
}
你有 setup/configuration 和 context.setContextPath("/clientId")
此设置(并考虑您的 ClientHandler
代码)的有效 URL 将是 ...
http://localhost:8080/clientId/?url=myurlvalue
我已经使用 Jetty 创建了这个服务器,如下所示。 我还创建了一个 servlet 来监听一些 uri (/"clientId")
现在可以正常工作了: http://localhost:8080/clientId
但我希望它能起作用: http://localhost:8080/?clientId=3
如何让我的代码处理 /?clientId=3 部分
我需要用参数处理 uri..
我需要什么 add/change?
谢谢!!
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);
}
}
你有 setup/configuration 和 context.setContextPath("/clientId")
此设置(并考虑您的 ClientHandler
代码)的有效 URL 将是 ...
http://localhost:8080/clientId/?url=myurlvalue