1. 程式人生 > >JAVA web中MVC案列登陸(servlet)

JAVA web中MVC案列登陸(servlet)

本次專案整體思路:首先在login.jsp中寫一個使用者名稱和密碼的登陸介面跳轉到LoginServlrt進行資料組裝login然後呼叫LoginDao進行校驗login():登陸校驗,LoginDao通過返回值,返回登陸結果 ,LoginServlet根據不同的結果進行不同的處理。登陸成功跳過去Welcome.jsp,登陸失敗跳回login.jsp

  1. eclipse中建立一個web專案之後建立一個jsp的檔名字叫login.jsp 寫好login介面

    <title>登陸</title>
    <form  action="LoginServlet" method="post">
    使用者名稱  <input type="text" name="uname">
    密碼   <input type="password" name="upwd">
            <input type="submit" value="登陸">
    </form>
    

2.然後在建立一個JAVAbean的實體類(Login)用來封裝使用者名稱和密碼

package com.entiry;

public class Login {
	int id;
	String uname;
	String upwd;
	public Login() {	
	}
	public Login( String uname, String upwd) {
		this.uname = uname;
		this.upwd = upwd;
	}
	public Login(int id, String uname, String upwd) {
		this.id = id;
		this.uname = uname;
		this.upwd = upwd;
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getUname() {
		return uname;
	}
	public void setUname(String uname) {
		this.uname = uname;
	}
	public String getUpwd() {
		return upwd;
	}
	public void setUpwd(String upwd) {
		this.upwd = upwd;
	}
}

3.接著需要寫一個連線資料庫的類用來實現校驗登陸(用於處理資料)我用的mysql,你們用之前需要建立好表。(下面有我關於這次專案的資料表)
LoginDao類:

package com.Dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.entiry.Login;

//模型層 用於處理資料
public class LoginDao {
public static boolean login(Login login) {
	Connection connection =null;
	PreparedStatement pstmt=null;
	ResultSet rs=null;
	int s=-1; 
	boolean flag;//true為登陸成功  false為登陸失敗
	
	try {
		Class.forName("com.mysql.jdbc.Driver");
		connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","root");
		String sql="select * from login where Uname=? and Upwd=?";
		pstmt = connection.prepareStatement(sql);
		pstmt.setString(1,login.getUname() );
		pstmt.setString(2, login.getUpwd());
	    rs = pstmt.executeQuery();
	    if(rs.next()){
	    	s=rs.getInt(1);
	    	
	    }
	    if(s>0){
	    	flag=true;//登陸成功
	    }
	    else{flag=false;//登陸失敗
	    }
	} catch (ClassNotFoundException e) {
	
		e.printStackTrace();
		flag=false;//登陸失敗 
	} catch (SQLException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
		flag=false;
	}
	catch (Exception e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
		flag=false;
	}finally{
		try {
			if(rs!=null)rs.close();
			if(pstmt!=null)pstmt.close();
			if(connection!=null)connection.close();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
	return flag;

}
}

4.最後在建立一個servlet類做到承上啟下的作用
LoginServlet類

package com.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.Dao.LoginDao;
import com.entiry.Login;


public class LoginServlet extends HttpServlet {

    
	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//處理登陸請求
		request.setCharacterEncoding("utf-8");
		String name=request.getParameter("uname");
		String pwd=request.getParameter("upwd");
		Login login=new Login(name ,pwd);
		//呼叫登陸功能
		LoginDao.login(login);
		boolean s=LoginDao.login(login);
		if(s==true){
			response.sendRedirect("Welcome.jsp");//登陸成功跳轉到Welcome.jsp介面
		}
		
		else{response.sendRedirect("login.jsp");//登陸失敗跳回loginjsp介面繼續登陸
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}

}
5.寫一個Welcome.jsp的JSP用於登陸成功的顯示
    <title>登陸成功</title>
</head>
<body>
登陸成功!
</body>

mysql資料表:建立一個庫test 在test中建立一個叫login的表

這是表的結構
這裡是表的資料
這就是整個專案的完成步驟,到這裡整個專案就寫完。