Ví dụ đăng nhập và đăng xuất trong JSP

Trong ví dụ này, chúng tôi đang sử dụng cơ sở dữ liệu Oracle 10g để khớp emailId và mật khẩu với cơ sở dữ liệu.

Tên bảng là user 432 có nhiều trường như tên, email, pass, v.v. Bạn có thể sử dụng truy vấn này để tạo bảng:TẠO BẢNG   “USER432”  .

lap-trinh-java-jsp
Login and Logout Example in JSP
TẠO BẢNG   "USER432"   
   (     "TÊN"  VARCHAR2 ( 4000 ),   
    "EMAIL"  VARCHAR2 ( 4000 ),   
    "PASS"  VARCHAR2 ( 4000 )  
   )  
/  

index.jsp

Nó chỉ đơn giản cung cấp ba liên kết để đăng nhập, đăng xuất và hồ sơ.

<a href= "login.jsp"> đăng nhập </a> |  
<a href= "logout.jsp"> đăng xuất </a> |  
<a href= "profile.jsp"> hồ sơ </a>  

login.jsp

Tệp này tạo một hình thức đăng nhập cho hai tên trường và mật khẩu. Đây là hình thức đăng nhập đơn giản, bạn có thể thay đổi nó để có giao diện tốt hơn. Chúng tôi chỉ tập trung vào khái niệm này.

<%@ include file="index.jsp" %>  
<hr/>  
  
<h3>Login Form</h3>  
<%  
String profile_msg=(String)request.getAttribute("profile_msg");  
if(profile_msg!=null){  
out.print(profile_msg);  
}  
String login_msg=(String)request.getAttribute("login_msg");  
if(login_msg!=null){  
out.print(login_msg);  
}  
 %>  
 <br/>  
<form action="loginprocess.jsp" method="post">  
Email:<input type="text" name="email"/><br/><br/>  
Password:<input type="password" name="password"/><br/><br/>  
<input type="submit" value="login"/>"  
</form>  

login process.jsp

Tệp jsp này chứa tất cả các giá trị đến cho một đối tượng của lớp bean được truyền dưới dạng đối số trong phương thức xác thực của lớp LoginDao.

Nếu emailid và mật khẩu là chính xác, nó sẽ hiển thị một thông báo bạn đã đăng nhập thành công! và duy trì phiên để chúng tôi có thể nhận ra người dùng.

<%@page import="bean.LoginDao"%>  
<jsp:useBean id="obj" class="bean.LoginBean"/>  
  
<jsp:setProperty property="*" name="obj"/>  
  
<%  
boolean status=LoginDao.validate(obj);  
if(status){  
out.println("You r successfully logged in");  
session.setAttribute("session","TRUE");  
}  
else  
{  
out.print("Sorry, email or password error");  
%>  
<jsp:include page="index.jsp"></jsp:include>  
<%  
}  
%>  

LoginBean.java

Đây là lớp bean có 2 thuộc tính email và vượt qua với các phương thức setter và getter của nó.

package bean;  
  
public class LoginBean {  
private String email,pass;  
  
public String getEmail() {  
    return email;  
}  
  
public void setEmail(String email) {  
    this.email = email;  
}  
  
public String getPass() {  
    return pass;  
}  
  
public void setPass(String pass) {  
    this.pass = pass;  
}   
}  

Provider.java

Giao diện này chứa bốn hằng số có thể khác nhau từ cơ sở dữ liệu đến cơ sở dữ liệu.

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

Lớp này cung cấp một phương thức nhà máy trả về đối tượng của Kết nối. Ở đây, lớp trình điều khiển chỉ được tải một lần và đối tượng kết nối chỉ nhận được bộ nhớ một lần vì nó là tĩnh.

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;  
}  
  
}  

LoginDao.java

Lớp này thay đổi emailid và mật khẩu.

package bean;  
import java.sql.*;  
public class LoginDao {  
  
public static boolean validate(LoginBean bean){  
boolean status=false;  
try{  
Connection con=ConnectionProvider.getCon();  
              
PreparedStatement ps=con.prepareStatement(  
    "select * from user432 where email=? and pass=?");  
  
ps.setString(1,bean.getEmail());  
ps.setString(2, bean.getPass());  
              
ResultSet rs=ps.executeQuery();  
status=rs.next();  
              
}catch(Exception e){}  
  
return status;  
  
}  
}  

Bài viết gần đây

Tìm hiểu chi tiết bên trong JVM

JVM (Java Virtual Machine) là một máy ảo. Nó cung cấp môi trường runtime, nơi mà mã Java bytecode sẽ được thực thi.

Sự Khác nhau giữa JDK, JRE và JVM

Trước khi thực sự đặt tay gõ các dòng code Java, cài đặt Java thì chúng ta phải hiểu sự khác nhau giữa JDK, JRE và JVM.

Hướng dẫn Cài đặt đường dẫn PATH trong Java

Nếu bạn tạo dự án Java bên ngoài thư mục JDK / bin, thì cần phải thiết lập đường dẫn của JDK. Đây là 2 cách cài đặt đường dẫn path trong Java.

Cách hoạt động của Chương trình Java: Hello Java

Tìm hiểu những gì xảy ra trong khi biên dịch và chạy chương trình java. Hơn nữa, chúng ta sẽ làm rõ một số câu hỏi ở chương trình Hello Java của chúng ta.

Viết Chương trình Java đầu tiên: Hello Java

Trong bài hướng dẫn này, chúng ta sẽ học cách viết chương trình đơn giản đầu tiên với ngôn ngữ lập trình Java. Qua bài này bạn sẽ biết cách viết Java, Compile và chạy một chương trình Java bất kỳ

So sánh JAVA vs C++

Hôm nay trong bài viết này mình sẽ so sánh Java vs C++. Còn nếu bạn muốn đọc thêm về so sánh Java vs PHP hay Java với C# thì xem thêm tại đây:

Leave a reply

Please enter your comment!
Please enter your name here