2020-11-14 servlet 跳转html失败

1.编译器项目结构

将servlet类放在包中

首先,将servlet类放在Java包中。您应该总是将公开的可重用的Java类放在包中,否则它们对于包中的类(例如服务器本身)是不可见的。这样,您可以消除潜在的环境特定问题。无包servlet仅在特定的Tomcat JDK组合中工作,这不应该依赖于。

在“纯”IDE项目的情况下,类需要放置在其“Java资源”文件夹中的包结构中,因此不是“WebContent”,这是用于Web文件(如JSP)。下面是导航器视图中所示的默认Eclipse Dynamic Web Project的文件夹结构示例:

在Maven项目的情况下,类需要放在main / java and thus not e.g. main/resources, this is for non-class files中的包结构中。下面是一个默认Maven webapp项目的文件夹结构示例,如Eclipse的Navigator视图中所示:

请注意,/ jsps子文件夹不是绝对必要的。你甚至可以没有它,把JSP文件直接在webcontent / webapp根,但我只是从你的问题接管这一点。

在url-pattern中设置servlet URL

servlet URL被指定为servlet映射的“URL模式”。绝对不是每个定义servlet类的classname / filename。 URL模式将被指定为@WebServlet注释的值。

package com.example;

// Use a package!

@WebServlet("/servlet") // This is the URL of the servlet.

public class YourServlet extends HttpServlet {

// Must be public and extend HttpServlet.

// ...

}

如果要支持/ servlet / foo / bar等路径参数,请使用/ servlet / *的URL模式。参见Servlet and path parameters like /xyz/{value}/test, how to map in web.xml?

@WebServlet仅适用于Servlet 3.0或更高版本

为了使用@WebServlet,你只需要确保你的web.xml文件(如果有的话,从Servlet 3.0开始是可选的)被声明为符合Servlet 3.0版本and thus not conform e.g. 2.5 version or lower.下面是一个Servlet 3.1兼容的(与Tomcat 8 ,WildFly 8,GlassFish 4等)。

或者,如果你不是在Servlet 3.0(不是Tomcat 7或更高版本,但Tomcat 6或更高版本),然后删除@WebServlet注释。然后在web.xml中注册servlet,如下所示:

2.实例

1.在webapp目录下新建xml,绑定/demo3

2.继承HTTPservlet然后复习post方法,@webservlet的虚拟目录/demo3

结果

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容