Я не уверен, как мне получить доступ к своим параметрам и затем использовать их для регистрации пользователя в моей БД.
Вот код JSP для 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>
И вот мой Java-бин для подключения к БД и управления всем этим
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...");
}
}
}
}
Моя система входа в систему работает нормально, но у меня проблемы с тем, как мне сделать так, чтобы моя регистрация пользователя работала.
Я хотел бы создать отдельный класс и использовать этот компонент для обработки регистрации пользователей без необходимости повторного подключения к БД и так далее. Это повторное использование кода и экономия времени.
Как мне этого добиться?