日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【java实训课】web网页相关知识点总结

發布時間:2025/1/21 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【java实训课】web网页相关知识点总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

    • Mysql 基礎操作
    • 操作指令
    • 數據庫實驗
    • DAO 模式
        • DAO 封裝的增刪改查代碼
        • DAO封裝的增改查測試代碼
      • jsp
      • java Web
        • 創建一個新的工程文件
    • IDEA
      • 配置 Web 項目環境
        • 環境 : IDEA+tomcat
        • 在當前的文件過程下配置web
        • 添加tomcat 本地連接
        • 配置web.xml 文件
        • 總結:

Mysql 基礎操作


使用方法:

方式一:

SQL:結構化查詢語言

DDL(定義),DML(操作),DQL(查詢),DCL(控制)

mysql:

操作指令

連接數據庫

// 進入mysql mysql -u root -p// 顯示數據庫 show databases; show tables;//進入某個數據表 use dataname;// 當前數據庫顯示其他數據表 show tables from mysql; 從mysql 顯示mysql// 顯示當前是在哪個數據量 show database(); //插入數據INSRERT INTO (字段名) values (插入數據值); //學習DAO模式 增刪改查web 的學習 怎么封裝jdbc; // 更新表內容 update news_users set uname='jucw' where uname='zcw'; // 刪除 delete from news_users where uname = 'jucw'; delete from 表名 where 字段匹配;
  • 使用where需要查找多個的時候,使用IN來匹配多個

數據庫實驗

