当前位置: 首页 > 知识库问答 >
问题:

@WebServlet在Tomcat 7上得到404错误

冯阳云
2023-03-14

在Windows 7上运行的Tomcat 7使用servlet注释,当我尝试此URL时给我一个404错误:http://localhost:8080/LoginExample/Tomcat使用JRE 1.7,servlet类包含在文件夹中.../webapps/Loginexample。它是使用Java1.7编译的。我没有Web.xml.它部署时没有错误。

这是类:

package com.journaldev.servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebInitParam;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class LoginServlet
 */
@WebServlet(
        description = "Login Servlet", 
        urlPatterns = { "/LoginServlet" }, 
        initParams = { 
                @WebInitParam(name = "user", value = "Pankaj"), 
                @WebInitParam(name = "password", value = "journaldev")
        })
public class LoginServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;


    public void init() throws ServletException {
        //we can create DB connection resource here and set it to Servlet context
        if(getServletContext().getInitParameter("dbURL").equals("jdbc:mysql://localhost/mysql_db") &&
                getServletContext().getInitParameter("dbUser").equals("mysql_user") &&
                getServletContext().getInitParameter("dbUserPwd").equals("mysql_pwd"))
        getServletContext().setAttribute("DB_Success", "True");
        else throw new ServletException("DB Connection error");
    }


    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        //get request parameters for userID and password
        String user = request.getParameter("user");
        String pwd = request.getParameter("pwd");

        //get servlet config init params
        String userID = getServletConfig().getInitParameter("user");
        String password = getServletConfig().getInitParameter("password");
        //logging example
        log("User="+user+"::password="+pwd);

        if(userID.equals(user) && password.equals(pwd)){
            response.sendRedirect("LoginSuccess.jsp");
        }else{
            RequestDispatcher rd = getServletContext().getRequestDispatcher("/login.html");
            PrintWriter out= response.getWriter();
            out.println("<font color=red>Either user name or password is wrong.</font>");
            rd.include(request, response);

        }

    }

}

共有1个答案

颜森
2023-03-14

您的servlet类LoginServlet旨在仅处理'/LoginServlet'url,并且在http://localhost:8080/LoginExample/中使用'/'作为url。

您必须使用http://localhost:8080/LoginExample/LoginServlet
OR

<form action="LoginServlet" method="post">
....
....
</form>
 类似资料:
  • 如果我调用tomcat服务器的默认url,我将看到一个错误404。程序运行时没有任何问题,但restcontroller可能已禁用(我不知道,通常不知道)。日志中没有错误。起始页是html格式。我设置了默认路径(见下文)。 我正在使用Spring Boot和tomcat7。 请求的资源(/dashboard/)不可用。 Spring Boot路径src\main\resources\templat

  • 我对AWS真的很陌生,不确定哪里出了问题。 ec2实例是linux,java安装是Java7和Tomcat7。任何想法都很棒。提前谢了。

  • 我的项目命名为“A”,我的类是: Maven插件: 在src/main/webapp/WEB-INF/web.xml下,我有 我做错了什么?

  • 我正在尝试(失败)设置一个简单的FastAPI项目,并使用uvicorn运行它。这是我的代码: 这是我从终端运行的内容: 如你所见,我找不到404。原因可能是什么?一些与网络相关的东西,可能是防火墙/vpn阻止此连接或其他什么?我是新来的。提前谢谢!

  • 我的第一个Web应用程序有问题。我使用IntelliJ作为IDE,Tomcat作为WebServer。我尝试访问的每个servlet都会抛出一个404错误。即使我拷贝一些youtube教程,这似乎像一个魅力一样起作用。 表单中的按钮将我发送到:http://localhost:8080/iubhquiz/login