2011-11-10 17 views
0

私は自分のパラメータにアクセスして、私のDBにユーザを登録するためにどのように使用するべきか確信しています。ここでログインシステム/ユーザ登録

はここregister.jsp

<%@page import="java.util.Enumeration"%> 
<%@ page language="java" contentType="text/html; charset=UTF-8" 
    pageEncoding="UTF-8"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<LINK href="style.css" rel="stylesheet" type="text/css"> 
<title>Opret bruger</title> 
<jsp:useBean id="dbconnect" class="dbconnection.dbconnect.CreateUser" scope="session"></jsp:useBean> 

<jsp:setProperty name="dbconnect" property="*" /> 
</head> 
<body> 
<% 
    if(dbconnect.loggedIn){ 
     response.sendRedirect("minprofil.jsp"); 
    } 
%> 
<form> 

    <p><label for="navn">Navn:</label><input type="text" name="navn" /></p> 
    <p><label for="efternavn">Efternavn:</label><input type="text" name="efternavn" /></p> 
    <p><label for="alder">Alder:</label><input type="text" name="alder" /></p> 
    <p><label for="email">Email:</label><input type="text" name="email" /></p> 
    <p><label for="username">Brugernavn:</label><input type="text" name="username" /></p> 
    <p><label for="password">Kodeord:</label><input type="text" name="password" /></p> 
    <p><label for="retypepassword">Gentag kodeord:</label><input type="text" name="retypepassword" /></p> 
    <p><label for="yndlingshold">Yndlingshold:</label><input type="text" name="yndlingshold" /></p> 



    <p class="submit"> 
     <input type="submit" name="goToLogin" value="Gå til login" /> 
     <input type="submit" name="OpretBruger" value="Opret bruger" /> 
    </p> 
</form> 
<% 


    if(request.getParameter("goToLogin")!=null) 
     response.sendRedirect("login.jsp"); 

    if(request.getParameter("OpretBruger")!=null){ 
     What should i do here ? 
       "OpretBruger" means "Create user" in english 

    } 



%> 


</body> 
</html> 

そしてのためのJSPコードである私のJava Beanがすべてのこと

package dbconnection; 

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.PreparedStatement; 
import java.sql.SQLException; 
import java.sql.ResultSet; 



public class dbconnect { 
    private static Connection con; 
    String username; 
    String password; 
    int age; 
    String name; 
    public Boolean loggedIn = false; 
    private ResultSet rs; 
    CreateUser createuserClass = new CreateUser(); 


    public String getName(){ 
     return name; 
    } 
    public int getAge(){ 
     return age; 
    } 

    public String getUsername(){ 
     return username; 
    } 

    public String getPassword(){ 
     return password; 
    } 

    public void setUsername(String username){ 
     this.username = username; 

    } 

    public void setPassword(String password){ 
     this.password = password; 
    } 






    public synchronized static void init(){ 
     if(con!=null) 
      return; 

     try { 
      Class.forName("com.mysql.jdbc.Driver"); 
      con = DriverManager.getConnection("jdbc:mysql:///BLANKED OUT","BLANKED OUY","BLANKED OUT"); 

     } catch (ClassNotFoundException e) { 

      e.printStackTrace(); 
      System.out.println("Could not find class, quitting."); 

     }// Loading DB driver 
     catch (SQLException e) { 

      e.printStackTrace(); 
      System.out.println("SQLException, quitting"); 
     } 

    } 

    public void checkLogin(){ 
     try { 
      PreparedStatement login = con.prepareStatement("SELECT * FROM brugere WHERE brugernavn=? AND password=?"); // REMEMBER TO CHANGE TABLE NAME IF DIFFERENT DB IS USED! 

      login.setString(1, username); 
      login.setString(2, password); 

      rs = login.executeQuery(); 


      if(rs.next()){ 
       loggedIn = true; 
       setInfo(); 
      }else{ 
       loggedIn = false; 
      } 
     } catch (SQLException e) { 
      e.printStackTrace(); 
      System.out.println("SQL exception in dbconnect, method = checklogin"); 
     } 
    } 



    public void setInfo(){ 
     try { 
      this.name = rs.getString(1) + " " + rs.getString(2); 
      this.username = rs.getString(5); 
      this.age = rs.getInt(3); 
     } catch (SQLException e) { 

      e.printStackTrace(); 
      System.out.println("Something fucked up"); 
     } 



    } 


    // Class til at oprette brugeren. Denne får parametre fra registrer.jsp og sætter dem som globale variable 
    class CreateUser{ 
     // navn | efternavn | alder | email | brugernavn | password | hold 
     String navn; 
     String efternavn; 
     int alder; 
     String email; 
     String brugernavn; 
     String password; 
     String hold; 
     public void setNavn(String navn){ 
      this.navn = navn; 
     } 
     public void setEfternavn(String efternavn){ 
      this.efternavn = efternavn; 
     } 
     public void setAlder(int alder){ 
      this.alder = alder; 
     } 
     public void setEmail(String email){ 
      this.email = email; 
     } 
     public void setBrugernavn(String brugernavn){ 
      this.brugernavn = brugernavn; 
     } 
     public void setPassword(String password){ 
      this.password = password; 
     } 
     public void setHold(String hold){ 
      this.hold = hold; 
     } 


     // Funktionen som skal køres for, at opdatere database table 
     public void createUser(){ 



      try{ 
       PreparedStatement opretBruger = con.prepareStatement("INSERT INTO account VALUES(?,?,?,?,?,?,?)"); 
       opretBruger.setString(1, navn); 
       opretBruger.setString(2, efternavn); 
       opretBruger.setInt(3, alder); 
       opretBruger.setString(4, email); 
       opretBruger.setString(5, brugernavn); 
       opretBruger.setString(6, password); 
       opretBruger.setString(7, hold); 

       opretBruger.executeUpdate(); 




      }catch(Exception e) { 
       e.printStackTrace(); 
       System.out.println(navn + " " + efternavn + " " + alder); 
       System.out.println("Problemer med, at oprette bruger..."); 
      } 
     } 
    } 



} 

私のログインシステムが正常に動作しますが、私は悩みを持っているDBに接続し、管理することですどのように私は私のユーザー登録作業を行う必要があります。 私は別のクラスを作り、そのBeanを使ってDBに再接続することなくユーザー登録を処理したいと考えています。それはコードを再利用して時間を節約するためです。

どうすればこの問題を解決できますか?

+0

Javaは頭字語ではありません –

+0

コードには多すぎる誤りがあり、どこから回答するのか分かりません。ですから、基本的な概念をまっすぐに始めるためのリンクです:http://stackoverflow.com/tags/jsp/info。これには多くの便利なリンクも含まれています(リンクには多くの便利なリンクもあります)。 – BalusC

答えて

1

ユーザが「CreateUser」を押すと、要求と応答をコントローラサーブレット/ JSPに転送できます。

コントローラサーブレットは、リクエストからすべてのパラメータを取得し、ENUMに格納します(使用しているので、DB接続(dbconnect)のインスタンスを作成してから、メソッドを実行し、データまたはENUMを渡します)、DBクラスがデータベースを更新します。

コントローラのサーブレットは、応答を別のJSPページまたは別のビューに確認とともに転送します。

これは、コントローラサーブレット、モデル、場合によってはdbconnectクラス(ビジネスモデルミューテータ)を持つモデルビューコントローラ(MVC)パターンの基本的なものです。ビューを表します。

あなたの状況に対応できる方法は1つ、私は繰り返します。

よろしくお願いいたします。