2017-06-01 43 views
-1

這是我的JSP代碼HTTP狀態404: -我有在運行我的jsp鏈接到的servlet

<%@page import="java.sql.*"%> 
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
    <body> 
     <div id="header"> 
      <center> 
       <div id="over"> 
        <p> <font size="18" color="Brown"><b>UBONA Technologies</b></font></p> 
       </div> 
      </center> 
     </div> 
     <br><br><br><br><br><br> 

     <form method="get" action="controller.java"> 
      <div class="container"> 
      <center> 
      <table tableborder=0> 
        <tr><td><label><font size="5" color="BLACK"><b>USERNAME</b></font></label></td> 
        <br> 
        <td><input type="text" placeholder="Enter User Name" name="username" class="inputi" required></td> 
        </tr><br> 
        <tr><td><label><font size="5" color="BLACK"><b>PASSWORD</b></font></label></td> 
        <br> 
        <td><input type="password" placeholder="Enter Password" name="password" class="inputi" required></td> 
        </tr><br> 
        </table><br> 
        <input type="submit" class="button" name="submit" value="LOGIN" />  
      </center></div> 
     </form> 
    </body> 
</html> 

這是我的Servlet的代碼: -

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

//@WebServlet("/controller") 
public class controller extends HttpServlet 
{ 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
    { 
     try 
     { 
      Class.forName("com.mysql.jdbc.Driver"); 
     } 
     catch(Exception e) 
     {      
     } 
     try 
     { 
      String uname = request.getParameter("username"); 
      String paswd = request.getParameter("password"); 
      Connection con= null; 
      con=DriverManager.getConnection("jdbc:mysql://localhost:3306/database","root","[email protected]"); 
      Statement s = con.createStatement(); 
      ResultSet rs=s.executeQuery("select * from credentials"); 
      rs.next(); 
      String username1 = rs.getString("username"); 
      String password2 = rs.getString("password"); 
      if(uname.equals(username1) && paswd.equals(password2)) 
      { 
       response.sendRedirect("welcome.jsp"); 
      } 
      else 
      { 
       response.sendRedirect("wrongpas.jsp"); 
      } 
      rs.close(); 
     } 
     catch(SQLException sqe) 
     { 
      System.out.println("home"+sqe); 
     } 

    } 


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

    } 

} 

這是我的網站.XML: -

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> 
    <servlet> 
    <servlet-name>controller</servlet-name> 
    <servlet-class>controller</servlet-class> 
    </servlet> 
    <servlet-mapping> 
    <servlet-name>controller</servlet-name> 
    <url-pattern>/controller</url-pattern> 
    </servlet-mapping> 
</web-app> 
  • 我已經改變了Tomcat服務器的位置,如一些視頻建議。
  • 正如我看到一些同樣的問題的答覆說,將類保存到根文件夾/ web-inf/classes,我無法找到該文件夾​​。
+0

在表單動作屬性,你必須給的網址不文件名 –

+0

url-pattern和action屬性值必須相同 –

+0

如果您沒有WEB-INF/classes創建一個。把你的課程放進去並重新加載。另外,如果你的servlet在一個包中(這是一個很好的做法),你也必須在web.xml中添加包名。 –

回答

0

如果您沒有WEB-INF/classes手動創建並保存您的課程。

把你需要的罐子放入WEB-INF/lib/

首先修改表單標籤

<form id="login" action="${pageContext.request.contextPath}/controller" method="GET"> 

添加id屬性

<input type="text" placeholder="Enter User Name" name="username" id="username" class="inputi" required> 

也正是在這裏

<input type="password" placeholder="Enter Password" name="password" id="username" class="inputi" required> 

二去除註釋您的評論

//@WebServlet("/controller") 

讓它

@WebServlet(name = "controller", urlPatterns = {"/controller"}) 

導入註釋

import javax.servlet.annotation.WebServlet; 

刪除doPost它什麼也不做你的情況。您也不需要web.xml也可以。

建議

你的類名應以大寫字母開頭。

urlPatterns應該與您的類名不同。

0

下列更改將解決您的問題:

在JSP代碼:

<form role="form" method="get" action="${pageContext.request.contextPath}/controller"> 

在servlet代碼:

@WebServlet("/controller") 

添加上面的代碼行會提示你輸入Webservlet註釋庫:

import javax.servlet.annotation.WebServlet; 

此外,它被認爲是一個很好的做法,用大寫 即Ç開始的Java類名ontroller.java應該Ç ontroller.java