使用servlet从Intellij连接到MySql时出错

时间:2018-02-11 10:30:38

标签: java mysql servlets jdbc

最近我一直在研究我的一个Web应用程序项目,我发现从Intellij连接到Mysql时遇到问题。我总是使用Eclipse,但现在我改变了IDE。 servlet运行并且不显示任何错误,但它无法从Mysql数据库中获取数据。我附加了所有的Servlet和Xml页面。帮助我。

我正在获取索引页面,当我输入凭据时,它显示错误的密码或用户名,尽管数据库中存在数据。 输入凭据后的“索引”页面图片:Index.jsp

的index.jsp

    <html>
<head>
  <title>login form</title>
</head>
<body>
<form method="post" action="Login">
  Username:<input type="text" name="username" /><br/>
  Password:<input type="password" name="password" /><br/>
  <input type="submit" value="Login" />
</form>
</body>
</html>

登录Servlet

    import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

public class Login extends HttpServlet {

    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();

        String username = request.getParameter("username");
        String password = request.getParameter("password");

        if(validate.checkUser(username,password))
        {
            RequestDispatcher rs = request.getRequestDispatcher("Welcome");
            rs.forward(request, response);
        }
        else
        {
            out.println("Username or Password incorrect");
            RequestDispatcher rs = request.getRequestDispatcher("index.jsp");
            rs.include(request, response);
        }
    }
}

验证Servlet

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class validate {

        public static boolean checkUser(String username, String password)
        {
            boolean st =false;



            try{

                //loading drivers for mysql
                Class.forName("com.mysql.jdbc.Driver");

                //creating connection with the database
                Connection con= DriverManager.getConnection
                        ("jdbc:mysql:/ /localhost:8080/login","root","admin");
                PreparedStatement ps =con.prepareStatement
                        ("select * from log where username=? AND password = ?");
                ps.setString(1, username);
                ps.setString(2, password);
                ResultSet rs =ps.executeQuery();
                st = rs.next();

            }catch(Exception e)
            {
                e.printStackTrace();
            }
            return st;
        }
    }

欢迎Servlet

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

public class Welcome extends HttpServlet {

    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        out.println("Welcome user");
    }
}

Web.xml中

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">
    <servlet>
        <servlet-name>Login</servlet-name>
        <servlet-class>Login</servlet-class>
    </servlet>
    <servlet>
        <servlet-name>Welcome</servlet-name>
        <servlet-class>Welcome</servlet-class>
    </servlet>
    <servlet>
        <servlet-name>validate</servlet-name>
        <servlet-class>validate</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>Login</servlet-name>
        <url-pattern>/Login</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>Welcome</servlet-name>
        <url-pattern>/Welcome</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>validate</servlet-name>
        <url-pattern>/validate</url-pattern>
    </servlet-mapping>
</web-app>

0 个答案:

没有答案