2015-12-15 69 views
1

我在将eclipse中开发的Web应用程序与mysql数据库(mysql工作台)集成时面临一个问题。将Eclipse与MySQL集成

下面是我使用的jsp文件和数据库名称。

数据库的用户名 - 根 密码 - 1234

的Login.jsp

<%-- 
 
    Document : Login 
 
    Created on : 28 Feb, 2015, 8:50:26 AM 
 
    Author  : Lahaul Seth 
 
--%> 
 
<%@page contentType="text/html" pageEncoding="UTF-8"%> 
 
<!DOCTYPE html> 
 
<html> 
 
    <head> 
 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
 
     <title>Login Demo with JSP</title> 
 
    </head> 
 
    <body> 
 
     <form method="post" action="userdetail.jsp"> 
 
      <center> 
 
      <table border="1" cellpadding="5" cellspacing="2"> 
 
       <thead> 
 
        <tr> 
 
         <th colspan="2">Login Here</th> 
 
        </tr> 
 
       </thead> 
 
       <tbody> 
 
        <tr> 
 
         <td>Username</td> 
 
         <td><input type="text" name="username" required/></td> 
 
        </tr> 
 
        <tr> 
 
         <td>Password</td> 
 
         <td><input type="password" name="password" required/></td> 
 
        </tr> 
 
        <tr> 
 
         <td colspan="2" align="center"><input type="submit" value="Login" /> 
 
          &nbsp;&nbsp; 
 
          <input type="reset" value="Reset" /> 
 
         </td>       
 
        </tr>      
 
       </tbody> 
 
      </table> 
 
      </center> 
 
     </form> 
 
    </body> 
 
</html>

userdetail.jsp

<%@ page language="java" %> 
 
<%@ page import="org.owasp.esapi.ESAPI" %> 
 
<%@ page import="org.owasp.esapi.codecs.Codec" %> 
 
<%@ page import="org.owasp.esapi.codecs.MySQLCodec" %> 
 
<%@ page import="java.sql.*" %> 
 
<%@ page import="java.io.*" %> 
 
<%! Connection con= null; %> 
 
<%! Statement stmt= null; %> 
 
<%! ResultSet rs= null; %> 
 
<%! MySQLCodec mc= null; %> 
 

 
<html> 
 
<head><title>List Users</title></head> 
 
<% 
 
String uname = request.getParameter("uname"); 
 
String pass = request.getParameter("pass"); 
 

 
String uid = request.getParameter("uid"); 
 

 
try { 
 
Class.forName("com.mysql.jdbc.Driver").newInstance(); 
 
}catch(ClassNotFoundException ce){out.println(ce);} 
 

 
try{ 
 
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root", "1234"); 
 
stmt = con.createStatement(); 
 
String sql = "select * from userdetail where id = "+Integer.parseInt(uid); 
 
//out.println(sql); 
 
rs = stmt.executeQuery(sql); 
 
%> 
 

 
<body> 
 
<br> 
 
<br> 
 
<div align="center"><b>You have Successfully Logged In Mr/Ms<%=uname%>, Your Details are :-</b></div> 
 
<br> 
 
<br> 
 
<br> 
 
<form action="view.jsp"> 
 
<table align="center"> 
 
<% while(rs.next()) {%> 
 
\t <tr><td>First Name</td><td><input type=text name="fname" value='<%=rs.getString("firstname")%>' ></td></tr> 
 
\t <tr><td>Last Name</td><td><input type=text name="lname" value='<%=rs.getString("lastname")%>'></td></tr> 
 
\t <tr><td>Email</td><td><input type=text name="email" value='<%=rs.getString("email")%>'></td></tr> 
 
\t <tr><td>Phone</td><td><input type=text name="phone" value='<%=rs.getString("phone")%>'></td></tr> 
 
\t <tr><td>Address</td><td><input type=text name="address" value='<%=rs.getString("address")%>'></td></tr> 
 
<% 
 
} 
 
rs.close(); 
 
stmt.close(); 
 
con.close(); 
 

 
}catch(SQLException exception){ 
 
\t //out.println("<!--"); 
 
\t StringWriter sw = new StringWriter(); 
 
\t PrintWriter pw = new PrintWriter(sw); 
 
\t exception.printStackTrace(pw); 
 
\t out.print(sw); 
 
\t sw.close(); 
 
\t pw.close(); 
 
\t //out.println("-->"); 
 
} 
 
