gpt4 book ai didi

java - 更改 URL 以访问我的 Servlet

转载 作者:行者123 更新时间:2023-12-01 13:29:33 25 4
gpt4 key购买 nike

我有一个 servlet,它基本上是一个 hello world 类型...

类(class)是:

package net.jgp.baseapp.validation.tomcat;
[...]
@WebServlet(name = "tv", description = "...", urlPatterns = {"/TomcatValidator", "/" })
public class TomcatValidator extends HttpServlet {
[...]
}
}

当我通过以下方式启动它时效果很好:

http://localhost:8081/net.jgp.baseapp.validation.tomcat/tv
http://localhost:8081/net.jgp.baseapp.validation.tomcat/qwe?test=89

等等

但是,我可以将 net.jgp.baseapp.validation.tomcat 更改为:

  1. 没什么,基本上它应该像http://localhost:8081一样运行?
  2. 更简单的 URL http://localhost:8081/toto

到目前为止,我的 web.xml 确实是空的(Eclipse 生成的默认值):

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0">

<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>

我看过很多东西,我必须承认我快疯了:)...

谢谢!

PS:我知道:

@WebServlet(name = "tv", description = "...", urlPatterns = {"/TomcatValidator", "/" })

在某种程度上等于:

@WebServlet(name = "tv", description = "...", urlPatterns = {"/" })

最佳答案

这里有两件事。

如果您希望 servlet 提供根 URL,您必须做两件事

1 - 你必须将你的 webapp 上下文设置为 root,如下所示

enter image description here

2 - 那么你也必须将 servlet 上下文设置为 root

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/")
public class MyServlet extends HttpServlet {
private static final long serialVersionUID = 1L;

public MyServlet() {
super();
}

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.getWriter().write("OK");
response.getWriter().flush();
}

}

那是因为您的 servlet 提供的 URL 是这样的

http://yourserver:port/yourapp/yourservlet

其中 yourapp 由 #1 定义

yourservlet 由 #2 定义

像这样

enter image description here

关于java - 更改 URL 以访问我的 Servlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21646012/

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