import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement;public class jdbc {public static void main(String[] args) {Connection con = null;ResultSet rs = null;try {// 1. 引入驅動String sql = "select * from news_users where usid = 10";Class.forName("com.mysql.cj.jdbc.Driver");// 訪問驅動管理程序con = DriverManager.getConnection("jdbc:mysql://localhost/db_news?useSSL=FALSE&serverTimezone=Asia/Shanghai","root","123456");Statement stmt = con.createStatement();rs = stmt.executeQuery(sql); // 這里返回了第一條記錄數據while(rs.next()) //這里rs 已經是第二條數據,{// 使用游標獲取當前行,每次往下移動//獲取當前行的每一列數據int id = rs.getInt("usid");String uname = rs.getString("uname");String pwd = rs.getString("upwd");System.out.println(id+uname+pwd);}System.out.println("\t連接成功");} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}try{ // 插入數據System.out.println("\t插入數據 ");// 1. 創建執行語句String sql1 = "insert into news_users(uname, upwd) values('zcw', '123456')";// 2. 聲明用于執行數據庫語句Statement stmt = con.createStatement();// statement 來執行數據庫// 3. 將數據執行插入到數據庫stmt.executeUpdate(sql1);System.out.println("\t數據更新成功+'zcw', '123456'!!!");}catch (Exception e){e.printStackTrace();}try{ // 插入數據System.out.println("\t統計數據: ");// 1. 創建執行語句String sql1 = "select COUNT(*) from news_users";// 2. 聲明用于執行數據庫語句Statement stmt = con.createStatement();// statement 來執行數據庫// 3. 將數據執行插入到數據庫rs = stmt.executeQuery(sql1);rs.next();int c = rs.getInt(1);System.out.println("\tcount:"+c);}catch (Exception e){e.printStackTrace();}try{ // 插入數據System.out.println("\t統計數據: ");// 1. 創建執行語句String sql1 = "DELETE FROM news_users where usid = 16";// 2. 聲明用于執行數據庫語句Statement stmt = con.createStatement();// statement 來執行數據庫// 3. 將數據執行插入到數據庫int row = stmt.executeUpdate(sql1);System.out.println("\t刪除了:"+row);System.out.println();}catch (Exception e){e.printStackTrace();}} }

DAO 模式

  • Data Access Object 數據訪問對象,數據訪問層,持久層

  • orm 框架:object relational mapping 對象關系映射

作用: 程序怎么操作數據庫表的記錄, 程序中設計實體模型,看出是數據庫表在程序中的一種體現

orm 映射內容:

  • 數據庫表 ---- java類(entry)實體類
  • 表字段 ---- java 類的屬性
  • 數據類型 ----java數據類型對應
  • 表的一條記錄 ----- java類的某個實體
    • 通用DAO

      打開數據庫的連接

      關閉數據庫的連接

    • DAO的實現

    表 ----- 用戶的實體類

    • preparedStatement :預處理的接口

    • 通過占位符設參數
    • 定義函數

      • 查找用戶

        String sql = "select * from 表名 where usid=?"; //傳進來的參數是id#使用prepareStatement 可以預編譯sql #設置占位符的參數 pre.setInt(1,id) # 這里的占位符跟format 是一樣的,指定的位置是第幾個參數 # 開始執行參數 rs = pre.executeQuery() # 這里不同于Statement 不用傳進來sql使用try catch finally 最終在finally關閉連接
      • 添加用戶

        # 需要傳進來兩個參數 用戶名和密碼 String sql = "Insert into 表名(uname, upwd) value (?,?)" # 在這里占位# 預編譯sql # 設置占位符的值 pre.setString(1, user.getUsername()); #傳進來數據 pre.setString(2, user.getUserpwd()); # 傳進來密碼
      • 修改用戶數據

        # 將所有數據重新寫入一邊 #一行設置
      • 刪除數據

        # 根據指定的id把用戶數據刪除 pre.setInt(1,id); # 將sql 語句的值補充完整

    ?

    • 測試的時候:

      • 添加用戶

      • 創建新的用戶類,設置新的用戶信息,將新的用戶信息傳到添加函數里面去;
      • 刪除用戶

      • 根據指定的id找到指定的用戶

      • 將指定的用戶添加到刪除函數里面,返回刪除的行數

      • 修改用戶數據

      • 根據id查找到指定的用戶
      • 將找到的用戶添加到修改函數里,返回刪除的行數
      • 查找用戶

      • 根據指定的id查找的用戶
      • 提取用戶的字段顯示

    DAO 封裝的增刪改查代碼

    import javax.jws.soap.SOAPBinding; import java.sql.*; import java.util.ArrayList; import java.util.List;public class UserDao extends BaseDao { // 繼承ResultSet rs = null;public List<entry.Users> findAllUsers() throws SQLException {// 查詢所有用戶String sql = "select * from news_users";Connection con = this.getConnection();Statement stamt = null;ResultSet rs = null;List<entry.Users> list = new ArrayList<>();stamt = con.createStatement();rs = stamt.executeQuery(sql);while (rs.next()){entry.Users user = new entry.Users();user.setId(rs.getInt("usid"));user.setUsername(rs.getString("uname"));user.setPassword(rs.getString("upwd"));list.add(user);}return list;}public entry.Users findUsersById(int id) {String sql = "SELECT * FROM news_users WHERE usid=?"; // 傳進來一個id 返回一個用戶Connection con = this.getConnection();PreparedStatement pstmt = null;ResultSet rs = null;entry.Users user = null;try {pstmt = con.prepareStatement(sql); //預編譯sql//設置占位符參數pstmt.setInt(1, id);rs = pstmt.executeQuery();if(rs.next()) { //移動數據庫游標 ,往下移一行//獲取當前行的每一列的數據user = new entry.Users();user.setId(rs.getInt("usid"));user.setUsername(rs.getString("uname"));user.setPassword(rs.getString("upwd"));}} catch (SQLException e) {e.printStackTrace();} finally {this.closeDB(con, pstmt, rs);}return user;}/*** 添加用戶* @param user 用戶對象的載體* @return 返回影響行數*/public int addUser(entry.Users user) { // 返回值是intString sql = "INSERT INTO news_users(uname,upwd) VALUES(?,?)";Connection con = this.getConnection();PreparedStatement pstmt = null;int row = 0;try {pstmt = con.prepareStatement(sql); //預編譯sql 使用占位符//設置占位符參數pstmt.setString(1, user.getUsername()); // 用戶名在第一位pstmt.setString(2, user.getPassword()); // 密碼在第二位row = pstmt.executeUpdate();} catch (SQLException e) {e.printStackTrace();} finally {this.closeDB(con, pstmt, null);}return row;}/*** 修改用戶* @param user 用戶對象的載體* @return 返回影響行數*/public int updateUser(entry.Users user) {String sql = "UPDATE news_users SET uname=?,upwd=? WHERE usid=?";Connection con = this.getConnection();PreparedStatement pstmt = null;int row = 0;try {pstmt = con.prepareStatement(sql); //預編譯sql // 給預編譯占位符設置初始值//設置占位符參數pstmt.setString(1, user.getUsername());pstmt.setString(2, user.getPassword());pstmt.setInt(3, user.getId());row = pstmt.executeUpdate();} catch (SQLException e) {e.printStackTrace();} finally {this.closeDB(con, pstmt, null);}return row;}public int deleteUser(int id) {String sql = "DELETE FROM news_users WHERE usid=?";Connection con = this.getConnection();PreparedStatement pstmt = null;int row = 0;try {pstmt = con.prepareStatement(sql); //預編譯sql//設置占位符參數pstmt.setInt(1, id);row = pstmt.executeUpdate();} catch (SQLException e) {e.printStackTrace();} finally {this.closeDB(con, pstmt, null);}return row;}}

    DAO封裝的增改查測試代碼

    import java.sql.SQLException; import java.util.List;public class testDao {private static int id = 1;private int row = 1;public static void main(String[] args) throws SQLException {UserDao userDao = new UserDao();List<entry.Users> list = userDao.findAllUsers();for (entry.Users users : list){System.out.println(users.getId()+','+users.getUsername()+","+users.getPassword());}// 添加數據 // entry.Users user = new entry.Users(); // user.setUsername("jucw"); // user.setPassword("1323"); // int row = userDao.addUser(user); // System.out.println("\t 第"+row+"行添加數據!!!");// 刪除 // entry.Users user = userDao.findUsersById(id); // int row = userDao.updateUser(user); // System.out.println("\t 成功刪除第"+row+"行數據!!!");// 修改密碼數據 // int id = 3; // entry.Users user = userDao.findUsersById(id); // 查找到用戶的Id // user.setPassword("5201314"); // int row = userDao.updateUser(user); // System.out.println("\t 更新第"+row+"行數據成功");// 查找id // int id = 3; // entry.Users user = userDao.findUsersById(id); // 查找id返回user // System.out.println(user.getUsername()+','+user.getPassword());} }

    jsp

    • jsp 和 servelet 本子是相同的

    • jsp = java server pages

    • 作用:主要是呈現動態內容,也可以接受請求做出響應

    • jsp 頁面元素

      • html 元素
      • java 腳本: 小腳本 表達式
      • jsp 頁面上的標簽技術:jstl ,el表達式
    • jsp運行流程:

      ? jsp 轉義成,java類(servelet)

      ? java 通過jvm編譯成.class 文件

      ? jvm 執行.class 文件 生成html 文件返回給客戶端

    java Web

    • 目標:主要開發動態網頁,交互性,和數據庫進行交互

    servele / jsp 是一對

    • javaweb 運行環境

      • jre javaweb
    • servelet = server + let

      服務器的小程序,是一個Java類運行在服務器上;

      是應用程序和數據庫之間的中間件

    • Web 工程目錄結構

    ?

    • MCV 模式

    • Model 模型
    • View 視圖
    • Controller 控制器
    • 訪問路徑:

      https://localhost:8080/目錄的路徑/文件路徑

      接受請求之后做出響應;

    改為server 接受請求的方法

    請求和響應

    // 設置響應的編碼 response.setContetType("text/html,charset=utf8");//網頁的輸出流 PrintWriter out = response.getWriter(); out.print("這是第一個程序"); out.flush(); out.close();

    創建一個新的工程文件

    • 導包
    • 創建新聞流

    IDEA

    • 數據庫連接
    • [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-9FqxL5W9-1640679132246)(D:\resourse\gui\Mysql\mysql.assets\image-20211228102155741.png)]

    tomat IDEA

    配置 Web 項目環境

    環境 : IDEA+tomcat

    包鏈接:tomacat 8.0.50 and jstl-1.2.jaar 存在阿里云盤大三作業

    在當前的文件過程下配置web

    右鍵項目選擇添加框架;

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-dVHgV65x-1640679132247)(D:\resourse\gui\Mysql\mysql.assets\image-20211228153155618.png)]

    添加網頁項目文件

    添加tomcat 本地連接

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-c9LWqHoz-1640679132248)(D:\resourse\gui\Mysql\mysql.assets\image-20211228153349097.png)]

    在項目結構里面設置依賴環境

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-kJk1nn5j-1640679132248)(D:\resourse\gui\Mysql\mysql.assets\image-20211228153515516.png)]

    設置依賴連接

    配置web.xml 文件

    <?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"version="4.0"><!-- 添加部分 --><display-name>FirstServlet</display-name><!-- FirstServlet類名 --><welcome-file-list><welcome-file>index.jsp</welcome-file> <!-- 歡迎界面,默認 --></welcome-file-list> <!-- <&#45;&#45;! 聲明servlet &ndash;&gt;--><servlet><!-- servlet的別名 --><servlet-name>first</servlet-name> <servlet-class>FirstServlet</servlet-class> <!-- 類名部分 --></servlet><!-- 將Servlet與URL綁定 --><servlet-mapping><servlet-name>first</servlet-name><url-pattern>/hi</url-pattern> <!-- 使用映射類名,瀏覽器訪問使用 --></servlet-mapping> </web-app>

    總結:

    配置web項目的時候將相關依賴進行設置有服務器Tomcat和設置jsp 時候使用的jstl 兩個文件包

    在配置tomcat 的時候需要設置相關訪問設置

    web 項目配置過程中將

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-Ec0hE21B-1640679132249)(D:\resourse\gui\Mysql\mysql.assets\image-20211228160610447.png)]

    web下面可以創建兩個文件夾:

    classes 和 lib

    • classes : 在工程結構中設置Output 路徑
    • lib : 存放需要的包文件
    • 本路徑下的index.jsp 是默認的文件
    • jsp 文件在這個目錄下進行創建,之后需要的時候進行導入;

    總結

    以上是生活随笔為你收集整理的【java实训课】web网页相关知识点总结的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。