JAVA web中MVC案列登陸(servlet)
阿新 • • 發佈:2018-12-21
本次專案整體思路:首先在login.jsp中寫一個使用者名稱和密碼的登陸介面跳轉到LoginServlrt進行資料組裝login然後呼叫LoginDao進行校驗login():登陸校驗,LoginDao通過返回值,返回登陸結果 ,LoginServlet根據不同的結果進行不同的處理。登陸成功跳過去Welcome.jsp,登陸失敗跳回login.jsp
-
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的表
這就是整個專案的完成步驟,到這裡整個專案就寫完。