servlets 相关问题

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

重定向到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

Ajax 调用 servlet 并加载新页面

我想在单击 id="test" 的 href 链接时加载 Ajax 加载器图像。单击此 href 后,我想调用 Jsp Servlet,它将发送一个新请求来加载新的 .jsp 页面...

回答 1 投票 0

在ubuntu 10.10中使用tomcat运行Servlet

我已经在ubuntu 10.10中安装了tomcat和jdk6。我尝试在 var/www 文件夹中创建 servlet,但是当我使用地址为 localhost:8080/ 的浏览器运行它们时,它回复说您没有权限...

回答 1 投票 0

为什么HttpServlet要实现Serialized?

以我对Servlet的理解,Servlet将由Container实例化,其init()方法将被调用一次,Servlet将像单例一样生存,直到JVM关闭。 我确实...

回答 5 投票 0

Haproxy 网关错误 502

所以我在 Jetty servlet 前面使用 HAProxy。 目前的目标只是概念验证以及所有配置完成后的负载和压力测试。 但是我在配置 hapr 时遇到问题...

回答 2 投票 0

从控制器调用 servlet,并将参数传递给 servlet

我正在编写一个jsp文件来使用一些参数调用控制器。我想从这个控制器通过传递来自控制器的值来调用 servlet。在 servlet 中我应该得到...

回答 1 投票 0

清除 Akamai 中缓存的 url 时出现 Java 代码问题

我正在使用 java 代码清除 Akamai 中缓存的 url。我收到 200 响应,但实际上并没有清除缓存的 url。我哪里出错了? 导入java.io.IOException; 导入java.net...

回答 1 投票 0

index.jsp 未找到(无法加载)

我正在尝试在 Eclipse (Tomcat v7) 中创建动态 Web 应用程序。问题是当我运行我的 webapp index.jsp 时无法访问。我可以访问所有其他 .jsp,但不能访问 index.jsp。下一个

回答 2 投票 0

无法在 jsp 中使用外部 css 样式

我只是想学习servlet 和使用jsp 文件。我想使用外部 css 文件来设置起始页(/登录页)的格式,但我没能做到。它适用于内部 cs...

回答 1 投票 0

redis.clients.jedis.exceptions.JedisConnectionException:java.net.SocketException:管道损坏(写入失败)

在使用 Jedis 访问 Redis 时尝试使用 Jedis.get(key) 时,我收到此错误。 redis.clients.jedis.exceptions.JedisConnectionException:java.net.SocketException:管道损坏(写入

回答 3 投票 0

无法在从 Dockerfile 运行 Web 应用程序时将上下文路径设置为 /

我只创建了一个 Web 应用程序的最低限度(出于学习目的),但是当我从 Dockerfile 映像运行它时,我无法设置上下文路径(但当我不以这种方式使用它时,它工作得很好) ...

回答 1 投票 0

Servlet 访问子页面时出现问题 HTTP 404 Tomcat 10.1 java 11

我刚刚开始学习servlet技术,目前正在尝试创建一个非常基本的Web应用程序。只是一些页面,尝试这个东西。我可以到达起始页面 /index.html 但我...

回答 1 投票 0

Servlet 访问子页面时出现问题 - HTTP 404 - Tomcat 10.1.124 - java 11

我刚刚开始学习servlet技术,目前正在尝试创建一个非常基本的Web应用程序。只是一些页面,尝试这个东西。我可以到达起始页/index.html,但我...

回答 1 投票 0

Spring HttpServletRequest 在已使用时为空

在A类获取请求体后,B类获取空请求体。 根据检查是否要注释 A 类中的代码来检索请求正文,B 类将能够得到...

回答 1 投票 0

使用 servlet 和 itext 7 生成分组多个 pdf 的 zip 文件

我正在尝试使用 itext7 将多个生成的 pdf 从 servlet 放入 zip 中,我已成功将一个 pdf 放入 zip 文件中,但不能放入更多。这是代码: 私有无效 printMore(HttpServletRequest req,

回答 3 投票 0

Tomcat 9 中用于长轮询的异步事件驱动 servlet

我正在寻找在 Tomcat 9 中实现长轮询的最佳实践,以便能够使用 HTTPS 协议从服务器向客户端发送消息。 使用同步 I/O 看不到...

回答 1 投票 0

无法访问我的 docker servlet 应用程序上的 Web 资源(无 spring)[重复]

在我的java 11、基于tomcat和maven的servlet应用程序中,我无法访问客户端的Web资源。例如,css文件和图片无法加载,xhtml文件也无法加载。 在

回答 1 投票 0

无法访问我的 docker java 11 servlet 应用程序上的 Web 资源(无 spring)

在我的java 11、基于tomcat和maven的servlet应用程序中,我无法访问客户端的Web资源。例如,css文件和图片无法加载,xhtml文件也无法加载。 在

回答 1 投票 0

使用HttpServletRequest.newPushBuilder()实现SSE(服务器发送事件)总是返回null

我是 SSE 的新手 - 服务器发送事件实现。 我正在尝试使用 java jakarta.HttpServletRequest 实现 SSE。 导入java.io.IOException; 导入 jakarta.servlet.annotation.WebServlet; 我...

回答 1 投票 0

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