servlets 相关问题

Servlet是在服务器机器上运行的Java应用程序编程接口(API),它可以拦截客户端发出的请求,并可以相应地生成/发送响应。

java.lang.ClassNotFoundException:tomcat 10.1 maven 项目上的 javax.servlet.http.HttpServlet

我正在使用 Spring 配置创建 Maven Web 项目,我添加了 jakarta.servlet-api pox.xml 中的依赖关系如下 雅加达.servlet <

回答 1 投票 0

Java:如何在 Filter 从控制器返回后对其进行拦截

过滤器会针对传入请求触发,但不会针对响应触发。 Spring 拦截器提供了在请求到达控制器之前和之后处理请求的功能。我想建造

回答 1 投票 0

Servlet 类 org.restlet.ext.servlet.ServerServlet 不是 jakarta.servlet.Servlet

什么可能导致此错误? 引起原因:jakarta.servlet.UnavailableException:Servlet 类 org.restlet.ext.servlet.ServerServlet 不是 jakarta.servlet.Servlet 在 org.eclipse.je...

回答 2 投票 0

Tomcat 使用 servlet 时出现 404 错误

我使用 Tomcat 7 和 Oracle JDK 1.7 以及 NeatBeans 7.3 开发了一个 Java Web 应用程序。我的应用程序在我的本地电脑上运行,没有任何错误。 但在我托管我的应用程序后,我无法访问

回答 4 投票 0

java动态项目错误:访问被拒绝(“java.util.PropertyPermission”“com.mysql.cj.disableAbandonedConnectionCleanup”“read”)

我试图使用 jdbc 连接到我的网络项目中的数据库,但它抛出错误 JDK 21 tomcat v10.1 服务器 包 com.server; 导入 jakarta.servlet.ServletException; 导入 jakarta.servlet.

回答 1 投票 0

当我单击注销按钮时,我仍然可以使用浏览器的后退按钮返回到上一页[重复]

我有一个 servlet,我使用 POST 验证登录并使用 GET 验证注销。因此,我希望当我单击注销按钮时,我无法返回到上一页,因为会话已终止。但它确实...

回答 1 投票 0

JSP 文件输出更改后未更新 [Eclipse 内部 Web 浏览器问题]

首先我要说的是,我对 JSP 和 servlet 完全陌生。我正在使用 Eclipse 和 Tomcat 7。我尝试了这个问题的答案:JSP page is not gettingfresh after update, ...

回答 4 投票 0

如何有效关闭/销毁/终止会话?

我有一个 servlet,我使用 POST 验证登录并使用 GET 验证注销。因此,我希望当我单击注销按钮时,我无法返回到上一页,因为会话已终止。但它确实...

回答 1 投票 0

我的类不是servlet错误