%> 
 
</table> 
 
</form> 
 
</body> 
 
</html>

auth.jsp

<%@ page language="java" %> 
 
<%@ page import="org.owasp.esapi.ESAPI" %> 
 
<%@ page import="org.owasp.esapi.codecs.Codec" %> 
 
<%@ page import="org.owasp.esapi.codecs.MySQLCodec" %> 
 
<%@ page import="java.sql.*" %> 
 
<%@ page import="java.io.*" %> 
 
<%! Connection con=null; %> 
 
<%! Statement stmt= null; %> 
 
<%! ResultSet rs= null; %> 
 
<%! MySQLCodec mc= null; %> 
 

 
<html> 
 
<head><title>This is a Jdbc Example</title></head> 
 
<body> 
 

 
<% 
 
String uname = request.getParameter("uname"); 
 
String pass = request.getParameter("pass"); 
 

 
try { 
 
Class.forName("com.mysql.jdbc.Driver").newInstance(); 
 
}catch(ClassNotFoundException ce){out.println(ce);} 
 

 
try{ 
 
con = DriverManager.getConnection("jdbc:mysql://localhost/test:3306","root", "1234"); 
 
stmt = con.createStatement(); 
 
//String sql = "select * from user_detail where uname='" + uname +"' and pass='" + pass + "'"; 
 

 
mc = new MySQLCodec(0); 
 

 
String sql = "SELECT * FROM userdetail WHERE uname = '" + ESAPI.encoder().encodeForSQL(mc, uname) + "' and pass = '" + ESAPI.encoder().encodeForSQL(mc, pass) +"'"; 
 

 
out.println(sql); 
 
stmt = con.createStatement(); 
 
rs = stmt.executeQuery(sql); 
 
if (rs.next()) { 
 
\t boolean loggedIn = true; 
 
\t //response.sendRedirect("userdetail.jsp?uid=1"); 
 
\t out.println("Successfully logged in"); 
 
} else { 
 
\t //response.sendRedirect("login.jsp"); 
 
\t out.println("Username and/or password not recognized"); 
 
} 
 
rs.close(); 
 
stmt.close(); 
 
con.close(); 
 

 
}catch(SQLException exception){ 
 
//out.println("<!--"); 
 
StringWriter sw = new StringWriter(); 
 
PrintWriter pw = new PrintWriter(sw); 
 
exception.printStackTrace(pw); 
 
out.print(sw); 
 
sw.close(); 
 
pw.close(); 
 
//out.println("-->"); 
 

 
} 
 

 

 

 
%> 
 
</body> 
 
</html>

MySQL datatbase

Error page

+0

检查,如果在WEB-INF/lib目录 –

回答

0

好了,这听起来是一个类路径的问题。你能否检查WEB-INF/classes中存在的MySQLCodec类,或者是否存在于WEB-INF/lib路径中的任何jar中。

您可以仔细检查tomcat war目录。它应该在下面的示例文件夹结构中。

Tomcat Directory Structure

+0

@Abhilash存在包含MySQLCodec所需的jar文件,我不能对你的解答,因为我没有足够的声誉发表评论。在Login.jsp中,你没有声明任何名为** uid **的输入参数。但是,在userdetail.jsp中,您试图获取该参数,它将是一个空值,并将其解析为一个整数。 – harshavmb

+0

我是编码新手,所以在编码时遇到问题。这个应用程序正在开发安全测试,所以请帮助我。谢谢Harsha – Abhilash