온라인 뱅킹 응용 프로그램을 개발 중입니다. 여기서 멈추는 부분은 1 부분입니다.DB에 삽입 된 마지막 행 가져 오기
-> 사용자는 세부 정보를 입력하고 계정을 만들기 위해 HTML 페이지에 양식을 표시합니다.
-> 세부 정보가 MySQL 데이터베이스에 입력되고 사용자가 계정 번호 (MySQL 자동 증가 기능을 사용하여 자동 생성됨)와 비밀 번호 4 자리가 표시되어야하는 JSP 페이지로 리디렉션됩니다 핀 (자동 증가가 아닌 모든 사용자에 대해 무작위로 생성).
JSP에 DB의 값과 리디렉션을 삽입하는 내 서블릿의의 doPost() 메소드에서 코드 sinppet은 여기 - 지금
try {
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/inb", "root", "root");
//The user's password has to be converted into a salted hash before storing in the database.
String hashed_password=CreateDigest.getPasswordDigest(request.getParameter("password"));
PreparedStatement ps=con.prepareStatement("insert into inb.users values (NULL, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
ps.setString(1, request.getParameter("name1"));
ps.setString(2, request.getParameter("name2"));
ps.setString(3, request.getParameter("name3"));
ps.setString(4, request.getParameter("dob"));
ps.setInt(5, Integer.parseInt(request.getParameter("age")));
ps.setString(6, request.getParameter("email"));
ps.setString(7, request.getParameter("mobnum"));
ps.setString(8, request.getParameter("address1"));
ps.setString(9, request.getParameter("address2"));
ps.setString(10, request.getParameter("pannum"));
ps.setString(11, request.getParameter("aadhar"));
ps.setString(12, hashed_password);
ps.setString(13, request.getParameter("acc_bal"));
ps.setInt(14, pin);
int i=ps.executeUpdate();
//Check if records have been actually been inserted or not.
if (i>0) {
response.sendRedirect("AccountOpened.jsp");
}
} catch (ClassNotFoundException | SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
이며,이 계정을 표시하는 JSP 코드 NO. 그리고 사용자 - 의 핀 (last_acc_no 및 last_pin 내가 더 핀 마지막으로 삽입 된 계정을 보유 만들어 내 서블릿 클래스의 정적 변수입니다.)
<%
String acc_no=CreateAccount.last_acc_No;
int pin=CreateAccount.last_pin;
%>
<h3>Congratulations ! Your account has been created.</h3>.
<br/><br/>
Your Account Number Is : <b> <%= acc_no %> </b>
<br/><br/>
Your Secret PIN No. Is : <b> <%= pin %> </b>
지금, 나는 account_no 핀을 검색 할 마지막으로 삽입 된 사용자의 이름으로, JSP 페이지에 표시 할 수 있습니다. 그리고 나는 그것에 대한 방법을 알아낼 수 없습니다. 당신의 JSP 페이지에
서블릿 클래스의'static' 변수는 ** bad **입니다! 다음은 JSP에서 sriptlets를 사용하지 않는 것입니다! 질문, 왜'RequestDispatcher' 대신에'redirect()'를 사용합니까? – NINCOMPOOP
@TheNewIdiot 더 나쁜 점 : OP는 데이터베이스 연결 풀을 사용하는 대신 수동으로 데이터베이스 연결을 만들고이 응용 프로그램의 모델과 컨트롤러간에 차이가 없으며 유지 관리 목적으로 계층화 된 응용 프로그램을 개발하는 데 대한 지식이 부족함을 보여줍니다. –