Home:ALL Converter>404 Http Status by servlet

404 Http Status by servlet

Ask Time:2022-01-26T17:27:04         Author:Anon1234

Json Formatter

I have created a post yesterday regarding this, but someone decided to close it. I have tried solutions from the post, it didn't work. If answer from the post could solve my issues, I won't be asking the same question again. Tried Put servlet class in a package, Set servlet URL in url-pattern, Use domain-relative URL to reference servlet from HTML. The thing is my registration.jsp is almost the same as my login.jsp same for the servlets as well, I dont get why it doesnt work for registration when it works for the login servlet. I also have clean and restarted my server multiples times. Didnt install tomcat into the computer just import it thru zip files into eclipse.

HTTP Status 404 return by Servlet Servlet returns "HTTP Status 404 The requested resource (/servlet) is not available"

Login Servlet

package net.login.controller;

import java.io.IOException;
import java.sql.SQLException;

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

import net.login.dao.UserDAO;
import net.login.model.Users;

@WebServlet("/login")
public class UserLoginServlet extends HttpServlet{

    public @interface WebServlet {

    }

    private static final long serialVersionUID = 1L;

    public UserLoginServlet() {
        super();
    }
 
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        String username = request.getParameter("username");
        String password = request.getParameter("password");
         
        UserDAO userDao = new UserDAO();
         
        try {
            Users user = userDao.checkLogin(username, password);
            String destPage = "login.jsp";
             
            if (user != null) {
                HttpSession session = request.getSession();
                session.setAttribute("user", user);
                destPage = "home.jsp";
            } else {
                String message = "Invalid username/password";
                request.setAttribute("message", message);
            }
             
            RequestDispatcher dispatcher = request.getRequestDispatcher(destPage);
            dispatcher.forward(request, response);
             
        } catch (SQLException | ClassNotFoundException ex) {
            throw new ServletException(ex);
        }
    }

}

register.jsp

<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Registration</title>
<script src="https://code.jquery.com/jquery-3.4.1.min.js"
  integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo="
  crossorigin="anonymous"></script>
<script type="text/javascript"
    src="https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.validate.min.js"></script>
<link href=”bootstrap/css/bootstrap.min.css” rel=”stylesheet” type=”text/css” />
<script type=”text/javascript” src=”bootstrap/js/bootstrap.min.js”></script>
</head>
<body>
    <div style='text-align=center' class="container">
    <h1>New User Registration</h1>
        <form action='register' method='POST' role='form'>
        <div class='registerform'>
            <label for='username'> Username: </label>
            <input type="text" placeholder='Username' class='form-control' name='username'>
        </div>
        <div class='registerform'>  
            <label for='password'> Password: </label>
            <input type="password" class='form-control' placeholder='Password' name='password'>
        </div>
            <br><br>
            <button type="submit" class="btn btn-default"> Register </button>
        </form>
    </div>
    
</body>
</html>

UserRegisterServlet

package net.login.controller;

import javax.servlet.http.HttpServlet;
import java.io.IOException;
import java.sql.SQLException;

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

import net.login.dao.UserDAO;
import net.login.model.Users;

@WebServlet("/register")
public class UserRegisterServlet extends HttpServlet{
    
    
    
    public @interface WebServlet{
        
    }
    
    private static final long serialVersionUID = 1L;
    
    public UserRegisterServlet() {
        super();
    }
    
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        
        //      String pathInfo = request.getPathInfo(); 
//      String[] pathParts = pathInfo.split("/");
//      String part1 = pathParts[1];
//      String part2 = pathParts[2]; 
//      
//      System.out.println(part1 + part2); //doesnt work for now since cant find /register
        
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        
        UserDAO userDAO = new UserDAO();
        
        try {
            userDAO.createUsers(username, password);
            String destPage = "register.jsp";
            
            System.out.println("Success");
            RequestDispatcher dispatcher = request.getRequestDispatcher(destPage);
            dispatcher.forward(request, response);
            
            
        }catch(SQLException | ClassNotFoundException ex) {
            throw new ServletException(ex);
        }
        
    }
    
}

Author:Anon1234,eproduced under the CC 4.0 BY-SA copyright license with a link to the original source and this disclaimer.
Link to original article:https://stackoverflow.com/questions/70861173/404-http-status-by-servlet
yy