📜  JSP中的注册表格

📅  最后修改于: 2021-01-05 01:17:45             🧑  作者: Mango

JSP中的注册表

要创建注册表单,您必须在数据库中有一个表。您可以在JSP文件中编写数据库逻辑,但是将其与JSP页面分开是更好的方法。在这里,我们将使用DAO,工厂方法,DTO和Singletion设计模式。有很多文件:

  • index.jsp,用于从用户获取值
  • User.java ,一个具有属性以及setter和getter方法的bean类。
  • process.jsp ,一个处理请求并调用方法的jsp文件
  • Provider.java ,一个包含许多常量的接口,例如DRIVER_CLASS,CONNECTION_URL,USERNAME和PASSWORD
  • ConnectionProvider.java ,一个返回Connection对象的类。它使用Singleton和工厂方法设计模式。
  • RegisterDao.java ,一个负责访问数据库的DAO类

JSP中的注册表格示例

在此示例中,我们使用Oracle10g数据库与数据库连接。首先让我们在Oracle数据库中创建表:


CREATE TABLE  "USER432" 
   (    "NAME" VARCHAR2(4000), 
    "EMAIL" VARCHAR2(4000), 
    "PASS" VARCHAR2(4000)
   )
/

我们在这里创建了名为user432的表。

index.jsp

这里我们只有三个字段,以使概念更清晰并简化应用程序流程。您也可以根据需要设置其他字段,例如国家/地区,爱好等。





process.jsp

这个jsp文件包含所有到bean类的对象的输入值,该类作为参数传递给RegisterDao类的register方法。



<%@page import="bean.RegisterDao"%>




<%
int status=RegisterDao.register(obj);
if(status>0)
out.print("You are successfully registered");

%>

User.java

该bean类具有其setter和getter方法,具有3个属性uname,uemail和upass。


package bean;

public class User {
private String uname,upass,uemail;

public String getUname() {
    return uname;
}

public void setUname(String uname) {
    this.uname = uname;
}

public String getUpass() {
    return upass;
}

public void setUpass(String upass) {
    this.upass = upass;
}

public String getUemail() {
    return uemail;
}

public void setUemail(String uemail) {
    this.uemail = uemail;
}

}


Provider.java

此接口包含四个常量,每个数据库的常量可能不同。


package bean;

public interface Provider {
String DRIVER="oracle.jdbc.driver.OracleDriver";
String CONNECTION_URL="jdbc:oracle:thin:@localhost:1521:xe";
String USERNAME="system";
String PASSWORD="oracle";

}

ConnectionProvider.java

此类负责返回Connection对象。此处,驱动程序类仅加载一次,并且连接对象仅获取一次内存。


package bean;
import java.sql.*;
import static bean.Provider.*;

public class ConnectionProvider {
private static Connection con=null;
static{
try{
Class.forName(DRIVER);
con=DriverManager.getConnection(CONNECTION_URL,USERNAME,PASSWORD);
}catch(Exception e){}
}

public static Connection getCon(){
    return con;
}

}

RegisterDao.java

此类将Bean组件的值插入数据库。


package bean;

import java.sql.*;

public class RegisterDao {

public static int register(User u){
int status=0;
try{
Connection con=ConnectionProvider.getCon();
PreparedStatement ps=con.prepareStatement("insert into user432 values(?,?,?)");
ps.setString(1,u.getUname());
ps.setString(2,u.getUemail());
ps.setString(3,u.getUpass());
            
status=ps.executeUpdate();
}catch(Exception e){}
    
return status;
}

}