【问题标题】:Jsp connecting to servlet HTTP Status 404Jsp 连接到 servlet HTTP 状态 404
【发布时间】:2015-03-30 17:00:30
【问题描述】:

我正在尝试制作一个登录 servlet。我有一个 login.jsp 从我使用表单获取数据的地方,一个我使用 HttpSession 的 LoginServlet,最后是我的 web.xml 我在stackoverflow中搜索并纠正了我发现的一些错误。即使找不到我的 LoginServlet:

HTTP 状态 404 - /test_pages/main_pages/com.register/LoginServlet

type: Status report

message: /test_pages/main_pages/com.register/LoginServlet

description: The requested resource is not available.

我在状态 404 中看到我的 servlet 的路径是这样的:/test_pages/main_pages/com.register/LoginServlet

这是错误的路径。我的 servlet 不在 main_pages 中。我正在用 ecipse 写。我必须创建一个项目才能在 apache tomcat 中运行所有这些,这让我很困惑。我的 LoginServlet 在 Java Resources/src/com.register 中。 “com.register”是我的包。

你能告诉我在我的表单中写动作的正确方法吗?你认为问题出在其他地方吗?请帮我!提前致谢!

这是我的代码:

login.jsp

 .
 .
 .
 <form action="com.register/LoginServlet" method="post">
 <p>
 <label id="upodeiksh">username</label>
 <br />
 <input type="text" name="username" id="koutaki" required/>
 </p>
 <br />
 <p>
 <label id="upodeiksh">password</label>
 <br />
 <input type="password" name="password" id="koutaki" required/>
 </p>
 <br />
 <input type="submit" name="upload" value="login" id="submit_button"/>
 </form>

LoginServlet.java

package com.register;

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

import java.sql.*;

import javax.servlet.ServletException;  
import javax.servlet.http.HttpServlet;  
import javax.servlet.http.HttpServletRequest;  
import javax.servlet.http.HttpServletResponse;  
import javax.servlet.http.HttpSession;

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

         response.setContentType("text/jsp");  
         PrintWriter out=response.getWriter();
         request.getRequestDispatcher("test.jsp").include(request, response);

         String name=request.getParameter("username");  
         String password=request.getParameter("password");
         String psw = null;

         Connection con = null;
         PreparedStatement pr = null;
         ResultSet rs = null;

         try
         {
             Class.forName("com.mysql.jdbc.Driver");
             con = DriverManager.getConnection("jdbc:mysql://localhost:3306/ted","root","1234");

             pr = con.prepareStatement("select * from ted.users where usrname=?;");

             pr.setString(1, name);

             rs = pr.executeQuery();

             //An den brethei to onoma
             if(rs == null)
             {
                out.print("Το όνομα χρήστη : "+name+" δεν υπάρχει");
                request.getRequestDispatcher("main_pages/login.jsp").include(request, response);
             }

             else
             {
                 //An brethei to onoma
                 while(rs.next())
                 {
                     psw = rs.getString("psw");
                 }

                 if(psw != password)
                 {
                     out.print("Λάθος κωδικός πρόσβασης");
                    request.getRequestDispatcher("main_pages/login.jsp").include(request, response);
                 }

                 else if(psw == password)
                 {
                    out.print("Γεια");
                    HttpSession session=request.getSession();  
                    session.setAttribute("name",name);  
                 }
             }

         }

         catch (Exception e)
         {
             System.out.println("The error is=="+e.getMessage()); 
         }

         finally
         {
             try
             {
                 con.close();
             } 

             catch (SQLException e)
             {
                 e.printStackTrace();
             }
         }
    }
}

web.xml

    .
    .
      <servlet>  
        <description></description>  
        <display-name>LoginServlet</display-name>  
        <servlet-name>LoginServlet</servlet-name>  
        <servlet-class>com.register.LoginServlet</servlet-class>  
      </servlet>  
      <servlet-mapping>  
        <servlet-name>LoginServlet</servlet-name>  
        <url-pattern>/LoginServlet</url-pattern>  
      </servlet-mapping>  
      <servlet> 
    .
    .

【问题讨论】:

  • 更改为
  • 你的 servlet 路径是 localhost:8080/applicationName/LoginServlet。您的表单操作应该是简单的 /applicationName/LoginServlet 。
  • 从表单操作中删除 com.register
  • 这是从一开始就有的。但是stackoverflow中的一些帖子有这个更正(action = package.Servlet)。正如你所说,我再次更改它,但路径仍然错误(/test_pages/main_pages/LoginServlet)。是日食问题吗?

标签: java jsp tomcat servlets


【解决方案1】:

您的 servlet 映射错误。像这样更改您的表单操作
&lt;form action="LoginServlet" method="post"&gt;

【讨论】:

  • 这是从一开始就有的。但是stackoverflow中的一些帖子有这个更正(action = package.Servlet)。正如你所说,我再次更改它,但路径仍然错误(/test_pages/main_pages/LoginServlet)。是日食问题吗?
猜你喜欢
  • 2019-07-30
  • 1970-01-01
  • 1970-01-01
  • 2019-07-30
  • 2015-10-09
  • 1970-01-01
  • 1970-01-01
  • 2012-10-07
  • 2014-05-10
相关资源
最近更新 更多