2017-06-01 51 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