Servlet是在服务器机器上运行的Java应用程序编程接口(API),它可以拦截客户端发出的请求,并可以相应地生成/发送响应。
所以我正在尝试在 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"); }
所以我正在尝试在 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"); }
我想在单击 id="test" 的 href 链接时加载 Ajax 加载器图像。单击此 href 后,我想调用 Jsp Servlet,它将发送一个新请求来加载新的 .jsp 页面...
在ubuntu 10.10中使用tomcat运行Servlet
我已经在ubuntu 10.10中安装了tomcat和jdk6。我尝试在 var/www 文件夹中创建 servlet,但是当我使用地址为 localhost:8080/ 的浏览器运行它们时,它回复说您没有权限...
以我对Servlet的理解,Servlet将由Container实例化,其init()方法将被调用一次,Servlet将像单例一样生存,直到JVM关闭。 我确实...
所以我在 Jetty servlet 前面使用 HAProxy。 目前的目标只是概念验证以及所有配置完成后的负载和压力测试。 但是我在配置 hapr 时遇到问题...
从控制器调用 servlet,并将参数传递给 servlet
我正在编写一个jsp文件来使用一些参数调用控制器。我想从这个控制器通过传递来自控制器的值来调用 servlet。在 servlet 中我应该得到...
清除 Akamai 中缓存的 url 时出现 Java 代码问题
我正在使用 java 代码清除 Akamai 中缓存的 url。我收到 200 响应,但实际上并没有清除缓存的 url。我哪里出错了? 导入java.io.IOException; 导入java.net...
我正在尝试在 Eclipse (Tomcat v7) 中创建动态 Web 应用程序。问题是当我运行我的 webapp index.jsp 时无法访问。我可以访问所有其他 .jsp,但不能访问 index.jsp。下一个
我只是想学习servlet 和使用jsp 文件。我想使用外部 css 文件来设置起始页(/登录页)的格式,但我没能做到。它适用于内部 cs...
redis.clients.jedis.exceptions.JedisConnectionException:java.net.SocketException:管道损坏(写入失败)
在使用 Jedis 访问 Redis 时尝试使用 Jedis.get(key) 时,我收到此错误。 redis.clients.jedis.exceptions.JedisConnectionException:java.net.SocketException:管道损坏(写入
无法在从 Dockerfile 运行 Web 应用程序时将上下文路径设置为 /
我只创建了一个 Web 应用程序的最低限度(出于学习目的),但是当我从 Dockerfile 映像运行它时,我无法设置上下文路径(但当我不以这种方式使用它时,它工作得很好) ...
Servlet 访问子页面时出现问题 HTTP 404 Tomcat 10.1 java 11
我刚刚开始学习servlet技术,目前正在尝试创建一个非常基本的Web应用程序。只是一些页面,尝试这个东西。我可以到达起始页面 /index.html 但我...
Servlet 访问子页面时出现问题 - HTTP 404 - Tomcat 10.1.124 - java 11
我刚刚开始学习servlet技术,目前正在尝试创建一个非常基本的Web应用程序。只是一些页面,尝试这个东西。我可以到达起始页/index.html,但我...
Spring HttpServletRequest 在已使用时为空
在A类获取请求体后,B类获取空请求体。 根据检查是否要注释 A 类中的代码来检索请求正文,B 类将能够得到...
使用 servlet 和 itext 7 生成分组多个 pdf 的 zip 文件
我正在尝试使用 itext7 将多个生成的 pdf 从 servlet 放入 zip 中,我已成功将一个 pdf 放入 zip 文件中,但不能放入更多。这是代码: 私有无效 printMore(HttpServletRequest req,
Tomcat 9 中用于长轮询的异步事件驱动 servlet
我正在寻找在 Tomcat 9 中实现长轮询的最佳实践,以便能够使用 HTTPS 协议从服务器向客户端发送消息。 使用同步 I/O 看不到...
无法访问我的 docker servlet 应用程序上的 Web 资源(无 spring)[重复]
在我的java 11、基于tomcat和maven的servlet应用程序中,我无法访问客户端的Web资源。例如,css文件和图片无法加载,xhtml文件也无法加载。 在
无法访问我的 docker java 11 servlet 应用程序上的 Web 资源(无 spring)
在我的java 11、基于tomcat和maven的servlet应用程序中,我无法访问客户端的Web资源。例如,css文件和图片无法加载,xhtml文件也无法加载。 在
使用HttpServletRequest.newPushBuilder()实现SSE(服务器发送事件)总是返回null
我是 SSE 的新手 - 服务器发送事件实现。 我正在尝试使用 java jakarta.HttpServletRequest 实现 SSE。 导入java.io.IOException; 导入 jakarta.servlet.annotation.WebServlet; 我...