相关疑难解决方法(0)

Servlet 5.0 JAR 在 javax.servlet.* 上引发编译错误,但 Servlet 4.0 JAR 不会

我正在尝试从命令行编译和部署一个简单的 Web 应用程序。

来自 Apache Tomcat 的 servlet-api.jar 不编译我的 java 文件,但来自 maven 中央存储库的 javax.servlet-api-4.0.1 编译成功。即便如此,当我部署应用程序并尝试在浏览器中使用它时,我还是收到了错误消息。

我在用:

  • javac 11.0.8
  • Apache Tomcat 10.0 (servlet-api.jar 5.0)

Java文件:

package com.example.controllers;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;

public class BeerSelect extends HttpServlet {
    
    public void doPost(HttpServletRequest request,
            HttpServletResponse response)
            throws IOException, ServletException {

        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        out.println("Beer Selection Advice <br>");
        String c = request.getParameter("color");
        out.println("<br>Got beer color " + c);
    }               
} 
Run Code Online (Sandbox Code Playgroud)

当我尝试使用 servlet-api.jar 编译它时,我得到:

public class BeerSelect extends HttpServlet {
                                ^
  symbol: …
Run Code Online (Sandbox Code Playgroud)

tomcat servlets compiler-errors

5
推荐指数
1
解决办法
2344
查看次数

Tomcat 10.0.4 不会加载带有 404 错误的 servlet(@WebServlet 类)

我的第一个 Web 应用程序有问题。我使用 IntelliJ 作为 IDE,使用 Tomcat 作为 Web 服务器。我尝试访问的每个 servlet 都会抛出 404 错误。即使我复制了一些 youtube 教程,这似乎也很有魅力。

表单中的按钮将我发送到:http://localhost:8080/IUBHQuiz/login

你能告诉我有什么问题吗?我快疯了。

登录.java

package com.example.IUBHQuiz;

import java.io.*;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
import java.sql.*;

@WebServlet("/login")
public class login extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();

        String email = request.getParameter("fmail");
        String pass = request.getParameter("fpw");

        if(email.equals("j") && pass.equals("j"))
        {
            RequestDispatcher rs = request.getRequestDispatcher("/main.jsp");
            rs.forward(request, response);
        }
        else
        {
            out.println("Username or Password incorrect");

            RequestDispatcher …
Run Code Online (Sandbox Code Playgroud)

java tomcat servlets intellij-idea tomcat10

4
推荐指数
2
解决办法
1625
查看次数