一篇超级详细的jsp+servlet+jdbc+mysql检验登录操作(IntelliJ IDEA)
生活随笔
收集整理的這篇文章主要介紹了
一篇超级详细的jsp+servlet+jdbc+mysql检验登录操作(IntelliJ IDEA)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
以下為工程目錄,可以提前建好:
第一步:首先在數據庫建好表:
該表為用于登錄的用戶信息表。
第二步:做好前端登錄的login.jsp頁面:
代碼如下:
第三步:集成JDBC環境
3.1 導入mysql的驅動添加到module中。
3.1.1 將下載好的mysql驅動復制粘貼到web/WEB-INF/lib中。
3.1.2 打開project Structure(Ctrl + Alt + Shift +s),點擊左側Modules,選擇你要添加的module,點擊右側+按鈕找到mysql的jar包,點擊ok完成。
3.2 創建jdbc.properties,存放在src下 , 注意 : 一定要是項目的src下,這樣才能被讀取到。
driverclass=com.mysql.jdbc.Driver # stuproject為數據庫的表名 url=jdbc:mysql://localhost/stuproject # 連接數據庫的賬號 name=root # 連接數據庫的密碼(安裝mysql的時候自己設的) password=1234563.3 創建用于獲取連接和關閉數據庫連接資源的工具類JDBCUtils.java,可以創建一個utils包專門用于存放工具類 , 該類中所有方法都為靜態方法 , 可以直接通過類名JDBCUtils調用
public class JDBCUtils {static String driverclass = null;static String url = null;static String name = null;static String password = null;static{try {Properties pros = new Properties();// 利用類加載器classLoader獲取src下的資源InputStream is = JDBCUtils.class.getClassLoader().getResourceAsStream("jdbc.properties");pros.load(is);//讀取輸入流,也就是讀取我們在jdbc.properties下存放的各種連接數據庫的屬性//讀取連接數據庫的屬性,通過這些屬性才能連接到數據庫driverclass = pros.getProperty("driverclass");url = pros.getProperty("url");name = pros.getProperty("name");password = pros.getProperty("password");} catch (IOException e) {e.printStackTrace();}}/*** 該方法用于獲取數據庫連接* @return*/public static Connection getConn(){Connection conn = null;try {//1.利用反射注冊driverclassClass.forName(driverclass);//2.建立連接 參數一:協議 + 訪問的數據庫,參數二:用戶名,參數三: 密碼。conn = DriverManager.getConnection(url, name, password);} catch (Exception e) {e.printStackTrace();}return conn;}/*** 該方法用于關閉連接資源,不關閉就會浪費資源* @param conn*/public static void release(Connection conn,PreparedStatement ps){closeConn(conn);closePs(ps);}public static void release(Connection conn,PreparedStatement ps,ResultSet rs){closePs(ps);closeConn(conn);closeRs(rs);}public static void closeConn(Connection conn){try {if(conn != null){conn.close();}} catch (SQLException e) {e.printStackTrace();} finally {conn = null;}}public static void closePs(PreparedStatement ps){try {if(ps !=null){ps.close();}} catch (SQLException e) {e.printStackTrace();} finally {ps=null;}}public static void closeRs(ResultSet rs){try {if(rs !=null){rs.close();}} catch (SQLException e) {e.printStackTrace();} finally {rs=null;}}}第四步:搭建用于處理數據庫表的DAO(操作表)和DaoImpl(實現檢驗登錄的方法)。
4.1 UserDao接口(用于操作User表)
接口定義了一套標準,沒有具體的實現。
public interface UserDao {/*** 檢驗登錄的方法*/boolean login(String username,String password); }4.2 UserDaoImpl實現類
該類實現了UserDao接口,用于完成檢驗登錄的方法。
public class UserDaoImpl implements UserDao {/*** 用于檢驗登錄的方法* @param username* @param password* @return*/@Overridepublic boolean login(String username, String password) {Connection conn = null;PreparedStatement ps = null;ResultSet rs = null;try {//1.獲取數據庫連接conn = JDBCUtils.getConn();//2.預編譯sql語句String sql = "select * from t_user where username=? and password=?";ps = conn.prepareStatement(sql);//3.填充占位符ps.setString(1,username);ps.setString(2,password);//4.執行查詢語句rs = ps.executeQuery();//5.如果結果集有對象,則查詢到了,即返回true。若沒查到。則返回falsereturn rs.next();} catch (SQLException e) {e.printStackTrace();} finally {//6.關閉資源JDBCUtils.release(conn,ps,rs);}return false;} }第五步:完成用于跳轉的LoginServlet.java
public class LoginServlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("utf-8");//設置request的字符集response.setContentType("text/html;charset=utf-8");//設置response的字符集//1.獲取從前端頁面中傳過來的username和password值String userName = request.getParameter("username");String passWord = request.getParameter("password");//2.創建dao實現類的對象,調用檢驗登錄的方法login().UserDaoImpl userDao = new UserDaoImpl();//數據庫查到了即返回 true,沒查到即返回 falseboolean isSuccess = userDao.login(userName, passWord);if(isSuccess){//用于相應給客戶,success為true --->登錄成功response.getWriter().write("登錄成功");}else{response.getWriter().write("登錄失敗");}}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request,response);} }第六步. 配置web.xml,這是最關鍵的一步
<servlet><servlet-name>MyServletName</servlet-name><! servlet-name隨意起,和下面的servlet-name對應 !><servlet-class>com.sms.servlet.LoginServlet</servlet-class> </servlet><! 這塊是LoginServlet類的全類名 !><servlet-mapping><servlet-name>MyServletName</servlet-name><! 和上面的servlet-name對應!><url-pattern>/LoginServlet</url-pattern><! jsp表單發送的請求路徑,和jsp里form標簽action屬性值一致 !> </servlet-mapping>最后一步,運行login.jsp,輸入數據庫中有的username和password,登錄成功后頁面會打印出登錄成功
總結
以上是生活随笔為你收集整理的一篇超级详细的jsp+servlet+jdbc+mysql检验登录操作(IntelliJ IDEA)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解决iIntelliJ IDEA导入js
- 下一篇: Java数据库连接池知识汇总(C3P0+