我有以下servlet代码 公共无效doPost(HttpServletRequest请求,HttpServletResponse响应){ 备份 bup = new Backup(); bup.doBackup(); 响应.setContentType(“文本/

回答 4 投票 0

如何在 Servlet 中生成文件下载后发送重定向

我正在使用 Java Servlet 和 JSP 开发一个网页。我具有根据接收到的操作(动作)执行不同操作的功能。但是,我遇到了一个问题......

回答 1 投票 0

使用 Java Servlet 生成 PDF 后的重定向问题

我正在使用 Java Servlet 和 JSP 开发一个网页。我具有根据接收到的操作(动作)执行不同操作的功能。但是,我遇到了一个问题......

回答 1 投票 0

使旧的 httpssession 失效会删除当前 httpssession 的上下文

我的应用程序使用 @ViewScoped LoginBean 处理登录,该 LoginBean 注入了一个存储用户信息和当前 HttpSession 的 @SessionScoped SessionBean。 这个应用程序允许用户N单独

回答 1 投票 0

从tomcat9迁移到tomcat10,系统仍然尝试加载javax/servlet/http/HttpServlet

我的servlet曾经在tomcat9上工作。我尝试使用tomcat10。 我从构建路径中删除了 javax.servlet-api-3.1.0.jar 并添加了 jakarta.servlet-api-5.0.0.jar。 我更改了对 javax.servlet 的任何引用...

回答 1 投票 0

如何将 jakarta.servlet.http.HttpServletRequest 转换为 javax.servlet.http.HttpServletRequest [重复]

我使用 com.oreilly.servlet 包将文件上传到由 Tomcat 10 构建的服务器,但似乎这个包很旧,并且 MultipartParser 类需要 javax.servlet.http.HttpServletRequest...

回答 1 投票 0

Spring Jetty 中的异步过滤器导致 IllegalStateException

我有一个带有单个控制器的简单弹簧应用程序: @控制器 @RequestMapping 公共类测试控制器{ 私有静态最终 Logger 日志 = LoggerFactory.getLogger(TestController.c...

回答 1 投票 0

Maven 构建成功,但编译的类文件包含未解决的类型错误

我有一个编译为 WAR 文件的项目,当我使用“干净安装”来构建我的项目时,它给出“构建成功”,但是当我反编译一些文件时,它给出以下几行...

回答 1 投票 0

从 html 页面重定向到 Servlet 时出现 404 错误 [重复]

所以我正在尝试在 InteliJ Ultimate 上创建一个关于电信网站的 Web 应用程序,我想熟悉 servlet,但我无法让它们正常工作 所以我正在尝试在 InteliJ Ultimate 上创建一个关于电信网站的 Web 应用程序,我想熟悉 servlet,但我无法让它们正常工作 <!DOCTYPE html> <html> <head> <title>Login Page</title> </head> <body> <h2>Login Form</h2> <form action="LoginServ" method="post"> <label for="username">Username:</label><br> <input type="text" id="username" name="username"><br> <label for="password">Password:</label><br> <input type="password" id="password" name="password"><br> <input type="submit" value="Submit"> </form> </body> </html> 这是我的index.html(基本登录页面),我试图重定向到登录servlet,然后根据插入到 MySQL 数据库中的值显示 3 个不同仪表板(clientDashboard、salesmanDashboard 和 adminDashboard)中的 1 个 我已经尝试遵循有关如何使用 servlet 的不同教程,但没有任何效果,现在我不知道该怎么办了 编辑1:当我从html页面重定向到servlet时,我不断收到错误404未找到,这对我来说似乎很奇怪,因为我如何在目录中拥有servlet文件LoginServ.java以及索引文件中的这行代码<form action="LoginServ" method="post">我很确定会搜索具有该名称的文件(不要引用我的话,我对网络开发还是新手) 此时我只是想让重定向正常工作 package servlets; import jakarta.servlet.RequestDispatcher; import jakarta.servlet.ServletException; import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; @WebServlet("/LoginServlet") public class LoginServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.sendRedirect(request.getContextPath() + "/salesmanDashboard.jsp"); } } pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.example</groupId> <artifactId>Ergasia2</artifactId> <version>1.0-SNAPSHOT</version> <name>Ergasia 2</name> <packaging>war</packaging> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.target>11</maven.compiler.target> <maven.compiler.source>11</maven.compiler.source> <junit.version>5.10.0</junit.version> </properties> <dependencies> <dependency> <groupId>jakarta.platform</groupId> <artifactId>jakarta.jakartaee-api</artifactId> <version>9.0.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.glassfish.jersey.containers</groupId> <artifactId>jersey-container-servlet</artifactId> <version>3.1.3</version> </dependency> <dependency> <groupId>org.glassfish.jersey.media</groupId> <artifactId>jersey-media-json-jackson</artifactId> <version>3.1.3</version> </dependency> <dependency> <groupId>org.glassfish.jersey.inject</groupId> <artifactId>jersey-cdi2-se</artifactId> <version>3.1.3</version> </dependency> <dependency> <groupId>org.jboss.weld.se</groupId> <artifactId>weld-se-core</artifactId> <version>5.1.2.Final</version> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-api</artifactId> <version>${junit.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-engine</artifactId> <version>${junit.version}</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>3.4.0</version> </plugin> </plugins> </build> </project> web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="https://jakarta.ee/xml/ns/jakartaee" xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_6_0.xsd" version="6.0"> <servlet> <description/> <display-name>LoginServlet</display-name> <servlet-name>LoginServlet</servlet-name> <servlet-class>servlets.LoginServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>LoginServlet</servlet-name> <url-pattern>/LoginServlet</url-pattern> </servlet-mapping> <display-name>Ergasia 2</display-name> <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> </web-app> 我使用的是 Apache Tomcat 10.1.24 当我创建项目时,我选择“Jakarta EE”作为项目生成器,并使用 Maven 作为构建系统,同时我也使用 Oracle OpenJDK 22.0.1 我的目录是这样的 Project1 -src -main -java -servlets - LoginServlet -resources - META-INF - index.html -webapp - WEB-INF - salesmanDashboard.jsp **答案:**问题看起来是我在 web.xml 文件中编写的 servlet 映射干扰了我尝试运行的 Servlet 中的 @WebServlet("/LoginServlet")。我不明白为什么,但它确实做到了并删除了 <servlet> <description/> <display-name>LoginServlet</display-name> <servlet-name>LoginServlet</servlet-name> <servlet-class>servlets.LoginServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>LoginServlet</servlet-name> <url-pattern>/LoginServlet</url-pattern> </servlet-mapping> 从web.xml文件似乎修复了它 如果 JSP 位于 WEB-INF 文件夹下,则无法重定向到 JSP。相反,您可以使用请求调度程序从那里检索它。为此,您应该实现 doGet() 方法: protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { RequestDispatcher dispatcher = getServletContext() .getRequestDispatcher("/WEB-INF/salesmanDashboard.jsp"); dispatcher.forward(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.sendRedirect(request.getContextPath() + "/LoginServlet"); }

回答 1 投票 0

重定向到WEB-INF文件夹下的JSP时出现404错误

所以我正在尝试在 InteliJ Ultimate 上创建一个关于电信网站的 Web 应用程序,我想熟悉 servlet,但我无法让它们正常工作 所以我正在尝试在 InteliJ Ultimate 上创建一个关于电信网站的 Web 应用程序,我想熟悉 servlet,但我无法让它们正常工作 <!DOCTYPE html> <html> <head> <title>Login Page</title> </head> <body> <h2>Login Form</h2> <form action="LoginServ" method="post"> <label for="username">Username:</label><br> <input type="text" id="username" name="username"><br> <label for="password">Password:</label><br> <input type="password" id="password" name="password"><br> <input type="submit" value="Submit"> </form> </body> </html> 这是我的index.html(基本登录页面),我试图重定向到登录servlet,然后根据插入到 MySQL 数据库中的值显示 3 个不同仪表板(clientDashboard、salesmanDashboard 和 adminDashboard)中的 1 个 我已经尝试遵循有关如何使用 servlet 的不同教程,但没有任何效果,现在我不知道该怎么办了 编辑1:当我尝试运行代码时,我不断收到错误404未找到,这对我来说似乎很奇怪,因为我如何在目录中拥有servlet文件LoginServ.java以及索引文件中的这行代码<form action="LoginServ" method="post">我很确定会搜索具有该名称的文件(不要引用我的话,我对网络开发还是新手) 此时我只是想让重定向正常工作 package servlets; import jakarta.servlet.ServletException; import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; @WebServlet("/LoginServlet") public class LoginServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.sendRedirect(request.getContextPath() + "/salesmanDashboard.jsp"); } } pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.example</groupId> <artifactId>Ergasia2</artifactId> <version>1.0-SNAPSHOT</version> <name>Ergasia 2</name> <packaging>war</packaging> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.target>11</maven.compiler.target> <maven.compiler.source>11</maven.compiler.source> <junit.version>5.10.0</junit.version> </properties> <dependencies> <dependency> <groupId>jakarta.platform</groupId> <artifactId>jakarta.jakartaee-api</artifactId> <version>9.0.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.glassfish.jersey.containers</groupId> <artifactId>jersey-container-servlet</artifactId> <version>3.1.3</version> </dependency> <dependency> <groupId>org.glassfish.jersey.media</groupId> <artifactId>jersey-media-json-jackson</artifactId> <version>3.1.3</version> </dependency> <dependency> <groupId>org.glassfish.jersey.inject</groupId> <artifactId>jersey-cdi2-se</artifactId> <version>3.1.3</version> </dependency> <dependency> <groupId>org.jboss.weld.se</groupId> <artifactId>weld-se-core</artifactId> <version>5.1.2.Final</version> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-api</artifactId> <version>${junit.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-engine</artifactId> <version>${junit.version}</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>3.4.0</version> </plugin> </plugins> </build> </project> web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="https://jakarta.ee/xml/ns/jakartaee" xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_6_0.xsd" version="6.0"> <servlet> <description/> <display-name>LoginServlet</display-name> <servlet-name>LoginServlet</servlet-name> <servlet-class>servlets.LoginServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>LoginServlet</servlet-name> <url-pattern>/LoginServlet</url-pattern> </servlet-mapping> <display-name>Ergasia 2</display-name> <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> </web-app> 我使用的是 Apache Tomcat 10.1.24 当我创建项目时,我选择“Jakarta EE”作为项目生成器,并使用 Maven 作为构建系统,同时我也使用 Oracle OpenJDK 22.0.1 我的目录是这样的 Project1 -src -main -java -servlets - LoginServlet -resources - META-INF - index.html -webapp - WEB-INF - salesmanDashboard.jsp 如果 JSP 位于 WEB-INF 文件夹下,则无法重定向到 JSP。相反,您可以使用请求调度程序从那里检索它。为此,您应该实现 doGet() 方法: protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { RequestDispatcher dispatcher = getServletContext() .getRequestDispatcher("/WEB-INF/salesmanDashboard.jsp"); dispatcher.forward(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.sendRedirect(request.getContextPath() + "/LoginServlet"); }

回答 1 投票 0

重定向到WEB-INF下的JSP时出现404错误

所以我正在尝试在 Intelij Ultimate 上创建一个关于电信网站的 Web 应用程序,我想熟悉 servlet,但我无法让它们正常工作 所以我正在尝试在 Intelij Ultimate 上创建一个关于电信网站的 Web 应用程序,我想熟悉 servlet,但我无法让它们正常工作 <!DOCTYPE html> <html> <head> <title>Login Page</title> </head> <body> <h2>Login Form</h2> <form action="LoginServ" method="post"> <label for="username">Username:</label><br> <input type="text" id="username" name="username"><br> <label for="password">Password:</label><br> <input type="password" id="password" name="password"><br> <input type="submit" value="Submit"> </form> </body> </html> 这是我的index.html(基本登录页面),我试图重定向到登录servlet,然后根据插入到 MySQL 数据库中的值显示 3 个不同仪表板(clientDashboard、salesmanDashboard 和 adminDashboard)中的 1 个 我已经尝试遵循有关如何使用 servlet 的不同教程,但没有任何效果,现在我不知道该怎么办了 编辑1:当我尝试运行代码时,我不断收到错误404未找到,这对我来说似乎很奇怪,因为我如何在目录中拥有servlet文件LoginServ.java以及索引文件中的这行代码<form action="LoginServ" method="post">我很确定会搜索具有该名称的文件(不要引用我的话,我对网络开发还是新手) 此时我只是想让重定向正常工作 package servlets; import jakarta.servlet.ServletException; import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; @WebServlet("/LoginServlet") public class LoginServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.sendRedirect(request.getContextPath() + "/salesmanDashboard.jsp"); } } pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.example</groupId> <artifactId>Ergasia2</artifactId> <version>1.0-SNAPSHOT</version> <name>Ergasia 2</name> <packaging>war</packaging> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.target>11</maven.compiler.target> <maven.compiler.source>11</maven.compiler.source> <junit.version>5.10.0</junit.version> </properties> <dependencies> <dependency> <groupId>jakarta.platform</groupId> <artifactId>jakarta.jakartaee-api</artifactId> <version>9.0.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.glassfish.jersey.containers</groupId> <artifactId>jersey-container-servlet</artifactId> <version>3.1.3</version> </dependency> <dependency> <groupId>org.glassfish.jersey.media</groupId> <artifactId>jersey-media-json-jackson</artifactId> <version>3.1.3</version> </dependency> <dependency> <groupId>org.glassfish.jersey.inject</groupId> <artifactId>jersey-cdi2-se</artifactId> <version>3.1.3</version> </dependency> <dependency> <groupId>org.jboss.weld.se</groupId> <artifactId>weld-se-core</artifactId> <version>5.1.2.Final</version> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-api</artifactId> <version>${junit.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-engine</artifactId> <version>${junit.version}</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>3.4.0</version> </plugin> </plugins> </build> </project> web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="https://jakarta.ee/xml/ns/jakartaee" xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_6_0.xsd" version="6.0"> <servlet> <description/> <display-name>LoginServlet</display-name> <servlet-name>LoginServlet</servlet-name> <servlet-class>servlets.LoginServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>LoginServlet</servlet-name> <url-pattern>/LoginServlet</url-pattern> </servlet-mapping> <display-name>Ergasia 2</display-name> <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> </web-app> 我使用的是 Apache Tomcat 10.1.24 当我创建项目时,我选择“Jakarta EE”作为项目生成器,并使用 Maven 作为构建系统,同时我也使用 Oracle OpenJDK 22.0.1 我的目录是这样的 Project1 -src -main -java -servlets - LoginServlet -resources - META-INF - index.html -webapp - WEB-INF - salesmanDashboard.jsp 如果 JSP 位于 WEB-INF 文件夹下,则无法重定向到 JSP。相反,您可以使用请求调度程序从那里检索它。为此,您应该实现 doGet() 方法: protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { RequestDispatcher dispatcher = getServletContext() .getRequestDispatcher("/WEB-INF/salesmanDashboard.jsp"); dispatcher.forward(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.sendRedirect(request.getContextPath() + "/LoginServ"); }

回答 1 投票 0

404 与 servlet

所以我正在尝试在 Intelij Ultimate 上创建一个关于电信网站的 Web 应用程序,我想熟悉 servlet,但我无法让它们正常工作 所以我正在尝试在 Intelij Ultimate 上创建一个关于电信网站的 Web 应用程序,我想熟悉 servlet,但我无法让它们正常工作 <!DOCTYPE html> <html> <head> <title>Login Page</title> </head> <body> <h2>Login Form</h2> <form action="LoginServ" method="post"> <label for="username">Username:</label><br> <input type="text" id="username" name="username"><br> <label for="password">Password:</label><br> <input type="password" id="password" name="password"><br> <input type="submit" value="Submit"> </form> </body> </html> 这是我的index.html(基本登录页面),我试图重定向到登录servlet,然后根据插入到 MySQL 数据库中的值显示 3 个不同仪表板(clientDashboard、salesmanDashboard 和 adminDashboard)中的 1 个 我已经尝试遵循有关如何使用 servlet 的不同教程,但没有任何效果,现在我不知道该怎么办了 编辑1:当我尝试运行代码时,我不断收到错误404未找到,这对我来说似乎很奇怪,因为我如何在目录中拥有servlet文件LoginServ.java以及索引文件中的这行代码<form action="LoginServ" method="post">我很确定会搜索具有该名称的文件(不要引用我的话,我对网络开发还是新手) 此时我只是想让重定向正常工作 package servlets; import jakarta.servlet.ServletException; import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; @WebServlet("/LoginServlet") public class LoginServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.sendRedirect(request.getContextPath() + "/salesmanDashboard.jsp"); } } pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.example</groupId> <artifactId>Ergasia2</artifactId> <version>1.0-SNAPSHOT</version> <name>Ergasia 2</name> <packaging>war</packaging> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.target>11</maven.compiler.target> <maven.compiler.source>11</maven.compiler.source> <junit.version>5.10.0</junit.version> </properties> <dependencies> <dependency> <groupId>jakarta.platform</groupId> <artifactId>jakarta.jakartaee-api</artifactId> <version>9.0.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.glassfish.jersey.containers</groupId> <artifactId>jersey-container-servlet</artifactId> <version>3.1.3</version> </dependency> <dependency> <groupId>org.glassfish.jersey.media</groupId> <artifactId>jersey-media-json-jackson</artifactId> <version>3.1.3</version> </dependency> <dependency> <groupId>org.glassfish.jersey.inject</groupId> <artifactId>jersey-cdi2-se</artifactId> <version>3.1.3</version> </dependency> <dependency> <groupId>org.jboss.weld.se</groupId> <artifactId>weld-se-core</artifactId> <version>5.1.2.Final</version> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-api</artifactId> <version>${junit.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-engine</artifactId> <version>${junit.version}</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>3.4.0</version> </plugin> </plugins> </build> </project> web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="https://jakarta.ee/xml/ns/jakartaee" xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_6_0.xsd" version="6.0"> <servlet> <description/> <display-name>LoginServlet</display-name> <servlet-name>LoginServlet</servlet-name> <servlet-class>servlets.LoginServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>LoginServlet</servlet-name> <url-pattern>/LoginServlet</url-pattern> </servlet-mapping> <display-name>Ergasia 2</display-name> <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> </web-app> 我使用的是 Apache Tomcat 10.1.24 当我创建项目时,我选择“Jakarta EE”作为项目生成器,并使用 Maven 作为构建系统,我也使用 Oracle OpenJDK 22.0.1 我的目录是这样的 Project1 -src -main -java -servlets - LoginServlet -resources - META-INF - index.html -webapp - WEB-INF - salesmanDashboard.jsp 如果 JSP 位于 WEB-INF 文件夹下,则无法重定向到 JSP。相反,您可以使用请求调度程序从那里检索它。为此,您应该实现 doGet() 方法: protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { RequestDispatcher dispatcher = getServletContext() .getRequestDispatcher("/WEB-INF/salesmanDashboard.jsp"); dispatcher.forward(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.sendRedirect(request.getContextPath() + "/LoginServ"); }

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.