Java 登录系统/注册用户
我不确定如何访问我的参数,然后使用它们在我的数据库中注册用户 下面是Java 登录系统/注册用户,java,jsp,registration,Java,Jsp,Registration,我不确定如何访问我的参数,然后使用它们在我的数据库中注册用户 下面是register.JSP的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 Trans
register.JSP的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>
我的登录系统工作正常,但我在如何让我的用户注册工作上遇到了麻烦。
我想创建一个单独的类,并使用该bean来处理用户注册,而无需重新连接到DB等等。这是为了重用代码和节省时间
如何实现这一点?如果用户按下“CreateUser”,则可以将请求和响应转发给控制器servlet/JSP
控制器servlet将从请求中获取所有参数,将它们存储在一个枚举中(因为您正在使用一个枚举),它将打开一个DB连接(通过创建DB类(dbconnect)的实例,然后对其调用一个方法,传递数据或枚举),并且DB类将更新您的数据库
控制器servlet随后将响应转发到另一个JSP页面或另一个视图,并进行确认
这些基本上是模型-视图-控制器(MVC)模式的基础,在这里,您有控制器servlet、您的模型,或者在您的例子中有dbconnect类(业务模型mutator),然后是一堆表示视图的JSP页面
我再说一遍,这是你处理自己处境的方法之一
问候 代码中有太多错误,我不知道从哪里开始回答。因此,这里有一个链接,可以让您开始了解基本概念:。它依次包含许多有用的链接(每个链接依次包含许多有用的链接)。
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...");
}
}
}
}