<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ## **2.創建utils包,包名為com.baishenghua100.utils** 在該包下創建以下類: ### **2.1 創建圖片驗證碼類** >創建圖片驗證碼類,首先這個類是一個servlet。命名為:CheckCode100.java 參見圖片[驗證碼類](http://cms.yiniuedu.com/javawebstudy/2472193) ![](http://h.yiniuedu.com/30af3b8ad55aa9ed52cbe7361317e41a) ### **2.2創建數據庫連接工具類** >創建數據庫連接工具類DBConnection.java ``` package com.baishenghua300.utils; import java.sql.*; public class DBConnection300 { public static Connection getConn300() { Connection conn = null; try { Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection("jdbc:mysql://localhost/wms200?user=root&password=123456&useUnicode=true&characterEncoding=UTF-8"); } catch (ClassNotFoundException e) { e.printStackTrace(); }catch (SQLException e) { e.printStackTrace(); } return conn; } public static void main(String[] args) { getConn300(); } public static void close(Connection con,Statement stmt, PreparedStatement pstmt,ResultSet rs){ try { if(con != null){ con.close(); } } catch (SQLException e) { e.printStackTrace(); } try { if(stmt != null){ stmt.close(); } } catch (SQLException e) { e.printStackTrace(); } try { if(pstmt != null){ pstmt.close(); } } catch (SQLException e) { e.printStackTrace(); } try { if(rs != null){ rs.close(); } } catch (SQLException e) { e.printStackTrace(); } } } ``` ## **3.創建dao包,包名為:com.baishenghua100.dao** 在該包下創建以下類: ### **3.1創建導航菜單數據處理接口** >創建IMenuDao100接口,里面定義增刪改查和一些復雜查詢方法 查詢所有菜單 根據條件查詢部分菜單 查詢指定的某個菜單 更新菜單 添加菜單 刪除菜單 ![](http://h.yiniuedu.com/10fdc43cb49f62ae4259eab95cc6c686) ``` package com.baishenghua100.dao; import java.util.List; import com.baishenghua100.pojo.Menu100; /** * IMenuDao100.java(導航菜單數據處理接口) * @desc 主要定義一些方法:查詢所有導航菜單、條件查詢菜單、根據序號查詢導航菜單以及添加、修改和刪除菜單。 * @author 柏圣華 * @date 2021-10-21 * */ public interface IMenuDao100 { public List<Menu100> queryAll100();//查詢所有導航菜單 public List<Menu100> queryByCond100(String condition100);//條件查詢導航菜單 public Menu100 query100(Menu100 menu100);//根據序號查詢導航菜單 public Menu100 add100(Menu100 menu100);//添加導航菜單 public Menu100 update100(Menu100 menu100);//修改導航菜單 public Menu100 delete100(Menu100 menu100);//刪除導航菜單 } ``` ### **3.2創建公司信息數據處理接口** >創建ICompanyInfomationDao300接口,里面定義增刪改查和一些復雜查詢方法主要定義一些方法 查詢所有公司信息 條件查詢公司信息 序號查詢公司信息 添加公司信息 修改公司信息 刪除公司信息。 ``` package com.baishenghua300.dao; import java.util.List; import com.baishenghua300.pojo.CompanyInfomation300; /** * ICompanyInfomationDao300.java(公司信息數據處理接口) * @desc 主要定義一些方法:查詢所有公司信息、條件查詢公司信息、序號查詢以及添加、修改和刪除公司信息。 * @author 柏圣華 * @date 2021-11-22 * */ public interface ICompanyInfomationDao300 { public List<CompanyInfomation300> queryAll300();//查詢所有公司信息 public List<CompanyInfomation300> queryByCond300(String condition300);//條件查詢公司信息 public CompanyInfomation300 query300(CompanyInfomation300 ci300);//根據序號查詢公司信息 public int add300(CompanyInfomation300 ci300);//添加公司信息 public int update300(CompanyInfomation300 ci300);//修改公司信息 public int delete300(CompanyInfomation300 ci300);//刪除公司信息 } ``` ### **3.3創建用戶信息數據處理接口** >創建 IUserDao300接口,里面定義增刪改查和一些復雜查詢方法主要定義一些方法 ``` package com.baishenghua300.dao; import java.util.List; import java.util.Map; import com.baishenghua300.pojo.User300; /** * IUserDao300.java(用戶數據處理接口) * * @desc 主要定義一些方法:查詢所有、條件查詢、序號查詢以及添加、修改和刪除等方法。 * @author 柏圣華 * @date 2021-11-26 * */ public interface IUserDao300 { public List<User300> findAll();// 查詢所有 User300 findUserByUsernameAndPassword(String username, String password);//用戶登錄驗證 void add(User300 user);//添加方法 void delete(int id);//刪除方法 User300 findById(int i);//根據序號查詢方法 void update(User300 user);//更新方法 /** * 查詢總記錄數 * * @return * @param condition */ int findTotalCount(Map<String, String[]> condition); /** * 分頁查詢每頁記錄 * * @param start * @param rows * @param condition * @return */ List<User300> findByPage(int start, int rows, Map<String, String[]> condition); } ``` ## **4.創建dao的實現包impl,包名為:com.baishenghua100.dao.impl** 在該包下創建以下類: ### **4.1導航菜單數據處理具體實現類** >創建IMenuDao100接口的實現類MenuDaoImpl100類,并實現接口里面的所有方法 ![](http://h.yiniuedu.com/86e741a1a281164375e3a8e1d1cc799b) ``` package com.baishenghua300.dao.impl; import java.util.ArrayList; import java.util.List; import java.sql.*; import com.baishenghua300.dao.IMenuDao300; import com.baishenghua300.pojo.Menu300; import com.baishenghua300.utils.DBConnection300; /** * MenuDaoImpl300.java(導航菜單數據處理具體實現類) * @desc 主要實現接口里面的增刪改查的方法(查詢所有導航菜單、條件查詢菜單、根據序號查詢菜單以及添加、修改和刪除菜單)。 * @author 柏圣華 * @date 2021-10-21 * */ public class MenuDaoImpl300 implements IMenuDao300 { @Override public List<Menu300> queryAll300() {//查詢所有導航菜單信息的方法 List<Menu300> menusList = new ArrayList<Menu300>();//創建導航菜單的集合對象 Connection con = DBConnection300.getConn300();//獲取數據庫連接 PreparedStatement pstmt = null;//聲明一個預處理變量 ResultSet rs = null;//聲明一個結果集變量 String sql = "select id,menuName,menuURl,menuNo from t_menu";//查詢所有菜單信息的sql語句 try { pstmt = con.prepareStatement(sql);//給預處理變量賦值,同時把sql語句傳入預處理對象進行處理 rs = pstmt.executeQuery();//執行查詢操作,并且把查詢出來的所有結果保存到結果集rs里面 while (rs.next()) {//從結果集rs里面進行遍歷(迭代)出數據, //從結果集中獲取數據,然后構造一個菜單對象 Menu300 menu = new Menu300(rs.getInt(1), rs.getString(2), rs.getString(3),rs.getString(4)); System.out.println(menu.toString());//打印輸出遍歷的菜單menu對象 menusList.add(menu);//將菜單menu對象加入到菜單的集合對象mensList } } catch (SQLException e) { e.printStackTrace(); } finally { DBConnection300.close(con, null, pstmt, rs); } return menusList; } /** * 2.根據條件查詢菜單信息 * @param condition300 (導航菜單的名稱menuName) * @return 滿足條件的導航菜單集合menusList */ @Override public List<Menu300> queryByCond300(String condition300) { List<Menu300> menusList = new ArrayList<Menu300>(); Connection con = DBConnection300.getConn300(); PreparedStatement pstmt = null; ResultSet rs = null; //采用的是模糊查詢like String sql = "select id,menuName,menuURl,menuNo from t_menu where menuName like ?"; try { pstmt = con.prepareStatement(sql); //條件condition300就是導航菜單的名稱,獲取菜單的名稱關鍵字,傳給sql pstmt.setString(1, "%"+condition300+"%"); rs = pstmt.executeQuery();//執行查詢方法 while (rs.next()) { Menu300 menu = new Menu300(rs.getInt(1), rs.getString(2), rs.getString(3),rs.getString(4)); System.out.println(menu.toString()); menusList.add(menu); } } catch (SQLException e) { e.printStackTrace(); } finally { DBConnection300.close(con, null, pstmt, rs); } return menusList; } /** * 3.精確查詢導航菜單信息的方法(根據id查詢) * @param menu300(傳入參數,傳入一個菜單,菜單的id屬性要有值) * @return 返回從數據庫表中查詢出來的菜單信息menu */ @Override public Menu300 query300(Menu300 menu300) { Menu300 menu = null; Connection con = DBConnection300.getConn300(); PreparedStatement pstmt = null; ResultSet rs = null; String sql = "select id,menuName,menuURl,menuNo from t_menu where id = ?";//根據id查詢 try { pstmt = con.prepareStatement(sql); pstmt.setInt(1, menu300.getId300());// 調用menu300的getId300()方法,獲取菜單的編號,傳給sql rs = pstmt.executeQuery();// 執行查詢方法 while (rs.next()) { menu = new Menu300(rs.getInt(1), rs.getString(2), rs.getString(3),rs.getString(4)); System.out.println(menu); } } catch (SQLException e) { e.printStackTrace(); } finally { DBConnection300.close(con, null, pstmt, rs); } return menu; } /** * 4.添加導航菜單信息的方法 * @param menu300(傳入參數,傳入一個菜單對象) * @return flag代表執行操作結果,0代表執行失敗,1代表執行成功。 */ @Override public int add300(Menu300 menu300) { Connection con = DBConnection300.getConn300(); PreparedStatement pstmt = null; String sql = "INSERT INTO t_menu (menuName,menuURl,menuNo) VALUES (?,?,?)"; int flag = 0;//flag代表執行操作結果,0代表執行失敗,1代表執行成功。 try { pstmt = con.prepareStatement(sql); pstmt.setString(1, menu300.getMenuName300()); pstmt.setString(2, menu300.getMenuURL300()); pstmt.setString(3, menu300.getMenuNo300()); flag = pstmt.executeUpdate();// 執行添加操作 } catch (SQLException e) { e.printStackTrace(); } finally { DBConnection300.close(con, null, pstmt, null); } return flag; } /** * 5.更新導航菜單信息的方法 * @param menu300(傳入參數,傳入一個菜單對象) * @return flag代表執行操作結果,0代表執行失敗,1代表執行成功。 */ @Override public int update300(Menu300 menu300) { Connection con = DBConnection300.getConn300(); PreparedStatement pstmt = null; String sql = "UPDATE t_menu SET menuName = ?, menuURl = ?, menuNo = ? where id= ?"; int flag = 0;//flag代表執行操作結果,0代表執行失敗,1代表執行成功。 try { pstmt = con.prepareStatement(sql); pstmt.setString(1, menu300.getMenuName300()); pstmt.setString(2, menu300.getMenuURL300()); pstmt.setString(3, menu300.getMenuNo300()); pstmt.setInt(4, menu300.getId300()); flag = pstmt.executeUpdate();// 執行更新操作 } catch (SQLException e) { e.printStackTrace(); } finally { DBConnection300.close(con, null, pstmt, null); } return flag; } /** * 6.刪除導航菜單信息的方法 * @param menu300(傳入參數,傳入一個菜單對象) * @return flag代表執行操作結果,0代表執行失敗,1代表執行成功。 */ @Override public int delete300(Menu300 menu300) { int i = 0; Connection con = DBConnection300.getConn300(); PreparedStatement pstmt = null; String sql = "DELETE FROM t_menu WHERE id = ?"; try { pstmt = con.prepareStatement(sql); pstmt.setInt(1, menu300.getId300()); i = pstmt.executeUpdate();// 執行刪除操作 } catch (SQLException e) { e.printStackTrace(); } finally { DBConnection300.close(con, null, pstmt, null); } return i; } } ``` ### **4.2公司信息數據處理具體實現類** >創建ICompanyInfomationDao300 接口的實現類CompanyInfomationDaoImpl300 類,并實現接口里面的所有方法 ``` package com.baishenghua300.dao.impl; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import com.baishenghua300.dao.ICompanyInfomationDao300; import com.baishenghua300.pojo.CompanyInfomation300; import com.baishenghua300.utils.DBConnection300; /** * CompanyInfomationDaoImpl300.java(公司信息數據處理具體實現類) * @desc 主要實現接口里面的增刪改查的方法(查詢所有公司信息、條件查詢、根據序號查詢以及添加、修改和刪除菜單)。 * @author 柏圣華 * @date 2021-11-22 * */ public class CompanyInfomationDaoImpl300 implements ICompanyInfomationDao300 { /** * 1.添加公司信息的方法 * @param ci300(傳入參數,傳入一個公司信息對象) * @return flag代表執行操作結果,0代表執行失敗,1代表執行成功。 */ @Override public int add300(CompanyInfomation300 ci300) { Connection con = DBConnection300.getConn300(); PreparedStatement pstmt = null; String sql = "INSERT INTO t_companyinfo300 (ciTitle300,ciImage300,ciContent300,ciEditDate300,ciNo300) VALUES (?,?,?,?,?)"; int flag = 0;//flag代表執行操作結果,0代表執行失敗,1代表執行成功。 try { pstmt = con.prepareStatement(sql); pstmt.setString(1, ci300.getCiTitle300()); pstmt.setString(2, ci300.getCiImage300()); pstmt.setString(3, ci300.getCiContent300()); pstmt.setString(4, ci300.getCiEditDate300()); pstmt.setInt(5, ci300.getCiNo300()); flag = pstmt.executeUpdate();// 執行添加操作 } catch (SQLException e) { e.printStackTrace(); } finally { DBConnection300.close(con, null, pstmt, null); } return flag; } /** * 2.查詢所有公司信息的方法 * @return ciList代表執行查詢后,獲得的所有操作結果的集合 */ @Override public List<CompanyInfomation300> queryAll300() { // 查詢所有信息的方法 List<CompanyInfomation300> ciList = new ArrayList<CompanyInfomation300>();// 創建集合對象 Connection con = DBConnection300.getConn300();// 獲取數據庫連接 PreparedStatement pstmt = null;// 聲明一個預處理變量 ResultSet rs = null;// 聲明一個結果集變量 String sql = "select ciId300,ciTitle300,ciImage300,ciContent300,ciEditDate300,ciNo300 from t_companyinfo300";// 查詢所有的sql語句 try { pstmt = con.prepareStatement(sql);// 給預處理變量賦值,同時把sql語句傳入預處理對象進行處理 rs = pstmt.executeQuery();// 執行查詢操作,并且把查詢出來的所有結果保存到結果集rs里面 while (rs.next()) {// 從結果集rs里面進行遍歷(迭代)出數據, // 從結果集中獲取數據,然后構造一個菜單對象 CompanyInfomation300 ci300 = new CompanyInfomation300(rs.getInt(1), rs.getString(2), rs.getString(3), rs.getString(4), rs.getString(5), rs.getInt(6)); System.out.println(ci300);// 打印輸出遍歷 ciList.add(ci300); } } catch (SQLException e) { e.printStackTrace(); } finally { DBConnection300.close(con, null, pstmt, rs); } return ciList; } /** * 3.根據標題進行模糊查詢公司信息的方法 * @param condition300(傳入參數,傳入一個公司信息的標題) * @return ciList代表執行模糊查詢后,獲得的所有操作結果的集合 */ @Override public List<CompanyInfomation300> queryByCond300(String condition300) { // 查詢滿足條件的所有信息的方法 List<CompanyInfomation300> ciList = new ArrayList<CompanyInfomation300>();// 創建集合對象 Connection con = DBConnection300.getConn300();// 獲取數據庫連接 PreparedStatement pstmt = null;// 聲明一個預處理變量 ResultSet rs = null;// 聲明一個結果集變量 String sql = "select ciId300,ciTitle300,ciImage300,ciContent300,ciEditDate300,ciNo300 from t_companyinfo300 where ciTitle300 like ?";// 查詢所有的sql語句 try { pstmt = con.prepareStatement(sql);// 給預處理變量賦值,同時把sql語句傳入預處理對象進行處理 pstmt.setString(1, "%"+condition300+"%"); rs = pstmt.executeQuery();// 執行查詢操作,并且把查詢出來的所有結果保存到結果集rs里面 while (rs.next()) {// 從結果集rs里面進行遍歷(迭代)出數據, // 從結果集中獲取數據,然后構造一個菜單對象 CompanyInfomation300 ci300 = new CompanyInfomation300(rs.getInt(1), rs.getString(2), rs.getString(3), rs.getString(4), rs.getString(5), rs.getInt(6)); System.out.println(ci300);// 打印輸出遍歷 ciList.add(ci300); } } catch (SQLException e) { e.printStackTrace(); } finally { DBConnection300.close(con, null, pstmt, rs); } return ciList; } /** * 4.根據編號進行精準查詢公司信息的方法 * @param ci300(傳入參數,傳入一個公司信息) * @return cif300代表執行精準查詢后,獲得的公司信息對象 */ @Override public CompanyInfomation300 query300(CompanyInfomation300 ci300) { // 查詢所有信息的方法 CompanyInfomation300 cif300 = null; Connection con = DBConnection300.getConn300();// 獲取數據庫連接 PreparedStatement pstmt = null;// 聲明一個預處理變量 ResultSet rs = null;// 聲明一個結果集變量 String sql = "select ciId300,ciTitle300,ciImage300,ciContent300,ciEditDate300,ciNo300 from t_companyinfo300 where ciId300 = ?";// 查詢所有的sql語句 try { pstmt = con.prepareStatement(sql);// 給預處理變量賦值,同時把sql語句傳入預處理對象進行處理 pstmt.setInt(1, ci300.getCiId300()); rs = pstmt.executeQuery();// 執行查詢操作,并且把查詢出來的所有結果保存到結果集rs里面 while (rs.next()) {// 從結果集rs里面進行遍歷(迭代)出數據, // 從結果集中獲取數據,然后構造一個菜單對象 cif300 = new CompanyInfomation300(rs.getInt(1), rs.getString(2), rs.getString(3), rs.getString(4), rs.getString(5), rs.getInt(6)); System.out.println("ci300="+cif300);// 打印輸出遍歷 } } catch (SQLException e) { e.printStackTrace(); } finally { DBConnection300.close(con, null, pstmt, rs); } return cif300; } /** * 5.根據編號更新公司信息的方法 * @param ci300(傳入參數,傳入一個公司信息) * @return flag代表執行更新操作結果,0代表執行失敗,1代表執行成功。 */ @Override public int update300(CompanyInfomation300 ci300) { Connection con = DBConnection300.getConn300(); PreparedStatement pstmt = null; String sql = "UPDATE t_companyinfo300 SET ciTitle300 = ?, ciImage300 = ?, ciContent300 = ? ,ciEditDate300 = ?,ciNo300=? where ciId300= ?"; int flag = 0;//flag代表執行操作結果,0代表執行失敗,1代表執行成功。 try { pstmt = con.prepareStatement(sql); pstmt.setString(1, ci300.getCiTitle300()); pstmt.setString(2, ci300.getCiImage300()); pstmt.setString(3, ci300.getCiContent300()); pstmt.setString(4, ci300.getCiEditDate300()); pstmt.setInt(5,ci300.getCiNo300()); pstmt.setInt(6,ci300.getCiId300()); flag = pstmt.executeUpdate();// 執行更新操作 } catch (SQLException e) { e.printStackTrace(); } finally { DBConnection300.close(con, null, pstmt, null); } return flag; } /** * 6.根據編號刪除公司信息的方法 * @param ci300(傳入參數,傳入一個公司信息) * @return flag代表執行刪除操作結果,0代表執行失敗,1代表執行成功。 */ @Override public int delete300(CompanyInfomation300 ci300) { int i = 0; Connection con = DBConnection300.getConn300(); PreparedStatement pstmt = null; String sql = "DELETE FROM t_companyinfo300 WHERE ciId300 = ?"; try { pstmt = con.prepareStatement(sql); pstmt.setInt(1, ci300.getCiId300()); i = pstmt.executeUpdate();// 執行刪除操作 } catch (SQLException e) { e.printStackTrace(); } finally { DBConnection300.close(con, null, pstmt, null); } return i; } } ``` ### **4.3用戶信息數據處理具體實現類** >創建IUserDao300接口的實現類UserDaoImpl300類,并實現接口里面的所有方法 ``` package com.baishenghua300.dao.impl; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import java.util.Map; import com.baishenghua300.dao.IUserDao300; import com.baishenghua300.pojo.Menu300; import com.baishenghua300.pojo.User300; import com.baishenghua300.utils.DBConnection300; /** * UserDaoImpl300.java(用戶數據處理具體實現類) * @desc 主要實現接口里面的增刪改查的方法(查詢所有、條件查詢、根據序號查詢以及添加、修改和刪除)。 * @author 柏圣華 * @date 2021-11-26 * */ public class UserDaoImpl300 implements IUserDao300 { @Override public List<User300> findAll() {// 查詢所有信息的方法 List<User300> uList = new ArrayList<User300>();// 創建集合對象 Connection con = DBConnection300.getConn300();// 獲取數據庫連接 PreparedStatement pstmt = null;// 聲明一個預處理變量 ResultSet rs = null;// 聲明一個結果集變量 String sql = "select * from user";// 查詢所有信息的sql語句 try { pstmt = con.prepareStatement(sql);// 給預處理變量賦值,同時把sql語句傳入預處理對象進行處理 rs = pstmt.executeQuery();// 執行查詢操作,并且把查詢出來的所有結果保存到結果集rs里面 while (rs.next()) {// 從結果集rs里面進行遍歷(迭代)出數據, // 從結果集中獲取數據,然后構造一個菜單對象 User300 menu = new User300(rs.getInt(1), rs.getString(2), rs.getString(3), rs.getInt(4), rs.getString(5),rs.getString(6),rs.getString(7),rs.getString(8),rs.getString(9)); System.out.println(menu.toString());// 打印輸出遍歷的對象 uList.add(menu);// 將對象加入到集合對象uList } } catch (SQLException e) { e.printStackTrace(); } finally { DBConnection300.close(con, null, pstmt, rs); } return uList; } @Override public User300 findUserByUsernameAndPassword(String username, String password) {//根據賬號和密碼進行查詢的方法 User300 u = null; Connection con = DBConnection300.getConn300(); PreparedStatement pstmt = null; ResultSet rs = null; String sql = "select * from user where username = ? and password = ?"; try { pstmt = con.prepareStatement(sql); pstmt.setString(1, username); pstmt.setString(2, password); rs = pstmt.executeQuery();// 執行查詢方法 while (rs.next()) { u = new User300(rs.getInt(1), rs.getString(2), rs.getString(3), rs.getInt(4), rs.getString(5), rs.getString(6), rs.getString(7), rs.getString(8), rs.getString(9)); System.out.println(u); } } catch (SQLException e) { e.printStackTrace(); } finally { DBConnection300.close(con, null, pstmt, rs); } return u; } @Override public void add(User300 user) {//添加方法 Connection con = DBConnection300.getConn300(); PreparedStatement pstmt = null; String sql = "insert into user values(null,?,?,?,?,?,?,null,null)"; try { pstmt = con.prepareStatement(sql); pstmt.setString(1, user.getName300()); pstmt.setString(2, user.getGender300()); pstmt.setInt(3, user.getAge300()); pstmt.setString(4, user.getAddress300()); pstmt.setString(5, user.getQq300()); pstmt.setString(6, user.getEmail300()); pstmt.executeUpdate();// 執行添加操作 } catch (SQLException e) { e.printStackTrace(); } finally { DBConnection300.close(con, null, pstmt, null); } } @Override public void delete(int id) {//刪除方法 Connection con = DBConnection300.getConn300(); PreparedStatement pstmt = null; String sql = "delete from user where id = ?"; try { pstmt = con.prepareStatement(sql); pstmt.setInt(1, id); pstmt.executeUpdate();// 執行刪除操作 } catch (SQLException e) { e.printStackTrace(); } finally { DBConnection300.close(con, null, pstmt, null); } } @Override public User300 findById(int id) { // 根據id進行查詢的方法 User300 u = null; Connection con = DBConnection300.getConn300(); PreparedStatement pstmt = null; ResultSet rs = null; String sql = "select * from user where id = ?"; try { pstmt = con.prepareStatement(sql); pstmt.setInt(1, id); rs = pstmt.executeQuery();// 執行查詢方法 while (rs.next()) { u = new User300(rs.getInt(1), rs.getString(2), rs.getString(3), rs.getInt(4), rs.getString(5), rs.getString(6), rs.getString(7), rs.getString(8), rs.getString(9)); System.out.println(u); } } catch (SQLException e) { e.printStackTrace(); } finally { DBConnection300.close(con, null, pstmt, rs); } return u; } @Override public void update(User300 user) { Connection con = DBConnection300.getConn300(); PreparedStatement pstmt = null; String sql = "update user set name = ?,gender = ? ,age = ? , address = ? , qq = ?, email = ? where id = ?"; try { pstmt = con.prepareStatement(sql); pstmt.setString(1, user.getName300()); pstmt.setString(2, user.getGender300()); pstmt.setInt(3, user.getAge300()); pstmt.setString(4, user.getAddress300()); pstmt.setString(5, user.getQq300()); pstmt.setString(6, user.getEmail300()); pstmt.setInt(7, user.getId300()); System.out.println("update-user-"+user); int flag = pstmt.executeUpdate();// 執行更新操作 System.out.println("update-user-flag"+flag); } catch (SQLException e) { e.printStackTrace(); } finally { DBConnection300.close(con, null, pstmt, null); } } @Override public int findTotalCount(Map<String, String[]> condition) { return 0;//先不實現 } @Override public List<User300> findByPage(int start, int rows, Map<String, String[]> condition) { return null;//先不實現 } } ``` ## **5.創建controller包,包名為:com.baishenghua100.controller** 在該包下創建以下類: ### **5.1創建菜單信息控制類** >創建MenuServlet100 ![](http://h.yiniuedu.com/deec7108152ac5a68a0a487716f7611f) ``` package com.baishenghua300.controller; import java.io.IOException; import java.util.List; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.baishenghua300.pojo.Menu300; import com.baishenghua300.services.IMenuService300; import com.baishenghua300.services.impl.MenuServiceImpl300; /** * MenuServlet300.java(導航菜單控制器類) * @desc 主要控制導航菜單模型數據和視圖展示 * @author 柏圣華 * @date 2021-10-21 * */ @WebServlet("/MenuServlet300") public class MenuServlet300 extends HttpServlet { private static final long serialVersionUID = 1L; IMenuService300 ims300 = new MenuServiceImpl300(); protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String method = request.getParameter("method"); //method的取值有editMenu、deleteMenu、addMenu、updateMenu、queryAllMenu Menu300 menu300 = new Menu300(); System.out.println("當前操作:"+method+" MenuServlet300"+"——執行"); if("addMenu".equalsIgnoreCase(method)) {//添加導航菜單信息操作 String menuNo300 = request.getParameter("menuNo300");//獲取AddMenu.jsp界面菜單序號的輸入框的值 String menuName300 = request.getParameter("menuName300");//獲取AddMenu.jsp界面菜單名稱的輸入框的值 String menuURL300 = request.getParameter("menuURL300");//獲取AddMenu.jsp界面菜單地址的輸入框的值 menu300.setMenuNo300(menuNo300);//給menu300的屬性MenuNo300設置值(menuNo300變量保存的值) menu300.setMenuName300(menuName300);//給menu300的屬性MenuName300設置值(menuName300變量保存的值) menu300.setMenuURL300(menuURL300);//給menu300的屬性MenuURL300設置值(menuURL300變量保存的值) System.out.println("當前操作:"+method+" MenuServlet300"+"if分支addMenu"+menu300+"——執行"); //調用服務層接口實現類的添加方法,把AddMenu.jsp界面獲取的數據添加到數據庫表中 int flag = ims300.add300(menu300); System.out.println("當前操作:"+method+" MenuServlet300"+"if分支addMenu"+menu300+"——執行ims300.add300()之后"+flag); //添加完成數據之后,直接跳轉到查詢所有的界面,數據量少可以之跳轉,數據量多就要分頁 queryAll(request,response); }else if("editMenu".equalsIgnoreCase(method)) {//編輯導航菜單信息操作 String id300 = request.getParameter("id300");//獲取main.jsp界面菜單編號的值 System.out.println("當前操作:"+method+" MenuServlet300"+"if分支editMenu"+id300+"——執行"); //Integer.parseInt(id300)使用Integer類的parseInt()方法,把id300字符串形式的值,轉化為int類型 menu300.setId300(Integer.parseInt(id300)); menu300 = ims300.query300(menu300);//根據點擊main.jsp頁面的編輯獲取菜單的編號,去數據庫表中查詢這個菜單信息 System.out.println("當前操作:"+method+" MenuServlet300"+"if分支editMenu"+menu300+"——執行ims300.query300()之后"); request.setAttribute("menu", menu300);//把數據庫表中的menu信息放到request的menu屬性里面 request.getRequestDispatcher("EditMenu.jsp").forward(request, response);// 轉發到EditMenu.jsp頁面上去 }else if("deleteMenu".equalsIgnoreCase(method)) {//刪除導航菜單信息操作 String id300 = request.getParameter("id300");//獲取main.jsp界面菜單編號的值 System.out.println("當前操作:"+method+" MenuServlet300"+"if分支deleteMenu"+id300+"——執行"); menu300.setId300(Integer.parseInt(id300)); int flag = ims300.delete300(menu300);//調用服務層接口實現類的刪除方法,刪除菜單menu300 System.out.println("當前操作:"+method+" MenuServlet300"+"if分支deleteMenu"+menu300+"——執行ims300.delete300()之后"+flag); queryAll(request,response); }else if("updateMenu".equalsIgnoreCase(method)) {//編輯導航菜單信息操作 String id300 = request.getParameter("id300");//獲取EditMenu.jsp界面菜單編號的值 System.out.println("當前操作:"+method+" MenuServlet300"+"if分支updateMenu"+id300+"——執行"); menu300.setId300(Integer.parseInt(id300)); String menuNo300 = request.getParameter("menuNo300");//獲取EditMenu.jsp界面菜單序號的輸入框的值 String menuName300 = request.getParameter("menuName300");//獲取EditMenu.jsp界面菜單名稱的輸入框的值 String menuURL300 = request.getParameter("menuURL300");//獲取EditMenu.jsp界面菜單地址的輸入框的值 menu300.setMenuNo300(menuNo300);//給menu300的屬性MenuNo300設置值(menuNo300變量保存的值) menu300.setMenuName300(menuName300);//給menu300的屬性MenuName300設置值(menuName300變量保存的值) menu300.setMenuURL300(menuURL300);//給menu300的屬性MenuURL300設置值(menuURL300變量保存的值) System.out.println("當前操作:"+method+" MenuServlet300"+"if分支updateMenu"+menu300+"——執行"); int flag = ims300.update300(menu300);//調用服務層接口實現類的更新方法,更新菜單menu300 System.out.println("當前操作:"+method+" MenuServlet300"+"if分支deleteMenu"+menu300+"——執行ims300.updateMenu()之后"+flag); queryAll(request,response); }else if("queryAllMenu".equalsIgnoreCase(method)) {//查詢所有導航菜單信息操作 queryAll(request,response); }else {//查詢所有導航菜單信息操作 queryAll(request,response); } } /** * 查詢所有導航菜單信息的方法 * @param request 請求 * @param response 響應 * @throws ServletException Servlet異常 * @throws IOException IO異常 */ protected void queryAll(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { List<Menu300> menusList = ims300.queryAll300();// 調用服務層接口實現類的查詢所有方法 request.setAttribute("menus", menusList);// 把查詢出來的導航菜單數據集合放到request里面 request.getRequestDispatcher("main.jsp").forward(request, response);// 轉發到main.jsp頁面上去 } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } } ``` ### **5.2創建公司信息訪問控制類** >創建CompanyInfomationController300.java,代碼如下 ``` package com.baishenghua300.controller; import java.io.IOException; import java.util.List; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.baishenghua300.pojo.CompanyInfomation300; import com.baishenghua300.pojo.Menu300; import com.baishenghua300.services.ICompanyInfomationService300; import com.baishenghua300.services.impl.CompanyInfomationServiceImpl300; /** * CompanyInfomationController300.java(公司信息控制器類) * @desc 主要控制公司信息模型數據和視圖展示 * @author 柏圣華 * @date 2021-11-22 * */ @WebServlet("/companyInfoController300") public class CompanyInfomationController300 extends HttpServlet { private static final long serialVersionUID = 1L; ICompanyInfomationService300 cis300 = new CompanyInfomationServiceImpl300(); protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String method = request.getParameter("method"); //method的取值有editCompanyInfo、deleteCompanyInfo、addCompanyInfo、updateCompanyInfo、queryByCon CompanyInfomation300 ci300 = new CompanyInfomation300(); System.out.println("當前操作的是CompanyInfomationController300,執行"+method+" "+"————"); if("addCompanyInfo".equalsIgnoreCase(method)) {//添加導航菜單信息操作 System.out.println("當前操作的是CompanyInfomationController300,執行"+method+"if"+"———— "); ci300.setCiNo300(Integer.parseInt(request.getParameter("ciNo300"))); ci300.setCiTitle300(request.getParameter("ciTitle300")); ci300.setCiImage300(request.getParameter("ciImage300")); ci300.setCiContent300(request.getParameter("ciContent300")); ci300.setCiEditDate300(request.getParameter("ciEditDate300")); System.out.println("當前操作的是CompanyInfomationController300,執行"+method+"if"+" ci300 "+ci300); int flag = cis300.add300(ci300); System.out.println("當前操作的是CompanyInfomationController300,執行"+method+"if"+" ci300 " +ci300+"——執行cis300.add300方法之后 flag="+flag); queryAll(request,response);//查詢所有 }else if("editCompanyInfo".equalsIgnoreCase(method)){ String ciId300 = request.getParameter("ciId300"); System.out.println("當前操作的是CompanyInfomationController300,執行"+method+"if"+"—ciId300="+ciId300); ci300.setCiId300(Integer.parseInt(ciId300)); ci300 = cis300.query300(ci300); System.out.println("當前操作的是CompanyInfomationController300,執行"+method+"if query300()方法"+"—ci300="+ci300); request.setAttribute("ci300", ci300); request.getRequestDispatcher("/WEB-INF/companyinfomanager/EditCompanyInfo300.jsp").forward(request, response);// 轉發到EditMenu.jsp頁面上去 }else if("updateCompanyInfo".equalsIgnoreCase(method)){ String ciId300 = request.getParameter("ciId300"); ci300.setCiId300(Integer.parseInt(ciId300)); ci300.setCiNo300(Integer.parseInt(request.getParameter("ciNo300"))); ci300.setCiTitle300(request.getParameter("ciTitle300")); ci300.setCiImage300(request.getParameter("ciImage300")); ci300.setCiContent300(request.getParameter("ciContent300")); ci300.setCiEditDate300(request.getParameter("ciEditDate300")); System.out.println("當前操作的是CompanyInfomationController300,執行"+method+"if"+" ci300 "+ci300); int flag = cis300.update300(ci300); System.out.println("當前操作的是CompanyInfomationController300,執行"+method+"if"+" ci300 " +ci300+"——執行cis300.update300方法之后 flag="+flag); queryAll(request,response);//查詢所有 }else if("deleteCompanyInfo".equalsIgnoreCase(method)){ String ciId300 = request.getParameter("ciId300"); ci300.setCiId300(Integer.parseInt(ciId300)); System.out.println("當前操作的是CompanyInfomationController300,執行"+method+"if"+"—ciId300="+ciId300); int flag = cis300.delete300(ci300); System.out.println("當前操作的是CompanyInfomationController300,執行"+method+"if"+" ci300 " +ci300+"——執行cis300.delete300方法之后 flag="+flag); queryAll(request,response);//查詢所有 }else if("queryByCon".equalsIgnoreCase(method)){ }else { queryAll(request,response);//查詢所有 } } protected void queryAll(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { List<CompanyInfomation300> ciList = cis300.queryAll300();// 調用服務層接口實現類的查詢所有方法 request.getSession().setAttribute("ciList", ciList);// 把查詢出來的導航菜單數據集合放到request里面 request.getRequestDispatcher("/WEB-INF/companyinfomanager/CompanyInfoMain300.jsp").forward(request, response);// 轉發到main.jsp頁面上去 } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } } ``` ### **5.3創建前端界面信息訪問控制類** >創建IndexServlet,代碼如下 ``` package com.baishenghua300.controller; import java.io.IOException; import java.util.List; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.baishenghua300.dao.IMenuDao300; import com.baishenghua300.dao.impl.MenuDaoImpl300; import com.baishenghua300.pojo.CompanyInfomation300; import com.baishenghua300.pojo.Menu300; import com.baishenghua300.services.ICompanyInfomationService300; import com.baishenghua300.services.IMenuService300; import com.baishenghua300.services.impl.CompanyInfomationServiceImpl300; import com.baishenghua300.services.impl.MenuServiceImpl300; @WebServlet("/IndexServlet") public class IndexServlet extends HttpServlet { private static final long serialVersionUID = 1L; IMenuService300 ims300 = new MenuServiceImpl300(); ICompanyInfomationService300 cis300 = new CompanyInfomationServiceImpl300(); protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { queryAll(request,response);//用于查詢所有導航菜單信息 //查詢合作伙伴 //查詢XXXX //查詢XXXX //作業 //添加過程描述,頁面數據->數據庫表中的 //MenuManager文件 //1.在添加頁面上Addmenu300.jsp,輸入要添加到數據庫的數據 //2.看頁面AddMenu300.jsp的form里面action的值(MenuServlet300),這個數據下一步要去的地方 //3.把頁面上的數據傳輸給Servlet類MenuServlet300,然后具體做什么操作,由action當中method值來決定。 //4.當前action="MenuServlet300?method=addMenu",method值是addMenu,也就添加 //5.就要執行添加if語句,把頁面上的你填充的數據都獲取過來,然后構造菜單對象 //6.聲明服務層接口類型(IMenuService300)引用ims300,創建對應的服務層接口實現類(MenuServiceImpl300)的實例 //通過引用ims300調用添加方法(ims300.add300(menu300)),返回是否添加成功 //6.1創建對應的服務層接口實現類(MenuServiceImpl300)的實例,聲明dao接口類型IMenuDao300 引用imd300, //創建對應的dao接口實現類= new MenuDaoImpl300()的實例, //6.2調用dao接口實現類(MenuServiceImpl300)添加方法,返回是否添加成功 //7.執行完添加之后,會調用查詢所有菜單信息的方法,返回到查詢界面。 //查詢過程描述,請求 ,數據庫表中的數據->頁面 //1.發送查詢所有數據的請求MenuServlet300,或者method=queryAllMenu //2.聲明服務層接口類型(IMenuService300)引用ims300,創建對應的服務層接口實現類(MenuServiceImpl300)的實例 //通過引用ims300調用查詢方法(ims300.queryAll300(menu300)),返回是導航菜單信息集合(List<Menu300>) //2.1創建對應的服務層接口實現類(MenuServiceImpl300)的實例,聲明dao接口類型IMenuDao300 引用imd300, //創建對應的dao接口實現類= new MenuDaoImpl300()的實例, //2.2調用dao接口實現類(MenuServiceImpl300)查詢所有方法,返回是導航菜單信息集合(List<Menu300>) //3.把查詢出來的導航菜單數據集合放到request里面(request.setAttribute("menus", menusList);) //4.把請求轉發到MenuMain300.jsp頁面上去(request.getRequestDispatcher("/WEB-INF/MenuManager/MenuMain300.jsp").forward(request, response);) //5.在MenuMain300.jsp頁面引入核心標簽庫,然后通過forEach循環迭代出數據顯示在頁面上。 //經過哪些頁面,經過了哪些類,順序是什么,大家描述一下,文字描述, } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } /** * 查詢所有信息的方法 * @param request 請求 * @param response 響應 * @throws ServletException Servlet異常 * @throws IOException IO異常 */ protected void queryAll(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { List<Menu300> menusList = ims300.queryAll300();// 調用服務層接口實現類的查詢所有方法 request.getSession().setAttribute("menus", menusList);// 把查詢出來的導航菜單數據集合放到session里面 //request.setAttribute("menus", menusList);// 把查詢出來的導航菜單數據集合放到request里面 List<CompanyInfomation300> ciList = cis300.queryAll300();// 調用服務層接口實現類的查詢所有方法 request.getSession().setAttribute("ciList", ciList);// 把查詢出來的導航菜單數據集合放到request里面 request.getRequestDispatcher("index.jsp").forward(request, response);// 轉發到index.jsp頁面上去 } } ``` ### **5.4創建用戶登錄驗證訪問控制類** >創建LoginServlet300,代碼如下 ``` package com.baishenghua300.controller; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import com.baishenghua300.pojo.User300; import com.baishenghua300.services.IUserService300; import com.baishenghua300.services.impl.UserServiceImpl300; @WebServlet("/LoginServlet300") public class LoginServlet300 extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 2.獲取數據 // 2.1獲取用戶填寫驗證碼 String verifycode = request.getParameter("verifycode"); String username = request.getParameter("username"); String password = request.getParameter("password"); // 3.驗證碼校驗 HttpSession session = request.getSession(); String checkcode_server = (String) session.getAttribute("CHECKCODE_SERVER"); session.removeAttribute("CHECKCODE_SERVER");// 確保驗證碼一次性 System.out.println("checkcode_server-"+checkcode_server+"username"+username+"password"+password+"verifycode"+verifycode); if (!checkcode_server.equalsIgnoreCase(verifycode)) { // 驗證碼不正確 // 提示信息 request.setAttribute("login_msg", "驗證碼錯誤!"); // 跳轉登錄頁面 request.getRequestDispatcher("/Manager/Login.jsp").forward(request, response); return; } // 4.封裝User對象 User300 user = new User300(); user.setUsername300(username); user.setPassword300(password); // 5.調用Service查詢 IUserService300 ius300 = new UserServiceImpl300(); User300 loginUser = ius300.findUserByUsernameAndPassword(username, password); // 6.判斷是否登錄成功 if (loginUser != null) { // 登錄成功 // 將用戶存入session session.setAttribute("user", loginUser); // 跳轉頁面 response.sendRedirect(request.getContextPath() + "/Manager/index300.jsp");//管理后臺主界面 } else { // 登錄失敗 // 提示信息 request.setAttribute("login_msg", "用戶名或密碼錯誤!"); // 跳轉登錄頁面 request.getRequestDispatcher("/Manager/Login.jsp").forward(request, response); } } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } } ``` ### **5.4創建用戶信息管理控制類** >創建UserServlet300,代碼如下 ``` package com.baishenghua300.controller; import java.io.IOException; import java.util.List; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.baishenghua300.pojo.User300; import com.baishenghua300.services.IUserService300; import com.baishenghua300.services.impl.UserServiceImpl300; @WebServlet("/UserServlet300") public class UserServlet300 extends HttpServlet { private static final long serialVersionUID = 1L; IUserService300 ius300 = new UserServiceImpl300(); public UserServlet300() { super(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String method = request.getParameter("method"); //method的取值有editUser、deleteUser、addUser、updateUser、queryAllUser User300 user300 = new User300(); //跳轉到添加頁面addPage if("addUser".equalsIgnoreCase(method)) { user300.setName300(request.getParameter("name")); user300.setGender300(request.getParameter("gender")); user300.setAge300(Integer.parseInt(request.getParameter("age"))); user300.setAddress300(request.getParameter("address")); user300.setQq300(request.getParameter("qq")); user300.setEmail300(request.getParameter("email")); ius300.add(user300); queryAll(request,response); }else if("queryAllUser".equalsIgnoreCase(method)) { queryAll(request,response); }else if("editUser".equalsIgnoreCase(method)) { String id = request.getParameter("id"); user300 = ius300.findById(Integer.parseInt(id)); request.setAttribute("user", user300); request.getRequestDispatcher("/WEB-INF/UserManager/EditUser300.jsp").forward(request, response); }else if("updateUser".equalsIgnoreCase(method)) { String id = request.getParameter("id"); user300.setId300(Integer.parseInt(id)); user300.setName300(request.getParameter("name")); user300.setGender300(request.getParameter("gender")); user300.setAge300(Integer.parseInt(request.getParameter("age"))); user300.setAddress300(request.getParameter("address")); user300.setQq300(request.getParameter("qq")); user300.setEmail300(request.getParameter("email")); ius300.update(user300); queryAll(request,response); }else if("deleteUser".equalsIgnoreCase(method)) { String id = request.getParameter("id"); ius300.delete(Integer.parseInt(id)); queryAll(request,response); }else if("addPage".equalsIgnoreCase(method)) { request.getRequestDispatcher("/WEB-INF/UserManager/AddUser300.jsp").forward(request, response); }else { queryAll(request,response); } } protected void queryAll(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { List<User300> uList = ius300.findAll(); request.getSession().setAttribute("uList", uList); request.getRequestDispatcher("/WEB-INF/UserManager/UserMain300.jsp").forward(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } } ``` ## **6.創建services包,包名為:com.baishenghua100.services** ### **6.1創建導航菜單服務層數據處理接口** >創建IMenuService100接口.java ![](http://h.yiniuedu.com/71b53fef868cc2cfafd0ddd836ab6a1c) ``` package com.baishenghua100.services; import java.util.List; import com.baishenghua100.pojo.Menu100; /** * IMenuService100.java(導航菜單數據處理服務接口) * @desc 主要定義一些方法,比如說,查詢所有導航菜單、條件查詢菜單以及添加、修改和刪除菜單。 * @author 柏圣華 * @date 2021-10-21 * */ public interface IMenuService100 { public List<Menu100> queryAll100();//查詢所有導航菜單 public List<Menu100> queryByCond100(String condition100);//條件查詢導航菜單 public Menu100 query100(Menu100 menu100);//根據序號查詢導航菜單 public Menu100 add100(Menu100 menu100);//添加導航菜單 public Menu100 update100(Menu100 menu100);//修改導航菜單 public Menu100 delete100(Menu100 menu100);//刪除導航菜單 } ``` ### **6.2創建公司信息服務層數據處理接口** >創建ICompanyInfomationService300.java ``` package com.baishenghua300.services; import java.util.List; import com.baishenghua300.pojo.CompanyInfomation300; /** * ICompanyInfomationService300.java(公司信息數據處理服務接口) * @desc 主要定義一些方法:查詢所有公司擬信息、條件查詢、序號查詢以及添加、修改和刪除操作。 * @author 柏圣華 * @date 2021-11-22 * */ public interface ICompanyInfomationService300 { public List<CompanyInfomation300> queryAll300();//查詢所有公司信息 public List<CompanyInfomation300> queryByCond300(String condition300);//條件查詢公司信息 public CompanyInfomation300 query300(CompanyInfomation300 ci300);//根據序號查詢公司信息 public int add300(CompanyInfomation300 ci300);//添加公司信息 public int update300(CompanyInfomation300 ci300);//修改公司信息 public int delete300(CompanyInfomation300 ci300);//刪除公司信息 } ``` ### **6.3創建用戶信息服務層數據處理接口** >創建IUserService300.java ``` package com.baishenghua300.services; import java.util.List; import java.util.Map; import com.baishenghua300.pojo.User300; /** * IUserService300.java(用戶數據處理服務層接口) * * @desc 主要定義一些方法:查詢所有、條件查詢、序號查詢以及添加、修改和刪除等方法。 * @author 柏圣華 * @date 2021-11-26 * */ public interface IUserService300 { public List<User300> findAll();// 查詢所有 User300 findUserByUsernameAndPassword(String username, String password);//用戶登錄驗證 void add(User300 user);//添加方法 void delete(int id);//刪除方法 User300 findById(int i);//根據序號查詢方法 void update(User300 user);//更新方法 /** * 查詢總記錄數 * * @return * @param condition */ int findTotalCount(Map<String, String[]> condition); /** * 分頁查詢每頁記錄 * * @param start * @param rows * @param condition * @return */ List<User300> findByPage(int start, int rows, Map<String, String[]> condition); } ``` ## **7.創建services包的實現包impl,包名為:com.baishenghua100.services.impl** 在該包下創建如下類 ### **7.1創建導航菜單服務層數據處理接口的實現類** >創建MenuServiceImpl100實現IMenuService100接口里面的方法 ![](http://h.yiniuedu.com/3d243a9c0e4799b66a3a5c54a6f25665) ``` package com.baishenghua100.services.impl; import java.util.List; import com.baishenghua100.pojo.Menu100; import com.baishenghua100.services.IMenuService100; /** * MenuServiceImpl100.java(導航菜單數據處理服務具體實現類) * @desc 主要調用IMenDao100接口里面的方法,具體調用IMenDao100接口實現類MenuDaoImpl100類里面的方法 * @author 柏圣華 * @date 2021-10-21 * */ public class MenuServiceImpl100 implements IMenuService100 { IMenuDao100 iMenuDao100 = new MenuDaoImpl100(); @Override public List<Menu100> queryAll100() { return iMenuDao100.queryAll100(); } @Override public List<Menu100> queryByCond100(String condition100) { return iMenuDao100.queryByCond100(condition100); } @Override public Menu100 query100(Menu100 menu100) { return iMenuDao100.query100(menu100); } @Override public Menu100 add100(Menu100 menu100) { return iMenuDao100.add100(menu100); } @Override public Menu100 update100(Menu100 menu100) { return iMenuDao100.update100(menu100); } @Override public Menu100 delete100(Menu100 menu100) { return iMenuDao100.delete100(menu100); } } ``` ### **7.2創建公司信息服務層數據處理接口的實現類** >創建CompanyInfomationServiceImpl300實現ICompanyInfomationDao300接口里面的方法 ``` package com.baishenghua300.services.impl; import java.util.List; import com.baishenghua300.dao.ICompanyInfomationDao300; import com.baishenghua300.dao.impl.CompanyInfomationDaoImpl300; import com.baishenghua300.pojo.CompanyInfomation300; import com.baishenghua300.services.ICompanyInfomationService300; /** * CompanyInfomationServiceImpl300.java(公司信息數據處理服務具體實現類) * @desc 主要調用ICompanyInfomationDao300接口里面的方法 * 具體調用ICompanyInfomationDao300接口實現類CompanyInfomationDaoImpl300類里面的方法 * @author 柏圣華 * @date 2021-11-22 * */ public class CompanyInfomationServiceImpl300 implements ICompanyInfomationService300 { ICompanyInfomationDao300 cid300 = new CompanyInfomationDaoImpl300(); @Override public List<CompanyInfomation300> queryAll300() { return cid300.queryAll300(); } @Override public List<CompanyInfomation300> queryByCond300(String condition300) { return cid300.queryByCond300(condition300); } @Override public CompanyInfomation300 query300(CompanyInfomation300 ci300) { return cid300.query300(ci300); } @Override public int add300(CompanyInfomation300 ci300) { return cid300.add300(ci300); } @Override public int update300(CompanyInfomation300 ci300) { return cid300.update300(ci300); } @Override public int delete300(CompanyInfomation300 ci300) { return cid300.delete300(ci300); } } ``` ### **7.3創建用戶信息服務層數據處理接口的實現類** >創建UserServiceImpl300實現IUserDao300接口里面的方法 ``` package com.baishenghua300.services.impl; import java.util.List; import java.util.Map; import com.baishenghua300.dao.IUserDao300; import com.baishenghua300.dao.impl.UserDaoImpl300; import com.baishenghua300.pojo.User300; import com.baishenghua300.services.IUserService300; /** * UserServiceImpl300.java(導航菜單數據處理服務具體實現類) * @desc 主要調用IUserDao300接口里面的方法,具體調用IUserDao300接口實現類UserDaoImpl300類里面的方法 * @author 柏圣華 * @date 2021-1-26 * */ public class UserServiceImpl300 implements IUserService300 { IUserDao300 iud300 = new UserDaoImpl300(); @Override public List<User300> findAll() { return iud300.findAll(); } @Override public User300 findUserByUsernameAndPassword(String username, String password) { return iud300.findUserByUsernameAndPassword(username, password); } @Override public void add(User300 user) { iud300.add(user); } @Override public void delete(int id) { iud300.delete(id); } @Override public User300 findById(int i) { return iud300.findById(i); } @Override public void update(User300 user) { iud300.update(user); } @Override public int findTotalCount(Map<String, String[]> condition) { return iud300.findTotalCount(condition); } @Override public List<User300> findByPage(int start, int rows, Map<String, String[]> condition) { return iud300.findByPage(start, rows, condition); } } ``` ## **8.創建測試包test,包名為:com.baishenghua100.test** 在該包下創建以下類 ### **8.1創建菜單服務層實現類的測試類MenuServiceImplTest100.java** >創建MenuServiceImpl100的測試類MenuServiceImplTest100 創建一個JUnit Test case,名字為MenuServiceImplTest100 在class under test下選擇MenuServiceImpl100這個類,然后選擇要測試哪些方法 ![](http://h.yiniuedu.com/b57157abb0ccef41a80c9bfa572f0f75) ``` package com.baishenghua100.test; import static org.junit.jupiter.api.Assertions.*; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; /** * MenuServiceImplTest100.java(導航菜單數據處理服務具體實現類的測試類) * @desc 主要測試實現類MenuServiceImpl100類里面的方法,有沒有實現 * @author 柏圣華 * @date 2021-10-21 * */ class MenuServiceImplTest100 { @BeforeEach void setUp() throws Exception { } @AfterEach void tearDown() throws Exception { } @Test void testQueryAll100() { fail("Not yet implemented"); } @Test void testQueryByCond100() { fail("Not yet implemented"); } @Test void testQuery100() { fail("Not yet implemented"); } @Test void testAdd100() { fail("Not yet implemented"); } @Test void testUpdate100() { fail("Not yet implemented"); } @Test void testDelete100() { fail("Not yet implemented"); } } ``` ### **8.2創建公司信息服務層實現類的測試類CompanyInfomationServiceImplTest300.java** >創建CompanyInfomationServiceImpl300的測試類CompanyInfomationServiceImplTest300 創建一個JUnit Test case,名字為CompanyInfomationServiceImplTest300 在class under test下選擇CompanyInfomationServiceImpl300這個類,然后選擇要測試哪些方法 ![](http://h.yiniuedu.com/e35e25a83366edf5795efcbd4c5110e6) 代碼如下: ``` package com.baishenghua300.test; import static org.junit.jupiter.api.Assertions.*; import java.util.List; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import com.baishenghua300.pojo.CompanyInfomation300; import com.baishenghua300.services.ICompanyInfomationService300; import com.baishenghua300.services.impl.CompanyInfomationServiceImpl300; import junit.framework.Assert; /** * CompanyInfomationServiceImplTest300.java(公司信息數據處理服務具體實現類的測試類) * @desc 主要測試實現類CompanyInfomationServiceImpl300類里面的方法,有沒有實現 * @author 柏圣華 * @date 2021-11-22 * */ class CompanyInfomationServiceImplTest300 { ICompanyInfomationService300 cis300 = new CompanyInfomationServiceImpl300(); CompanyInfomation300 ci300 = new CompanyInfomation300(); @Test void testAdd300() {//測試添加方法 ci300.setCiNo300(6); ci300.setCiTitle300("公司簡介"); ci300.setCiContent300("華圣物流信息科技有限公司是一家專業從事安防監控、IT服務的一站式服務系統集成企業。致力于數字化、網絡化弱電系統解決方案,自成立以來秉承“以人為本,以德治企,以身作則,以信立業”的經營理念,堅持“領先科技,致力服務”的服務原則,形成了“獨具匠心,特色創新”的先航騰飛商業模式。\r\n" + "\r\n" + "公司致力于數字化監控系統;防盜報警系統工程;網絡工程,智能一卡通;視頻會議;智能化大廈;智能化小區;公共廣播;背景音樂系統 工程;停車場;可視門禁對講工程;網絡;語音系統綜合布線工程;機房工程的整體建設和運維為目標,為客戶提供包括系統集成和運維外包 在內的整體服務方案,堅持數字化、智能化的方向持續發展。\r\n" + ""); ci300.setCiImage300("images/pic8.png"); ci300.setCiEditDate300("2021-11-22"); int flag = cis300.add300(ci300); Assert.assertEquals(1, flag); } @Test void testQueryAll300() {//測試查詢所有的方法 List<CompanyInfomation300> ciList = cis300.queryAll300(); Assert.assertEquals(5, ciList.size());//第一個參數數字5,代表數據庫有5條數據。第二個參數ciList.size()代表執行查詢所有方法返回的數據庫數據條數 } @Test void testQueryByCond300() { //測試模糊查詢所有的方法 List<CompanyInfomation300> ciList = cis300.queryByCond300("合"); Assert.assertEquals(1, ciList.size());//第一個參數數字5,代表數據庫有5條數據。第二個參數ciList.size()代表執行查詢所有方法返回的數據庫數據條數 } @Test void testQuery300() { //測試精準查詢的方法 ci300.setCiId300(5); CompanyInfomation300 cif300 = cis300.query300(ci300); Assert.assertEquals("合作伙伴", cif300.getCiTitle300()); } @Test void testUpdate300() {//測試更新的方法 ci300.setCiId300(6); ci300.setCiTitle300("7"); ci300.setCiImage300("7"); ci300.setCiContent300("7"); ci300.setCiEditDate300("7"); ci300.setCiNo300(7); int flag = cis300.update300(ci300); Assert.assertEquals(1, flag); } @Test void testDelete300() { ci300.setCiId300(6); int flag = cis300.delete300(ci300); Assert.assertEquals(1, flag); } } ``` ### **8.2創建用戶信息服務層實現類的測試類UserServiceImplTest300.java** >創建UserServiceImpl300的測試類UserServiceImplTest300 創建一個JUnit Test case,名字為UserServiceImplTest300 在class under test下選擇UserServiceImpl300這個類,然后選擇要測試哪些方法 ``` package com.baishenghua300.test; import static org.junit.jupiter.api.Assertions.*; import java.util.List; import org.junit.jupiter.api.Test; import com.baishenghua300.pojo.User300; import com.baishenghua300.services.IUserService300; import com.baishenghua300.services.impl.UserServiceImpl300; import junit.framework.Assert; class UserServiceImplTest300 { IUserService300 ius300 = new UserServiceImpl300(); User300 user = new User300(); @Test void testFindAll() { List<User300> uList = ius300.findAll(); Assert.assertEquals(2, uList.size()); } @Test void testFindUserByUsernameAndPassword() { user = ius300.findUserByUsernameAndPassword("admin", "admin"); Assert.assertEquals("admin", user.getName300()); } @Test void testAdd() { user.setName300("21"); user.setGender300("21"); user.setAge300(21); user.setQq300("21212121"); user.setAddress300("2121"); user.setEmail300("2121@12.com"); ius300.add(user); } @Test void testDelete() { ius300.delete(2); } @Test void testFindById() { user = ius300.findById(1); Assert.assertEquals("admin", user.getName300()); } @Test void testUpdate() { user.setName300("3"); user.setGender300("boy"); user.setAge300(3); user.setQq300("33333333"); user.setAddress300("3333"); user.setEmail300("33333@333.com"); user.setId300(2); ius300.update(user); } @Test void testFindTotalCount() { //先不實現 } @Test void testFindByPage() { //先不實現 } } ``` ## **9.創建過濾器包filter,包名為:com.baishenghua100.filter** 在該包下創建以下類 ### **9.1創建字符編碼過濾器類CharacterEncodingFilter100.java** >創建字符編碼過濾器類CharacterEncodingFilter100類 注意此處要創建一個Filter ![](http://h.yiniuedu.com/8e8187875d2e80475373d6801fdaec90) ``` package com.baishenghua300.filter; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.annotation.WebFilter; import javax.servlet.annotation.WebInitParam; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * CharacterEncodingFilter300.java(字符編碼過濾器類) * @desc 主要統一字符編碼 * @author 柏圣華 * @date 2021-10-21 * */ @WebFilter(urlPatterns="/*",initParams= {@WebInitParam(name="CharsetEncoding",value="utf-8")}) public class CharacterEncodingFilter300 implements Filter { private static String encoding;//定義變量接收初始化的值 /** * Default constructor. */ public CharacterEncodingFilter300() { } public void destroy() { } public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest)req; HttpServletResponse response = (HttpServletResponse)res; //設置字符編碼鏈鎖 request.setCharacterEncoding(encoding); response.setCharacterEncoding(encoding); if(encoding != null) { chain.doFilter(request, response); } } public void init(FilterConfig fConfig) throws ServletException { //接收web.xml配置文件中或者注解中的初始參數 encoding = fConfig.getInitParameter("CharsetEncoding"); } } ``` ### **9.2創建用戶登錄驗證過濾器類LoginFilte300.java** >創建用戶登錄驗證過濾器類LoginFilte300類 注意此處要創建一個Filter ``` package com.baishenghua300.filter; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.annotation.WebFilter; import javax.servlet.http.HttpServletRequest; @WebFilter("/*") public class LoginFilte300 implements Filter { public void destroy() { } public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException { System.out.println(req); // 0.強制轉換 HttpServletRequest request = (HttpServletRequest) req; // 1.獲取資源請求路徑 String uri = request.getRequestURI(); // 2.判斷是否包含登錄相關資源路徑,要注意排除掉 css/js/圖片/驗證碼等資源 if (uri.contains("/login.jsp") || uri.contains("/LoginServlet300") || uri.contains("/css/") || uri.contains("/js/") || uri.contains("/fonts/") || uri.contains("/images/") || uri.contains("/CheckCode300") || uri.contains("/IndexServlet") || uri.contains("/index.jsp") || uri.contains("/about.jsp") || uri.contains("/news.jsp") || uri.contains("/contact.jsp") || uri.contains("/portfolio.jsp") || uri.contains("/product.jsp") || uri.contains("/server.jsp") || uri.contains("/talent.jsp") || uri.contains("/online.jsp")) { // 包含,用戶就是想登錄。放行 chain.doFilter(req, resp); } else { // 不包含,需要驗證用戶是否登錄 // 3.從獲取session中獲取user Object user = request.getSession().getAttribute("user"); if (user != null) { // 登錄了。放行 chain.doFilter(request, resp); } else { // 沒有登錄。跳轉登錄頁面 request.setAttribute("login_msg", "您尚未登錄,請登錄"); request.getRequestDispatcher("/Manager/Login.jsp").forward(request, resp); } } } public void init(FilterConfig fConfig) throws ServletException { } } ``` ### **9.3創建敏感詞匯過濾器類SensitiveWordsFilter.java** >創建敏感詞匯過濾器類SensitiveWordsFilter類 注意此處要創建一個Filter ``` package com.baishenghua300.filter; import javax.servlet.*; import javax.servlet.annotation.WebFilter; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy; import java.util.ArrayList; import java.util.List; /** * 敏感詞匯過濾器 */ @WebFilter("/*") public class SensitiveWordsFilter implements Filter { public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException { //1.創建代理對象,增強getParameter方法 ServletRequest proxy_req = (ServletRequest) Proxy.newProxyInstance(req.getClass().getClassLoader(), req.getClass().getInterfaces(), new InvocationHandler() { @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { //增強getParameter方法 //判斷是否是getParameter方法 if(method.getName().equals("getParameter")){ //增強返回值 //獲取返回值 String value = (String) method.invoke(req,args); if(value != null){ for (String str : list) { if(value.contains(str)){ value = value.replaceAll(str,"***"); } } } return value; } //判斷方法名是否是 getParameterMap //判斷方法名是否是 getParameterValue return method.invoke(req,args); } }); //2.放行 chain.doFilter(proxy_req, resp); } private List<String> list = new ArrayList<String>();//敏感詞匯集合 public void init(FilterConfig config) throws ServletException { try{ //1.獲取文件真實路徑 ServletContext servletContext = config.getServletContext(); String realPath = servletContext.getRealPath("/WEB-INF/classes/敏感詞匯.txt"); //2.讀取文件 BufferedReader br = new BufferedReader(new FileReader(realPath)); //3.將文件的每一行數據添加到list中 String line = null; while((line = br.readLine())!=null){ list.add(line); } br.close(); System.out.println(list); }catch (Exception e){ e.printStackTrace(); } } public void destroy() { } } ``` # **三、后臺管理頁面創建** 在WebContent目錄下創建用戶登錄界面 ## **用戶登錄界面** ``` <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>登錄頁面</title> <script> window.onload = function(){ document.getElementById("img").onclick = function(){ this.src="checkCode?time="+new Date().getTime(); } } </script> <style> div{ color: red; } </style> </head> <body> <form action="loginServlet" method="post"> <table> <tr> <td>用戶名</td> <td><input type="text" name="username"></td> </tr> <tr> <td>密碼</td> <td><input type="password" name="password"></td> </tr> <tr> <td>驗證碼</td> <td><input type="text" name="checkCode"></td> </tr> <tr> <td colspan="2"><img id="img" src="checkCode"></td> </tr> <tr> <td colspan="2"><input type="submit" value="登錄"></td> </tr> </table> </form> <div><%=request.getAttribute("cc_error") == null ? "" : request.getAttribute("cc_error")%></div> <div><%=request.getAttribute("login_error") == null ? "" : request.getAttribute("login_error") %></div> </body> </html> ``` ## **1.菜單信息管理模塊界面** 在WebContent目錄下創建MenuManager目錄,在該目錄下創建下面三個頁面。 ### **1.1 創建添加導航菜單界面AddMenu100.jsp如下:** **AddMenu100.jsp界面代碼如下:** ``` <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>添加導航菜單界面</title> </head> <body> <h1>添加菜單</h1> <form action="MenuServlet300?method=addMenu" method="post"> 序號<input type="text" name="menuNo300" /><br> 名稱<input type="text" name="menuName300" /><br> 地址<input type="text" name="menuURL300" /><br> <input type="submit" value="添加"/> </form> </body> </html> ``` ### **1.2 創建菜單管理主界面Main100.jsp如下:** **Main100.jsp界面代碼如下:** ``` <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>導航菜單管理界面</title> </head> <body> <table border="1"> <tr><th>編號</th><th>序號</th><th>名稱</th><th>地址</th><th colspan="2">編輯</th></tr> <c:forEach items="${menus}" var="m"> <tr><td>${m.id300}</td><td>${m.menuNo300}</td><td>${m.menuName300 }</td><td>${m.menuURL300}</td> <td><a href="MenuServlet300?method=editMenu&id300=${m.id300}">編輯</a></td> <td><a href="MenuServlet300?method=deleteMenu&id300=${m.id300}" onclick="return confirm('是否確認刪除?')">刪除</a></td> </tr> </c:forEach> </table> </body> </html> ``` ### **1.3 創建修改導航菜單界面EditMenu100.jsp如下:** **EditMenu100.jsp界面代碼如下:** ``` <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>更新導航菜單信息界面</title> </head> <body> <h1>更新菜單</h1> <form action="MenuServlet300?method=updateMenu" method="post"> 序號<input type="text" name="menuNo300" value="${menu.menuNo300 }"/><br> 名稱<input type="text" name="menuName300" value="${menu.menuName300 }"/><br> 地址<input type="text" name="menuURL300" value="${menu.menuURL300 }"/><br> <input type="submit" value="修改"/> </form> </body> </html> ``` ## **2.公司信息管理模塊界面** 在WebContent目錄下創建companyinfomanager目錄,在該目錄下創建下面三個頁面。 ### **2.1創建公司信息添加界面AddCompanyInfo300.jsp如下:** ![](http://h.yiniuedu.com/29b469e669424e285d8536a6b17e7a52) **AddCompanyInfo300.jsp界面代碼如下:** ``` <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>公司信息管理界面-添加公司信息</title> </head> <body> <h1>添加公司信息</h1> <form action="companyInfoController300?method=addCompanyInfo" method="post"> 序號:<input type="text" name="ciNo300" /><br> 標題:<input type="text" name="ciTitle300" /><br> 圖片:<input type="text" name="ciImage300" /><br> 內容:<textarea name="ciContent300" rows="20" cols="50"></textarea><br> 日期:<input type="text" name="ciEditDate300" /><br> <input type="submit" value="添加"/> </form> </body> </html> ``` ### **2.2創建顯示公司信息界面CompanyInfoMain300.jsp如下:** ![](http://h.yiniuedu.com/d386c15d9ec96fc054b96892fd2993b9) **CompanyInfoMain300.jsp界面代碼如下:** ``` <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>公司信息管理界面</title> </head> <body> <a href="AddCompanyInfo.jsp">添加公司信息</a> <table border="1"> <tr><th>編號</th><th>序號</th><th>標題</th><th>內容</th><th>圖片</th><th>日期</th><th colspan="2">編輯</th></tr> <c:forEach items="${ciList}" var="ci"> <tr><td>${ci.ciId300}</td><td>${ci.ciNo300}</td><td>${ci.ciTitle300 }</td><td width="50%">${ci.ciContent300}</td><td>${ci.ciImage300}</td><td>${ci.ciEditDate300}</td> <td><a href="companyInfoController300?method=editCompanyInfo&ciId300=${ci.ciId300}">編輯</a></td> <td><a href="companyInfoController300?method=deleteCompanyInfo&ciId300=${ci.ciId300}" onclick="return confirm('是否確認刪除?')">刪除</a></td> </tr> </c:forEach> </table> </body> </html> ``` ### **2.3創建更新公司信息界面EditCompanyInfo300.jsp如下:** ![](http://h.yiniuedu.com/eef8829e9eb6bb831ba0968a48b921f7) **EditCompanyInfo300.jsp界面代碼如下:** ``` <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>公司信息管理界面-更新-${ci300.ciTitle300 }-界面</title> </head> <body> <h1>更新《${ci300.ciTitle300 }》</h1> <form action="companyInfoController300?method=updateCompanyInfo" method="post"> <input type="hidden" name="ciId300" value="${ci300.ciId300 }"/> 序號:<input type="text" name="ciNo300" value="${ci300.ciNo300 }"/><br> 標題:<input type="text" name="ciTitle300" value="${ci300.ciTitle300 }"/><br> 圖片:<input type="text" name="ciImage300" value="${ci300.ciImage300 }"/><br> 內容:<textarea name="ciContent300" rows="20" cols="50">${ci300.ciContent300 }</textarea><br> 日期:<input type="text" name="ciEditDate300" value="${ci300.ciEditDate300 }"/><br> <input type="submit" value="更新"/> </form> </body> </html> ``` ## **3.用戶信息管理模塊界面** 在WebContent目錄下創建UserManager目錄,在該目錄下創建下面三個頁面。 ### **3.1創建用戶信息添加界面AddUser300.jsp如下:** ``` <%@ page contentType="text/html;charset=UTF-8" language="java" %> <!-- HTML5文檔--> <!DOCTYPE html> <!-- 網頁使用的語言 --> <html lang="zh-CN"> <head> <!-- 指定字符集 --> <meta charset="utf-8"> <!-- 使用Edge最新的瀏覽器的渲染方式 --> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <!-- viewport視口:網頁可以根據設置的寬度自動進行適配,在瀏覽器的內部虛擬一個容器,容器的寬度與設備的寬度相同。 width: 默認寬度與設備的寬度相同 initial-scale: 初始的縮放比,為1:1 --> <meta name="viewport" content="width=device-width, initial-scale=1"> <!-- 上述3個meta標簽*必須*放在最前面,任何其他內容都*必須*跟隨其后! --> <title>添加用戶</title> <!-- 1. 導入CSS的全局樣式 --> <link href="css/bootstrap.min.css" rel="stylesheet"> <!-- 2. jQuery導入,建議使用1.9以上的版本 --> <script src="js/jquery-2.1.0.min.js"></script> <!-- 3. 導入bootstrap的js文件 --> <script src="js/bootstrap.min.js"></script> </head> <body> <div class="container"> <center><h3>添加聯系人頁面</h3></center> <form action="${pageContext.request.contextPath}/UserServlet300?method=addUser" method="post"> <div class="form-group"> <label for="name">姓名:</label> <input type="text" class="form-control" id="name" name="name" placeholder="請輸入姓名"> </div> <div class="form-group"> <label>性別:</label> <input type="radio" name="gender" value="男" checked="checked"/>男 <input type="radio" name="gender" value="女"/>女 </div> <div class="form-group"> <label for="age">年齡:</label> <input type="text" class="form-control" id="age" name="age" placeholder="請輸入年齡"> </div> <div class="form-group"> <label for="address">籍貫:</label> <select name="address" class="form-control" id="address"> <option value="陜西">陜西</option> <option value="北京">北京</option> <option value="上海">上海</option> </select> </div> <div class="form-group"> <label for="qq">QQ:</label> <input type="text" class="form-control" id="qq" name="qq" placeholder="請輸入QQ號碼"/> </div> <div class="form-group"> <label for="email">Email:</label> <input type="text" class="form-control" id="email" name="email" placeholder="請輸入郵箱地址"/> </div> <div class="form-group" style="text-align: center"> <input class="btn btn-primary" type="submit" value="提交" /> <input class="btn btn-default" type="reset" value="重置" /> <input class="btn btn-default" type="button" value="返回" /> </div> </form> </div> </body> </html> ``` ### **3.2創建用戶信息編輯界面EditUser300.jsp如下:** ``` <%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <!DOCTYPE html> <!-- 網頁使用的語言 --> <html lang="zh-CN"> <head> <!-- 指定字符集 --> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>修改用戶</title> <link href="css/bootstrap.min.css" rel="stylesheet"> <script src="js/jquery-2.1.0.min.js"></script> <script src="js/bootstrap.min.js"></script> </head> <body> <div class="container" style="width: 400px;"> <h3 style="text-align: center;">修改聯系人</h3> <form action="${pageContext.request.contextPath}/UserServlet300?method=updateUser" method="post"> <!-- 隱藏域 提交id--> <input type="hidden" name="id" value="${user.id300}"> <div class="form-group"> <label for="name">姓名:</label> <input type="text" class="form-control" id="name" name="name" value="${user.name300}" readonly="readonly" placeholder="請輸入姓名" /> </div> <div class="form-group"> <label>性別:</label> <c:if test="${user.gender300 == '男'}"> <input type="radio" name="gender" value="男" checked />男 <input type="radio" name="gender" value="女" />女 </c:if> <c:if test="${user.gender300 == '女'}"> <input type="radio" name="gender" value="男" />男 <input type="radio" name="gender" value="女" checked />女 </c:if> </div> <div class="form-group"> <label for="age">年齡:</label> <input type="text" class="form-control" value="${user.age300}" id="age" name="age" placeholder="請輸入年齡" /> </div> <div class="form-group"> <label for="address">籍貫:</label> <select name="address" id="address" class="form-control" > <c:if test="${user.address300 == '陜西'}"> <option value="陜西" selected>陜西</option> <option value="北京">北京</option> <option value="上海">上海</option> </c:if> <c:if test="${user.address300 == '北京'}"> <option value="陜西" >陜西</option> <option value="北京" selected>北京</option> <option value="上海">上海</option> </c:if> <c:if test="${user.address300 == '上海'}"> <option value="陜西" >陜西</option> <option value="北京">北京</option> <option value="上海" selected>上海</option> </c:if> </select> </div> <div class="form-group"> <label for="qq">QQ:</label> <input type="text" id="qq" class="form-control" value="${user.qq300}" name="qq" placeholder="請輸入QQ號碼"/> </div> <div class="form-group"> <label for="email">Email:</label> <input type="text" id="email" class="form-control" value="${user.email300}" name="email" placeholder="請輸入郵箱地址"/> </div> <div class="form-group" style="text-align: center"> <input class="btn btn-primary" type="submit" value="提交" /> <input class="btn btn-default" type="reset" value="重置" /> <input class="btn btn-default" type="button" value="返回"/> </div> </form> </div> </body> </html> ``` ### **3.3創建用戶信息查詢主界面UserMain300.jsp如下:** ``` <%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <!DOCTYPE html> <!-- 網頁使用的語言 --> <html lang="zh-CN"> <head> <!-- 指定字符集 --> <meta charset="utf-8"> <!-- 使用Edge最新的瀏覽器的渲染方式 --> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <!-- viewport視口:網頁可以根據設置的寬度自動進行適配,在瀏覽器的內部虛擬一個容器,容器的寬度與設備的寬度相同。 width: 默認寬度與設備的寬度相同 initial-scale: 初始的縮放比,為1:1 --> <meta name="viewport" content="width=device-width, initial-scale=1"> <!-- 上述3個meta標簽*必須*放在最前面,任何其他內容都*必須*跟隨其后! --> <title>用戶信息管理系統</title> <!-- 1. 導入CSS的全局樣式 --> <link href="css/bootstrap.min.css" rel="stylesheet"> <!-- 2. jQuery導入,建議使用1.9以上的版本 --> <script src="js/jquery-2.1.0.min.js"></script> <!-- 3. 導入bootstrap的js文件 --> <script src="js/bootstrap.min.js"></script> <style type="text/css"> td, th { text-align: center; } </style> <script> function deleteUser(id){ //用戶安全提示 if(confirm("您確定要刪除嗎?")){ //訪問路徑 location.href="${pageContext.request.contextPath}/UserServlet300?method=deleteUser&id="+id; } } window.onload = function(){ //給刪除選中按鈕添加單擊事件 document.getElementById("delSelected").onclick = function(){ if(confirm("您確定要刪除選中條目嗎?")){ var flag = false; //判斷是否有選中條目 var cbs = document.getElementsByName("uid"); for (var i = 0; i < cbs.length; i++) { if(cbs[i].checked){ //有一個條目選中了 flag = true; break; } } if(flag){//有條目被選中 //表單提交 document.getElementById("form").submit(); } } } //1.獲取第一個cb document.getElementById("firstCb").onclick = function(){ //2.獲取下邊列表中所有的cb var cbs = document.getElementsByName("uid"); //3.遍歷 for (var i = 0; i < cbs.length; i++) { //4.設置這些cbs[i]的checked狀態 = firstCb.checked cbs[i].checked = this.checked; } } } </script> </head> <body> <div class="container"> <h3 style="text-align: center">用戶信息列表</h3> <div style="float: left;"> <form class="form-inline" action="${pageContext.request.contextPath}/findUserByPageServlet" method="post"> <div class="form-group"> <label for="exampleInputName2">姓名</label> <input type="text" name="name" value="${condition.name[0]}" class="form-control" id="exampleInputName2" > </div> <div class="form-group"> <label for="exampleInputName3">籍貫</label> <input type="text" name="address" value="${condition.address[0]}" class="form-control" id="exampleInputName3" > </div> <div class="form-group"> <label for="exampleInputEmail2">郵箱</label> <input type="text" name="email" value="${condition.email[0]}" class="form-control" id="exampleInputEmail2" > </div> <button type="submit" class="btn btn-default">查詢</button> </form> </div> <div style="float: right;margin: 5px;"> <a class="btn btn-primary" href="${pageContext.request.contextPath}/UserServlet300?method=addPage">添加聯系人</a> <a class="btn btn-primary" href="javascript:void(0);" id="delSelected">刪除選中</a> </div> <form id="form" action="${pageContext.request.contextPath}/UserServlet300?method=deleteUser" method="post"> <table border="1" class="table table-bordered table-hover"> <tr class="success"> <th><input type="checkbox" id="firstCb"></th> <th>編號</th> <th>姓名</th> <th>性別</th> <th>年齡</th> <th>籍貫</th> <th>QQ</th> <th>郵箱</th> <th>操作</th> </tr> <c:forEach items="${uList}" var="user" varStatus="s"> <tr> <td><input type="checkbox" name="uid" value="${user.id300}"></td> <td>${s.count}</td> <td>${user.name300}</td> <td>${user.gender300}</td> <td>${user.age300}</td> <td>${user.address300}</td> <td>${user.qq300}</td> <td>${user.email300}</td> <td><a class="btn btn-default btn-sm" href="${pageContext.request.contextPath}/UserServlet300?method=editUser&id=${user.id300}">修改</a>&nbsp; <a class="btn btn-default btn-sm" href="javascript:deleteUser(${user.id300});">刪除</a></td> </tr> </c:forEach> </table> </form> <div> <nav aria-label="Page navigation"> <ul class="pagination"> <c:if test="${pb.currentPage == 1}"> <li class="disabled"> </c:if> <c:if test="${pb.currentPage != 1}"> <li> </c:if> <a href="${pageContext.request.contextPath}/findUserByPageServlet?currentPage=${pb.currentPage - 1}&rows=5&name=${condition.name[0]}&address=${condition.address[0]}&email=${condition.email[0]}" aria-label="Previous"> <span aria-hidden="true">&laquo;</span> </a> </li> <c:forEach begin="1" end="${pb.totalPage}" var="i" > <c:if test="${pb.currentPage == i}"> <li class="active"><a href="${pageContext.request.contextPath}/findUserByPageServlet?currentPage=${i}&rows=5&name=${condition.name[0]}&address=${condition.address[0]}&email=${condition.email[0]}">${i}</a></li> </c:if> <c:if test="${pb.currentPage != i}"> <li><a href="${pageContext.request.contextPath}/findUserByPageServlet?currentPage=${i}&rows=5&name=${condition.name[0]}&address=${condition.address[0]}&email=${condition.email[0]}">${i}</a></li> </c:if> </c:forEach> <li> <a href="${pageContext.request.contextPath}/findUserByPageServlet?currentPage=${pb.currentPage + 1}&rows=5&name=${condition.name[0]}&address=${condition.address[0]}&email=${condition.email[0]}" aria-label="Next"> <span aria-hidden="true">&raquo;</span> </a> </li> <span style="font-size: 25px;margin-left: 5px;"> 共${pb.totalCount}條記錄,共${pb.totalPage}頁 </span> </ul> </nav> </div> </div> </body> </html> ``` ## **4.后臺管理界面** 在WebContent目錄下創建Manager目錄,引入css/js/fonts ### **4.1創建后臺管理登錄界面Login.jsp如下:** ``` <%@ page contentType="text/html;charset=UTF-8" language="java" %> <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8"/> <meta http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1"/> <title>管理員登錄</title> <!-- 1. 導入CSS的全局樣式 --> <link href="css/bootstrap.min.css" rel="stylesheet"> <!-- 2. jQuery導入,建議使用1.9以上的版本 --> <script src="js/jquery-2.1.0.min.js"></script> <!-- 3. 導入bootstrap的js文件 --> <script src="js/bootstrap.min.js"></script> <script type="text/javascript"> //切換驗證碼 function refreshCode(){ //1.獲取驗證碼圖片對象 var vcode = document.getElementById("vcode"); //2.設置其src屬性,加時間戳 vcode.src = "${pageContext.request.contextPath}/CheckCode300?time="+new Date().getTime(); } </script> </head> <body> <div class="container" style="width: 400px;"> <h3 style="text-align: center;">管理員登錄</h3> <form action="${pageContext.request.contextPath}/LoginServlet300" method="post"> <div class="form-group"> <label for="user">用戶名:</label> <input type="text" name="username" class="form-control" id="user" placeholder="請輸入用戶名"/> </div> <div class="form-group"> <label for="password">密碼:</label> <input type="password" name="password" class="form-control" id="password" placeholder="請輸入密碼"/> </div> <div class="form-inline"> <label for="vcode">驗證碼:</label> <input type="text" name="verifycode" class="form-control" id="verifycode" placeholder="請輸入驗證碼" style="width: 120px;"/> <a href="javascript:refreshCode();"> <img src="${pageContext.request.contextPath}/CheckCode300" title="看不清點擊刷新" id="vcode"/> </a> </div> <hr/> <div class="form-group" style="text-align: center;"> <input class="btn btn btn-primary" type="submit" value="登錄"> </div> </form> <!-- 出錯顯示的信息框 --> <div class="alert alert-warning alert-dismissible" role="alert"> <button type="button" class="close" data-dismiss="alert" > <span>&times;</span> </button> <strong>${login_msg}</strong> </div> </div> </body> </html> ``` ### **4.2創建后臺管理登錄成功后主界面index300.jsp** ``` <%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8"/> <meta http-equiv="X-UA-Compatible" content="IE=edge"/> <meta name="viewport" content="width=device-width, initial-scale=1"/> <title>首頁</title> <!-- 1. 導入CSS的全局樣式 --> <link href="css/bootstrap.min.css" rel="stylesheet"> <!-- 2. jQuery導入,建議使用1.9以上的版本 --> <script src="js/jquery-2.1.0.min.js"></script> <!-- 3. 導入bootstrap的js文件 --> <script src="js/bootstrap.min.js"></script> <script type="text/javascript"> </script> </head> <body> <div >${user.name300},歡迎您</div> <div align="center"> <a href="${pageContext.request.contextPath}/UserServlet300" style="text-decoration:none;font-size:33px">查詢所有用戶信息 </a></br> <a href="${pageContext.request.contextPath}/MenuServlet300" style="text-decoration:none;font-size:33px">查詢所有菜單信息 </a></br> <a href="${pageContext.request.contextPath}/companyInfoController300" style="text-decoration:none;font-size:33px">查詢所有公司信息 </a></br> </div> </body> </html> ``` # **四、企業官網前端頁面創建** ## **1.企業官網主界面** ``` <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <% String title = "華圣物流信息科技有限公司"; String mobile = "18605395651"; %> <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title><%=title %></title> <meta name="keywords" content="<%=title %>" /> <meta name="description" content="<%=title %>" /> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link href="css/bootstrap.min.css" rel="stylesheet" type="text/css" /> <link href="css/style.css" rel="stylesheet" type="text/css" /> <link href="css/jquery.bxslider.css" rel="stylesheet" /> <script src="js/jquery-1.10.2.min.js" type="text/javascript"></script> <script src="js/bootstrap.min.js" type="text/javascript"></script> <script type="text/javascript" src="js/hover-dropdown.js"></script> <script type="text/javascript" src="js/jquery.bxslider.js"></script> <script> $(function(){ $(".close").click(function(){ $("#address").attr("value",""); }) }) </script> </head> <body> <div class="top hidden-xs"> <div class="container"> <div class="top-fl">Hi,歡迎來到<%=title %>!</div> <div class="top-fr">客服熱線:<%=mobile %></div> </div> </div> <header class="header-frontend"> <div class="navbar navbar-default navbar-static-top"> <div class="container"> <div class="navbar-header"> <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target=".navbar-collapse"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand" href="index.html"><img src="images/logo.png"/></a> </div> <div class="navbar-collapse collapse" style="height: 1px;"> <!-- 頁面導航 start --> <%@ include file="head.jsp" %> <!-- 頁面導航 end --> </div> </div> </div> </header> <!--圖片輪播--> <div id="carousel-example-generic" class="carousel slide" data-ride="carousel"> <ol class="carousel-indicators"> <li data-target="#carousel-example-generic" data-slide-to="0" class="active"></li> <li data-target="#carousel-example-generic" data-slide-to="1"></li> </ol> <div class="carousel-inner" role="listbox"> <div class="item active"> <img src="${pageContext.request.contextPath}/images/banner.png" alt="<%=title %>"> </div> <div class="item"> <img src="${pageContext.request.contextPath}/images/banner.png" alt="<%=title %>"> </div> </div> <!-- Controls --> <a class="left carousel-control" href="#carousel-example-generic" role="button" data-slide="prev"> <span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span> <span class="sr-only">Previous</span> </a> <a class="right carousel-control" href="#carousel-example-generic" role="button" data-slide="next"> <span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span> <span class="sr-only">Next</span> </a> </div> <div class="container"> <div class="biaoti"> <h2>項目管理及實施</h2> <p>致力于數字化、網絡化弱電系統解決方案</p> <div class="english"><span>PROJECT</span></div> </div> </div> <div class="line"></div> <div class="container mt"> <div class="row"> <div class="col-lg-4 col-sm-4"> <section> <a href=""> <div class="f-box"> <i class="iconfont">&#xe601</i> <h2>弱電系統工程</h2> <p class="yw">system engineering</p> <u></u> <p class="f-text">致力于弱電智能工程和服務,努力成為業內一級的弱電工程商和服務提供商</p> </div> </a> </section> </div> <div class="col-lg-4 col-sm-4"> <section> <a href=""> <div class="f-box"> <i class="iconfont">&#xe602</i> <h2>行業解決方案</h2> <p class="yw">Industry solutions</p> <u></u> <p class="f-text">致力于弱電智能工程和服務,努力成為業內一級的弱電工程商和服務提供商</p> </div> </a> </section> </div> <div class="col-lg-4 col-sm-4"> <section> <a href=""> <div class="f-box"> <i class="iconfont">&#xe600</i> <h2>項目案例</h2> <p class="yw">PROJECT CASE</p> <u></u> <p class="f-text">致力于弱電智能工程和服務,努力成為業內一級的弱電工程商和服務提供商</p> </div> </a> </section> </div> </div> </div> <div class="container"> <div class="biaoti"> <h2>項目案例</h2> <p>系統集成和運維外包在內的整體服務方案</p> <div class="english"><span>CASE</span></div> </div> </div> <div class="line"></div> <!--電腦產品中心--> <div class="container hidden-xs mt"> <div class="row"> <!--item--> <div class="col-xs-12 col-sm-4 col-md-4 "> <div class="recent-work-wrap"> <a href=""> <img class="img-responsive" src="images/item1.jpg" alt=""> <div class="overlay"> <div class="recent-work-inner"> <h3>福隆超市連鎖</h3> <p> 用連鎖形式經營多家超市,實行統一進貨、統一配送、統一管理。采用網狀型分布的經營策略,遍布汕頭各大村鎮的大街小巷,其中包括夏桂埔、辛厝寮、陳厝合、廣興村、金砂鄉等,全市連鎖超市管理系統、超市收銀軟件、監控系統、防盜報警系統</p> <!--<a class="preview" href="" rel="prettyPhoto" title=""><i class="fa fa-search"></i></a> --> </div> </div> </a> </div> </div> <!--item--> <!--item--> <div class="col-xs-12 col-sm-4 col-md-4 "> <div class="recent-work-wrap"> <a href=""> <img class="img-responsive" src="images/item1.jpg" alt=""> <div class="overlay"> <div class="recent-work-inner"> <h3>福隆超市連鎖</h3> <p> 用連鎖形式經營多家超市,實行統一進貨、統一配送、統一管理。采用網狀型分布的經營策略,遍布汕頭各大村鎮的大街小巷,其中包括夏桂埔、辛厝寮、陳厝合、廣興村、金砂鄉等,全市連鎖超市管理系統、超市收銀軟件、監控系統、防盜報警系統</p> <!--<a class="preview" href="" rel="prettyPhoto" title=""><i class="fa fa-search"></i></a> --> </div> </div> </a> </div> </div> <!--item--> <!--item--> <div class="col-xs-12 col-sm-4 col-md-4 "> <div class="recent-work-wrap"> <a href=""> <img class="img-responsive" src="images/item1.jpg" alt=""> <div class="overlay"> <div class="recent-work-inner"> <h3>福隆超市連鎖</h3> <p> 用連鎖形式經營多家超市,實行統一進貨、統一配送、統一管理。采用網狀型分布的經營策略,遍布汕頭各大村鎮的大街小巷,其中包括夏桂埔、辛厝寮、陳厝合、廣興村、金砂鄉等,全市連鎖超市管理系統、超市收銀軟件、監控系統、防盜報警系統</p> <!--<a class="preview" href="" rel="prettyPhoto" title=""><i class="fa fa-search"></i></a> --> </div> </div> </a> </div> </div> <!--item--> <!--item--> <div class="col-xs-12 col-sm-4 col-md-4 "> <div class="recent-work-wrap"> <a href=""> <img class="img-responsive" src="images/item1.jpg" alt=""> <div class="overlay"> <div class="recent-work-inner"> <h3>福隆超市連鎖</h3> <p> 用連鎖形式經營多家超市,實行統一進貨、統一配送、統一管理。采用網狀型分布的經營策略,遍布汕頭各大村鎮的大街小巷,其中包括夏桂埔、辛厝寮、陳厝合、廣興村、金砂鄉等,全市連鎖超市管理系統、超市收銀軟件、監控系統、防盜報警系統</p> <!--<a class="preview" href="" rel="prettyPhoto" title=""><i class="fa fa-search"></i></a> --> </div> </div> </a> </div> </div> <!--item--> <!--item--> <div class="col-xs-12 col-sm-4 col-md-4 "> <div class="recent-work-wrap"> <a href=""> <img class="img-responsive" src="images/item1.jpg" alt=""> <div class="overlay"> <div class="recent-work-inner"> <h3>福隆超市連鎖</h3> <p> 用連鎖形式經營多家超市,實行統一進貨、統一配送、統一管理。采用網狀型分布的經營策略,遍布汕頭各大村鎮的大街小巷,其中包括夏桂埔、辛厝寮、陳厝合、廣興村、金砂鄉等,全市連鎖超市管理系統、超市收銀軟件、監控系統、防盜報警系統</p> <!--<a class="preview" href="" rel="prettyPhoto" title=""><i class="fa fa-search"></i></a> --> </div> </div> </a> </div> </div> <!--item--> <!--item--> <div class="col-xs-12 col-sm-4 col-md-4 "> <div class="recent-work-wrap"> <a href=""> <img class="img-responsive" src="images/item1.jpg" alt=""> <div class="overlay"> <div class="recent-work-inner"> <h3>福隆超市連鎖</h3> <p> 用連鎖形式經營多家超市,實行統一進貨、統一配送、統一管理。采用網狀型分布的經營策略,遍布汕頭各大村鎮的大街小巷,其中包括夏桂埔、辛厝寮、陳厝合、廣興村、金砂鄉等,全市連鎖超市管理系統、超市收銀軟件、監控系統、防盜報警系統</p> <!--<a class="preview" href="" rel="prettyPhoto" title=""><i class="fa fa-search"></i></a> --> </div> </div> </a> </div> </div> <!--item--> </div> <a href="" class="more">查看更多</a> </div> <div class="row product hidden-lg" style=" margin: 0; padding-top: 20px;"> <div class="col-lg-12"> <ul class="bxslider"> <li> <a href=""> <div class="element item view view-tenth" data-zlname="reverse-effect"> <img src="images/item1.jpg" alt="" /> <div class="mask"> <a data-zl-popup="link" href="javascript:;"> <i class="icon-link"></i> </a> <a data-zl-popup="link2" class="fancybox" rel="group" href="images/img1.jpg"> <i class="icon-search"></i> </a> </div> </div> </a> </li> <li> <a href=""> <div class="element item view view-tenth" data-zlname="reverse-effect"> <img src="images/item1.jpg" alt="" /> <div class="mask"> <a data-zl-popup="link" href="javascript:;"> <i class="icon-link"></i> </a> <a data-zl-popup="link2" class="fancybox" rel="group" href="images/img1.jpg"> <i class="icon-search"></i> </a> </div> </div> </a> </li> <li> <a href=""> <div class="element item view view-tenth" data-zlname="reverse-effect"> <img src="images/item1.jpg" alt="" /> <div class="mask"> <a data-zl-popup="link" href="javascript:;"> <i class="icon-link"></i> </a> <a data-zl-popup="link2" class="fancybox" rel="group" href="images/img1.jpg"> <i class="icon-search"></i> </a> </div> </div> </a> </li> <li> <a href=""> <div class="element item view view-tenth" data-zlname="reverse-effect"> <img src="images/item1.jpg" alt="" /> <div class="mask"> <a data-zl-popup="link" href="javascript:;"> <i class="icon-link"></i> </a> <a data-zl-popup="link2" class="fancybox" rel="group" href="images/img1.jpg"> <i class="icon-search"></i> </a> </div> </div> </a> </li> <li> <a href=""> <div class="element item view view-tenth" data-zlname="reverse-effect"> <img src="images/item1.jpg" alt="" /> <div class="mask"> <a data-zl-popup="link" href="javascript:;"> <i class="icon-link"></i> </a> <a data-zl-popup="link2" class="fancybox" rel="group" href="images/img1.jpg"> <i class="icon-search"></i> </a> </div> </div> </a> </li> <li> <a href=""> <div class="element item view view-tenth" data-zlname="reverse-effect"> <img src="images/item1.jpg" alt="" /> <div class="mask"> <a data-zl-popup="link" href="javascript:;"> <i class="icon-link"></i> </a> <a data-zl-popup="link2" class="fancybox" rel="group" href="images/img1.jpg"> <i class="icon-search"></i> </a> </div> </div> </a> </li> </ul> </div> </div> <div class="news mt"> <div class="container"> <div class="row"> <div class="newtit"> <h2>新聞中心</h2> <span>new center</span> </div> <p class="newstext">讓您第一時間內掌握最新動態</p> <!-- Nav tabs --> <ul class="nav nav-tabs col-lg-offset-4 col-md-offset-4 col-xs-offset-1" role="tablist"> <li role="presentation" class="active"><a href="#home" aria-controls="home" role="tab" data-toggle="tab">行業資訊</a></li> <li role="presentation"><a href="#profile" aria-controls="profile" role="tab" data-toggle="tab">公司新聞</a></li> <li role="presentation"><a href="">查看更多</a></li> </ul> <!-- Tab panes --> <div class="tab-content"> <div role="tabpanel" class="tab-pane active" id="home"> <div class="container"> <div class="row"> <div class="col-lg-4 col-lg-offset-2 hidden-xs hidden-md img"><img src="images/adv.png"/></div> <div class="col-lg-4 col-xs-12"> <ul class="newslist"> <li><a href=""><i>網絡視頻監控備受青睞 高清化發展是主流 高清化發展是主流</i><span>2016-7-12</span></a></li> <li><a href=""><i>網絡視頻監控備受青睞 高清化發展是主流</i><span>2016-7-12</span></a></li> <li><a href=""><i>網絡視頻監控備受青睞 高清化發展是主流</i><span>2016-7-12</span></a></li> <li><a href=""><i>網絡視頻監控備受青睞 高清化發展是主流</i><span>2016-7-12</span></a></li> <li><a href=""><i>網絡視頻監控備受青睞 高清化發展是主流</i><span>2016-7-12</span></a></li> <li><a href=""><i>網絡視頻監控備受青睞 高清化發展是主流 高清化發展是主流</i><span>2016-7-12</span></a></li> </ul> </div> </div> </div> </div> <div role="tabpanel" class="tab-pane" id="profile"> <div class="container"> <div class="row"> <div class="col-lg-4 col-lg-offset-2 hidden-xs hidden-md img"><img src="images/adv.png"/></div> <div class="col-lg-4 col-xs-12 col-md-12"> <ul class="newslist"> <li><a href=""><i>網絡視頻監控備受青睞 高清化發展是主流</i><span>2016-7-12</span></a></li> <li><a href=""><i>網絡視頻監控備受青睞 高清化發展是主流</i><span>2016-7-12</span></a></li> <li><a href=""><i>網絡視頻監控備受青睞 高清化發展是主流</i><span>2016-7-12</span></a></li> <li><a href=""><i>網絡視頻監控備受青睞 高清化發展是主流</i><span>2016-7-12</span></a></li> <li><a href=""><i>網絡視頻監控備受青睞 高清化發展是主流</i><span>2016-7-12</span></a></li> <li><a href=""><i>網絡視頻監控備受青睞 高清化發展是主流 高清化發展是主流</i><span>2016-7-12</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </div> </div> <div class="container mt"> <div class="biaoti"> <h2>合作伙伴</h2> <p>價值創新,創造雙贏</p> <div class="english"><span>Partner</span></div> </div> </div> <div class="container partner mt"> <div class="row"> <div class="col-lg-2 col-md-2 col-xs-4"><a href=""><img src="images/1_03.png"/></a></div> <div class="col-lg-2 col-md-2 col-xs-4"><a href=""><img src="images/1_03-03.png"/></a></div> <div class="col-lg-2 col-md-2 col-xs-4"><a href=""><img src="images/1_09.png"/></a></div> <div class="col-lg-2 col-md-2 col-xs-4"><a href=""><img src="images/1_11.png"/></a></div> <div class="col-lg-2 col-md-2 col-xs-4"><a href=""><img src="images/1_13.png"/></a></div> <div class="col-lg-2 col-md-2 col-xs-4"><a href=""><img src="images/1_05.png"/></a></div> </div> </div> <div class="add mt"> <div class="container"> <div class="row"> <div class="col-lg-4 col-md-3 col-xs-12"> <h2>我們的地址:</h2> <p>臨沂市羅莊區高新科技創業大廈一期358</p> <h2 class="contact">聯系方式:</h2> <p> 電話:18605395651 </p> <p> 郵箱:50476085@qq.com</p> <p>聯系人:柏先生</p> </div> <div class="col-lg-4 col-md-3 col-xs-12"><img src="images/map.png"/></div> <div class="col-lg-4 col-md-3 col-xs-12"> <h2>留言板</h2> <form> <div class="form-group"> <label for="exampleInputEmail1">*姓名</label> <input type="text" class="form-control" placeholder=""> </div> <div class="form-group"> <label for="exampleInputPassword1">*電話</label> <input type="password" class="form-control" id="exampleInputPassword1" placeholder=""> </div> <label for="exampleInputPassword1">*給我們留言</label> <textarea class="form-control" rows="3"></textarea> <button type="submit" class="btn btn-default">提交留言</button> </form> </div> </div> </div> </div> <%@ include file="foot.jsp" %> <script src="js/common-scripts.js"></script> <script src="js/jquery.bxslider.js"></script> <script> RevSlide.initRevolutionSlider(); $(window).load(function() { $('[data-zlname = reverse-effect]').mateHover({ position: 'y-reverse', overlayStyle: 'rolling', overlayBg: '#fff', overlayOpacity: 0.7, overlayEasing: 'easeOutCirc', rollingPosition: 'top', popupEasing: 'easeOutBack', popup2Easing: 'easeOutBack' }); }); $(window).load(function() { $('.flexslider').flexslider({ animation: "slide", start: function(slider) { $('body').removeClass('loading'); } }); }); jQuery(".fancybox").fancybox(); </script> </body> </html> ``` ## **2.企業信息介紹主界面about.jsp** ``` <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%--引入核心標簽庫 --%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <% String title = "華圣物流信息科技有限公司"; String mobile = "18605395651"; %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title><%=title %></title> <meta name="keywords" content="<%=title %>" /> <meta name="description" content="<%=title %>" /> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link href="css/bootstrap.min.css" rel="stylesheet" type="text/css" /> <link href="css/style.css" rel="stylesheet" type="text/css" /> <link href="css/jquery.bxslider.css" rel="stylesheet" /> <script src="js/jquery-1.10.2.min.js" type="text/javascript"></script> <script src="js/bootstrap.min.js" type="text/javascript"></script> <script type="text/javascript" src="js/hover-dropdown.js"></script> <script type="text/javascript" src="js/jquery.bxslider.js"></script> </head> <body> <div class="top hidden-xs"> <div class="container"> <div class="top-fl">Hi,歡迎來到<%=title %>!</div> <div class="top-fr">客服熱線:<%=mobile %></div> </div> </div> <header class="header-frontend"> <div class="navbar navbar-default navbar-static-top"> <div class="container"> <div class="navbar-header"> <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target=".navbar-collapse"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand" href="index.html"><img src="images/logo.png"/></a> </div> <div class="navbar-collapse collapse" style="height: 1px;"> <%@ include file="head.jsp" %> </div> </div> </div> </header> <!--圖片輪播--> <div id="carousel-example-generic" class="carousel slide" data-ride="carousel"> <ol class="carousel-indicators"> <li data-target="#carousel-example-generic" data-slide-to="0" class="active"></li> <li data-target="#carousel-example-generic" data-slide-to="1"></li> </ol> <div class="carousel-inner" role="listbox"> <div class="item active"> <img src="images/banner.png" alt=""> </div> <div class="item"> <img src="images/banner.png" alt=""> </div> </div> <!-- Controls --> <a class="left carousel-control" href="#carousel-example-generic" role="button" data-slide="prev"> <span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span> <span class="sr-only">Previous</span> </a> <a class="right carousel-control" href="#carousel-example-generic" role="button" data-slide="next"> <span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span> <span class="sr-only">Next</span> </a> </div> <div class="pst_bg"> <div class="pst"> 您當前的位置: <a href="about.jsp">關于我們</a>> <a href="about.jsp">公司簡介</a> </div> </div> <div class="scd clearfix"> <div class="scd_l"> <div class="s_name"> 關于我們 </div> <ul class="s_nav"> <c:forEach items="${ciList }" var="ci"> <li><a href="#${ci.ciNo300 }">${ci.ciTitle300 }</a></li> </c:forEach> </ul> </div> <div class="scd_r"> <c:forEach items="${ciList }" var="ci"> <div class="r_name" id="${ci.ciNo300 }"><span>${ci.ciTitle300 }</span></div> <div class="about"> <img src="${ci.ciImage300 }" width="850" height="449" /><br /> <p style="text-indent:2em; line-height: 30px;">${ci.ciContent300 }</p> </div> </c:forEach> </div> </div> <%@ include file="foot.jsp" %> </html> ``` ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看