Javaee入門篇一之利用JSP+jdbc+MYSQL 部署至伺服器實現簡單的留言功能。

Summershine_發表於2018-04-14

JavaEE入門篇一之利用JSP+jdbc+MYSQL實現簡單的留言功能。

環境:

  1. MYSQL
  2. eclipse
  3. MYSQL連線驅動jar包
    mysql-connector-java-5.1.46(可以在官網下載)
    也可以點這裡

執行模式

這裡寫圖片描述

資料庫建立

這裡寫圖片描述
**一般資料庫不存明文密碼需要用MD5或者hash+字串加密

載入驅動

將jar放入lib目錄下然後右鍵工程名,在java build path中的Libraries分頁中選擇Add JARs…,選擇剛才新增的JDBC,如下圖
這裡寫圖片描述
這裡寫圖片描述

程式碼實現

  1. 在webcotent目錄下建立login.jsp(登入頁),
<!-- 瀏覽器+JSP+JDBC+MYSQL開發一個Javaweb專案; -->
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>簡單留言板</title>
</head>
<body>
<form action="validate.jsp" method="post">
使用者名稱:<input type="text" name="username" size="20" /><br>
密&nbsp;&nbsp;&nbsp;&nbsp;碼:<input type="password" name="password" size="21" /><br>
<input type="submit" value="登入" />
<input type="reset" value="重置" />
</form>
</body>
</html>

validate.jsp(驗證頁)

<!-- 瀏覽器+JSP+JDBC+MYSQL開發一個Javaweb專案; -->
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" import="java.sql.*"%>
<<jsp:useBean id="Mysql" scope="page" class="org.easybook.test.jdbc.MysqlDBConn" />
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<%
 request.setCharacterEncoding("utf-8");
String usr=request.getParameter("username");
String pwd=request.getParameter("password");
boolean validated=false;
String sql="select * from usertable";
ResultSet rs=Mysql.executeQuery(sql);
while(rs.next()){
    if((rs.getString("username").trim().compareTo(usr)==0)&&(rs.getString("password").compareTo(pwd)==0)){

        validated=true;
    }
}
rs.close();
Mysql.closeStmt();
Mysql.closeConn();
if(validated){
%>
<jsp:forward page="main.jsp" />
<% 
}
else{
%>
    <jsp:forward page="error.jsp" />
<% 
}
%>  
</body>
</html>

建立main.jsp(主頁)

<!-- 瀏覽器+JSP+JDBC+MYSQL開發一個Javaweb專案; -->
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>留言板資訊</title>
</head>
<body>
<%out.print(request.getParameter("username"));%>,你好歡迎登陸留言板
</body>
</html>

建立error.jsp(出錯頁)

<!-- 瀏覽器+JSP+JDBC+MYSQL開發一個Javaweb專案; -->
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>出錯</title>
</head>
<body>
登入失敗!單擊<a href="login.jsp">這裡</a>返回
</body>
</html>

在scr目錄下建立包名為org.easybook.test.jdbc檔名為MysqlDBConn.java Java檔案

// 瀏覽器+JSP+JDBC+MYSQL開發一個Javaweb專案;
package org.easybook.test.jdbc;

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




public class MysqlDBConn {
    private java.sql.Statement stmt;//Statment 物件(語句)
    private Connection conn;        //Connection 物件(連線)
    ResultSet rs;                   //ResultSet 物件 (結果集)
    //在構建方法中建立資料庫連線;
    public MysqlDBConn(){
        stmt=null;
        try {
            //載入驅動程式
            Class.forName("com.mysql.jdbc.Driver");
            //1.getConnection()方法,連線MySQL資料庫!!
            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb","root","root");
        }catch (Exception e) {
            // TODO: handle exception
            e.printStackTrace();
        }
        rs=null;

    }
    //執行查詢類的sql語句 有返回集;
    public ResultSet executeQuery(String sql){
        try {
            stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
            rs=stmt.executeQuery(sql);//執行查詢語句
        } catch (SQLException e) {
            // TODO: handle exception
            System.err.println("data.excuteQuery:"+e.getMessage());
        }
        return rs;                  //返回結果集
    }
    //關閉物件
    public void closeStmt(){
        try {
            stmt.close();                   //關閉Statment連線
        } catch (SQLException e) {
            // TODO: handle exception
            System.err.println("data.excuteQuery:"+e.getMessage());
        }

    }
    public void closeConn(){
        try {
            conn.close();                   //關閉資料庫連線
        } catch (SQLException e) {
            // TODO: handle exception
            System.err.println("data.excuteQuery:"+e.getMessage());
        }

    }

}

補充:修改xml檔案部署至伺服器

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>JavaEE</display-name>
  <welcome-file-list>
    <welcome-file>login.jsp</welcome-file>

  </welcome-file-list>
</web-app>

專案最終目錄樹

這裡寫圖片描述

執行結果

這裡寫圖片描述

相關文章