2013-12-13 3 views
-2

Я пытаюсь создать крошечный музыкальный форум, который требует от пользователя регистрации и входа в систему, чтобы прокомментировать понравившуюся песню, их информация будет храниться в базе данных mysql. Я использую модель MVC для управления всем: Регистрация, Регистрация, Вход. Но теперь я не знаю, как оставить комментарий пользователя и показать все свои комментарии ниже страницы песни (их комментарий также будет сохранен в базе данных). Вот мой код, я пытался до сих пор:комментировать музыкальный форум

controller.java:

String action = request.getParameter("submit"); 

     if (action.equals("Register")){ 
      String Uname = request.getParameter("uname"); 
      String Pword = request.getParameter("pass"); 
      String Email = request.getParameter("mail"); 

      boolean check = false; 
      try { 
       signin signin = new signin(); 
       check = signin.check(Uname); 
       if (check) 
        request.setAttribute("error","This user has already been registered"); 
      } 
      catch(Exception e){ 
       System.out.println("Exception"); 
      } 
      if (check){ 
       RequestDispatcher dispatch = request.getRequestDispatcher("signin.jsp"); 
       dispatch.forward(request, response); 
      } 
      else{ 
       try{ 
        signin signin = new signin(); 
        signin.register(Uname, Email, Pword); 
        response.sendRedirect("registersuccess.jsp"); 
       } 
       catch(Exception e) 
       { 
        System.out.println("Exception"); 
       } 
      } 
     } 
     if (action.equals("Login")){ 
      HttpSession session=request.getSession(); 
      String username=request.getParameter("u1"); 
      String password=request.getParameter("u2"); 
      boolean check = false; 
      try { 
       signin a = new signin(); 
       check = a.checkuser(username, password); 
      } 
      catch(Exception e){System.out.println("Exception");} 
      if(check){ 
       session.setAttribute("username",username); 
       response.sendRedirect("home.jsp"); 
      } 
      else{ 
       request.setAttribute("error","ERROR! Wrong Username or Password. Try again!"); 
       RequestDispatcher dispatch=request.getRequestDispatcher("signinfail.jsp"); 
       dispatch.forward(request, response);    
      } 
     } 
     if (action.equals("Logout")){ 
      HttpSession session=request.getSession(); 
      session.invalidate(); 
      response.sendRedirect("home.jsp"); 
     } 

bean.java:

public void register(String uname, String pass, String email) 
     throws SQLException, InstantiationException, IllegalAccessException, ClassNotFoundException { 

    String driver = "com.mysql.jdbc.Driver"; 
    Class.forName(driver).newInstance(); 
    String url = "jdbc:mysql://localhost:3306/"; 
    String dbName = "webauth"; 
    String userName = "root"; 
    String passWord = ""; 
    Connection conn = DriverManager.getConnection(url + dbName, userName, passWord); 
    PreparedStatement statement; 
    statement = conn.prepareStatement("insert into data(username, email, password)" + " values (?,?,?)"); 
    statement.setString(1, uname); 
    statement.setString(2, pass); 
    statement.setString(3, email); 
    statement.executeUpdate(); 
    statement.clearParameters(); 
    statement.close(); 
    conn.close(); 
} 

public boolean check(String username) 
     throws ClassNotFoundException, InstantiationException, IllegalAccessException, SQLException { 

    boolean b = false; 
    Connection connection = null; 
    Class.forName("com.mysql.jdbc.Driver").newInstance(); 
    connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/webauth", "root", ""); 
    Statement statement = connection.createStatement(); 
    ResultSet rs = statement.executeQuery("SELECT username FROM data"); 
    while (rs.next()) { 
     if (rs.getString("username").equals(username)) { 
      b = true; 
      break; 
     } else { 
      b = false; 
     } 
    } 
    rs.close(); 
    return b; 
} 

public boolean checkuser(String username, String password) 
     throws ClassNotFoundException, InstantiationException, IllegalAccessException, SQLException { 

    boolean b = false; 
    Connection connection = null; 
    Class.forName("com.mysql.jdbc.Driver").newInstance(); 
    connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/webauth", "root", ""); 
    Statement statement = connection.createStatement(); 
    ResultSet rs = statement.executeQuery("SELECT username,password FROM data"); 
    while (rs.next()) { 
     if (rs.getString("username").equals(username) && rs.getString("password").equals(password)) { 
      b = true; 
      break; 
     } else { 
      b = false; 
     } 
    } 
    rs.close(); 
    return b; 
} 
+0

Вопрос кажется очень расплывчатым ... «MVC» - очень общий термин. в чем именно проблема?: Что вы сделали для решения проблемы? Какие рамки вы используете? Действительно ли этот код имеет какое-либо отношение к добавлению комментария? – hyde

+0

на самом деле я понятия не имею, как опубликовать и показать весь комментарий, что пользователи разместили ниже песни. Все, что я могу сделать, это просто сохранить его в базе данных – trivip93

ответ

0

если песня имеет уникальный идентификатор, создать запрос SQL, который только показывает комментарии к этой песне, затем создайте частичное представление и используйте это для отображения комментариев к этой песне.

пример

выберите * из таблицы, где песня ID = ваша переменная

, то вы можете создать частичный вид, что отобразить все комментарии для этой песни

надеюсь, что это указывает на вас в правильном направлении

Смежные вопросы