最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Tomcat?8.5?+mysql?5.7+jdk1.8開(kāi)發(fā)JavaSE的金牌榜小項(xiàng)目

 更新時(shí)間:2022年05月06日 16:04:55   作者:不良使  
這篇文章主要介紹了Tomcat?8.5?+mysql?5.7+jdk1.8開(kāi)發(fā)JavaSE的金牌榜小項(xiàng)目,本文通過(guò)圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

環(huán)境:Tomcat 8.5 +mysql 5.7+jdk1.8

這個(gè)作業(yè)是我們Java課程的考核項(xiàng)目,想在把分享給大家。菜鳥(niǎo)在啟航

MVC+servlet+jsp+mysql

不廢話,下面就來(lái)看看這個(gè)項(xiàng)目

注冊(cè)登錄

注冊(cè)

package com.bjpowernode.javaweb.servlet;
import com.bjpowernode.javaweb.utils.DButil;
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 java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
@WebServlet(name = "register", value = "/register")
public class Register extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        doPost(request,response);
    }
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        String Myname = request.getParameter("registerName");
        String Mypassword =request.getParameter("registerPwd");
        response.setContentType("text/html");
        response.setCharacterEncoding("GBK");
        Connection conn = null;
        PreparedStatement stmt = null;
        try {
            //注冊(cè)驅(qū)動(dòng)(作用:告訴Java程序,即將要連接的哪個(gè)品牌的數(shù)據(jù)庫(kù))
            Class.forName("com.mysql.jdbc.Driver");
            //獲取連接(表示JVM的進(jìn)程和數(shù)據(jù)庫(kù)進(jìn)程之間的通道打開(kāi)了,這屬于進(jìn)程之間的通信,重量級(jí)的,使用完之后一定要關(guān)閉)
            String url = "jdbc:mysql://127.0.0.1:3306/book";
            String user = "root";
            String password = "123456";
            conn = DriverManager.getConnection(url,user,password);
            //獲取數(shù)據(jù)庫(kù)操作對(duì)象(專(zhuān)門(mén)(Statement專(zhuān)門(mén)執(zhí)行sql語(yǔ)句的)
            stmt = conn.prepareStatement("INSERT INTO user VALUES (?,?)");
            stmt.setString(1,Myname);
            stmt.setString(2,Mypassword);
            int count = stmt.executeUpdate();
            if(count==1){
                PrintWriter out = response.getWriter();
                out.println("<script>");
                out.println("alert('Registered successfully');");
                out.println("location.href='index.html'");//跳轉(zhuǎn)到用戶列表頁(yè)面
                out.println("</script>");
            }else{
                response.getWriter().print("注冊(cè)失敗");
            }
//            System.out.println(count == 1 ? "保存成功" : "保存失敗");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            DButil.close(conn,stmt,null);
        }
    }
}

就是通過(guò)鏈接數(shù)據(jù)庫(kù),往數(shù)據(jù)庫(kù)里面刷數(shù)據(jù)(添加數(shù)據(jù))

1、通過(guò)驅(qū)動(dòng)連接數(shù)據(jù)庫(kù)
2、往數(shù)據(jù)庫(kù)添加前端輸入的數(shù)據(jù),作為用戶的賬號(hào)密碼存儲(chǔ)
3、用戶注冊(cè)成功
4、斷開(kāi)與數(shù)據(jù)庫(kù)的連接

登錄

package com.bjpowernode.javaweb.servlet;
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 java.io.IOException;
import java.io.PrintWriter;
import java.util.Map;
@WebServlet(name = "Login", value = "/Login")
public class Login extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        PrintWriter out = response.getWriter();
        String username = request.getParameter("userName");
        String password = request.getParameter("userPwd");
        Map<String,String> map = Mysql.user();
        response.setContentType("text/html");
        response.setCharacterEncoding("GBK");
        if(map.containsKey(username)) {
            System.out.println("進(jìn)入if判斷循環(huán)了");  //TODO  進(jìn)入循環(huán)了
            String PWD = map.get(username);
            System.out.println(PWD);//TODO   有值
            if (PWD.equals("admin")) {
                if (password.equals("admin")){
                    out.println("<script>");
                    out.println("alert('Log in successfully');");
                    out.println("location.href='Take_01'");//跳轉(zhuǎn)到管理員列表頁(yè)面
                    out.println("</script>");
                }
                else{
                    out.println("<script>");
                    out.println("alert('Dear, the account password is incorrect, please input it again');");
                    out.println("location.href='index.html'");//跳轉(zhuǎn)到用戶列表頁(yè)面
                    out.println("</script>");
                }
            }
            else if(PWD.equals(password)){
                out.println("<script>");
                out.println("alert('Log in successfully');");
                out.println("location.href='Take_02'");//跳轉(zhuǎn)到用戶列表頁(yè)面
                out.println("</script>");
            }
            else{
                out.println("<script>");
                out.println("alert('Dear, the account password is incorrect, please input it again');");
                out.println("location.href='index.html'");//跳轉(zhuǎn)到用戶列表頁(yè)面
                out.println("</script>");
//                System.out.println("美猴王");
//                response.getWriter().println("齊天大圣");
            }
        }
        else{
            out.println("<script>");
            out.println("alert('This account is not registered, dear, please register first!?。?);");
            out.println("location.href='index.html'");//跳轉(zhuǎn)到用戶列表頁(yè)面
            out.println("</script>");
        }
    }
}

就是連接數(shù)據(jù)庫(kù),讀取數(shù)據(jù)庫(kù)里面的內(nèi)容,和前端輸入的做匹配,判斷賬號(hào)密碼是否正確。我這粗略的寫(xiě)了一個(gè)管理員,可以增刪改查后臺(tái)數(shù)據(jù)(但是 是寫(xiě)死的)

登陸注冊(cè)是對(duì)同一張表中數(shù)據(jù)驚醒操作。登錄是查詢(xún)操作,注冊(cè)是添加操作(俗稱(chēng)刷數(shù)據(jù))

1、通過(guò)驅(qū)動(dòng)連接數(shù)據(jù)庫(kù)
2、讀取表中的數(shù)據(jù)與前端賬號(hào)做對(duì)比
3、比對(duì)成功,登陸成功。比對(duì)失敗,登陸失敗。
4、斷開(kāi)與數(shù)據(jù)庫(kù)的連接

留言板模塊

留言板

這塊主要就是一個(gè)增加和查看,和前面的注冊(cè)登錄沒(méi)有太大的區(qū)別
首先留言板就是往表中插入數(shù)據(jù)(注冊(cè))。后面的滾動(dòng)的數(shù)據(jù)就是將后端取出來(lái)的數(shù)據(jù)展示在提前準(zhǔn)備好的js上面(樣式上面)

1、連接數(shù)據(jù)庫(kù)
2、往相應(yīng)的表中添加一些數(shù)據(jù)
3、讀取表中的數(shù)據(jù),展示在js上面(傳遞給js)
4、斷開(kāi)與數(shù)據(jù)庫(kù)的連接

熱搜榜

熱搜榜就更簡(jiǎn)單了,只要把后臺(tái)處理過(guò)存入數(shù)據(jù)庫(kù)的數(shù)據(jù)讀取出來(lái)顯示在js上即可。

這里用到的是結(jié)巴分詞,將評(píng)論區(qū)(也就是數(shù)據(jù)庫(kù))內(nèi)容通過(guò)結(jié)巴分詞,然后按照詞性,是人名就默認(rèn)初始值為1,其余刪掉,再遍歷分詞后的,統(tǒng)計(jì)每個(gè)人的頻率。

頻率(詞頻處理):
1、讀取數(shù)據(jù)庫(kù)評(píng)論區(qū)的內(nèi)容
2、結(jié)巴分詞,詞性辨析,剔除不符合規(guī)定的詞語(yǔ)
3、遍歷,計(jì)算每個(gè)人名的次數(shù)
4、將數(shù)據(jù)按照人名出現(xiàn)次數(shù)存入數(shù)據(jù)庫(kù)

詳細(xì)步驟和代碼見(jiàn)此篇文章 結(jié)巴分詞之熱評(píng)處理

1、連接數(shù)據(jù)庫(kù)
2、讀取之前處理好的數(shù)據(jù)(按照人名出現(xiàn)次數(shù)存入數(shù)據(jù)庫(kù))
3、傳遞給js
4、關(guān)閉與數(shù)據(jù)庫(kù)的連接

查詢(xún)&&搜索

查詢(xún):就是通過(guò)主鍵(或者某一個(gè)屬性)查詢(xún),查詢(xún)數(shù)據(jù)庫(kù)的數(shù)據(jù)展示在頁(yè)面上。
搜索:通過(guò)主鍵(或者某一個(gè)屬性)搜索,和查詢(xún)一個(gè)意思
select XX from 表明 where 屬性=XX;

package com.bjpowernode.javaweb.servlet;
import com.bipowernode.pojo.Olypic;
import com.bjpowernode.javaweb.utils.DButil;
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 java.io.IOException;
import java.io.PrintWriter;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
@WebServlet(name = "select",value = "/select")
public class Select extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        request.setCharacterEncoding("UTF-8");
        String name = request.getParameter("select_name");
        System.out.println(name);
        //連接數(shù)據(jù)庫(kù)
        Connection conn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        List<Olypic> olypicList=new ArrayList<>();
        try {
            Class.forName("com.mysql.jdbc.Driver");
            //獲取連接
            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mofa", "root", "123456");
            String sql = "select * from medals_table where Country=?";
            //編譯sql語(yǔ)句
            ps = conn.prepareStatement(sql);
            //賦值    第一個(gè)問(wèn)好賦值 country   國(guó)家名稱(chēng)
            ps.setString(1, name);
            //查詢(xún)返回結(jié)果集    這個(gè)結(jié)果集只有一條記錄  ,國(guó)家名稱(chēng)是主鍵  ,  故只有一條數(shù)據(jù)
            rs = ps.executeQuery();
            if (rs.next()) {
                String country = rs.getString("Country");
                String Glod = rs.getString("Glod_num");
                String Silver = rs.getString("Silver_num");
                String Copper = rs.getString("Copper_num");
                String id=rs.getString("id");
                String logo=rs.getString("logo");
                System.out.println("這是數(shù)據(jù)");
                System.out.println(country);
                System.out.println("Glod");
//                   String Sum=rs.getString("Sum");
                int G = Integer.valueOf(Glod).intValue();
                int S = Integer.valueOf(Silver).intValue();
                int C = Integer.valueOf(Copper).intValue();
                int A=G+S+C;
                String Sum=String.valueOf(A);
                //將數(shù)據(jù)封裝程Java對(duì)象
                Olypic olpic=new Olypic();
                olpic.setCountry(country);
                olpic.setGlod_num(Glod);
                olpic.setSilver_num(Silver);
                olpic.setCopper_num(Copper);
                olpic.setId(id);
                olpic.setSum(Sum);
                olpic.setLogo(logo);
                // TODO 將數(shù)據(jù)放入上面定義好的容器
                olypicList.add(olpic);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } finally {
            DButil.close(conn, ps, rs);
        }
        request.setAttribute("olypicList",olypicList);
        request.getRequestDispatcher("./take_03.jsp").forward(request,response);
    }
}

1、連接數(shù)據(jù)庫(kù)
2、查詢(xún)數(shù)據(jù)交給前端頁(yè)面
3、頁(yè)面展示出來(lái)
4、斷開(kāi)數(shù)據(jù)庫(kù)連接

看完用戶功能,下面我們來(lái)看看管理員功能。
登陸頁(yè)面(賬號(hào)密碼寫(xiě)死):
賬號(hào):admin
密碼:admin
時(shí)間倉(cāng)促,沒(méi)寫(xiě)的太好

增刪改查

就是通過(guò)對(duì)表的增刪改查來(lái)增加,刪除,修改,查詢(xún)表中的數(shù)據(jù)。
看到這不知道你們是否發(fā)現(xiàn),在寫(xiě)項(xiàng)目的時(shí)候功能往往都是一些增刪改查,或者是由增刪改查所組成。所以學(xué)號(hào)增刪改查你就可以進(jìn)行下面的學(xué)習(xí)了。所以每個(gè)項(xiàng)目一開(kāi)始往往都是增刪改查開(kāi)始的。

詳細(xì)代碼見(jiàn) Java/JavaWeb 連接數(shù)據(jù)庫(kù)完成增刪改查

完整項(xiàng)目見(jiàn):JavaSE項(xiàng)目

因?yàn)橛行┩瑢W(xué)找我要數(shù)據(jù)庫(kù)文件,就把他放入這里數(shù)據(jù)庫(kù)數(shù)據(jù)

到此這篇關(guān)于Tomcat 8.5 +mysql 5.7+jdk1.8開(kāi)發(fā)JavaSE的金牌榜小項(xiàng)目的文章就介紹到這了,更多相關(guān)Tomcat 8.5 mysql 5.7 jdk1.8內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java騷操作之CountDownLatch代碼詳解

    Java騷操作之CountDownLatch代碼詳解

    這篇文章主要介紹了Java騷操作之CountDownLatch代碼詳解,本文通過(guò)實(shí)例圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-02-02
  • Springboot中如何使用Redisson實(shí)現(xiàn)分布式鎖淺析

    Springboot中如何使用Redisson實(shí)現(xiàn)分布式鎖淺析

    redisson是redis的java客戶端程序,國(guó)內(nèi)外很多公司都有在用,下面這篇文章主要給大家介紹了關(guān)于Springboot中如何使用Redisson實(shí)現(xiàn)分布式鎖的相關(guān)資料,需要的朋友可以參考下
    2021-10-10
  • 詳解Java后端優(yōu)雅驗(yàn)證參數(shù)合法性

    詳解Java后端優(yōu)雅驗(yàn)證參數(shù)合法性

    這篇文章主要介紹了詳解Java后端優(yōu)雅驗(yàn)證參數(shù)合法性,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • Java實(shí)現(xiàn)隊(duì)列的三種方法集合

    Java實(shí)現(xiàn)隊(duì)列的三種方法集合

    這篇文章主要介紹了Java實(shí)現(xiàn)隊(duì)列的三種方法集合,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-09-09
  • SpringBoot深入淺出分析初始化器

    SpringBoot深入淺出分析初始化器

    這篇文章主要介紹了SpringBoot初始化器的分析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • 利用java生成二維碼工具類(lèi)示例代碼

    利用java生成二維碼工具類(lèi)示例代碼

    二維碼對(duì)現(xiàn)在的人們來(lái)說(shuō)再熟悉不過(guò)了,我們?cè)陂_(kāi)發(fā)的時(shí)候也經(jīng)常會(huì)用到二維碼,下面這篇文章主要給大家介紹了關(guān)于利用java生成二維碼工具類(lèi)的相關(guān)資料,文中給了詳細(xì)的示例代碼,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-09-09
  • Struts2 ActionContext 中的數(shù)據(jù)詳解

    Struts2 ActionContext 中的數(shù)據(jù)詳解

    這篇文章主要介紹了Struts2 ActionContext 中的數(shù)據(jù)詳解,需要的朋友可以參考下
    2016-07-07
  • 如何解決java.util.zip.ZipFile解壓后被java占用問(wèn)題

    如何解決java.util.zip.ZipFile解壓后被java占用問(wèn)題

    這篇文章主要介紹了如何解決java.util.zip.ZipFile解壓后被java占用問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Java面向?qū)ο笾^承、構(gòu)造方法、重寫(xiě)、重載

    Java面向?qū)ο笾^承、構(gòu)造方法、重寫(xiě)、重載

    本章具體介紹了什么是構(gòu)造方法、繼承、重寫(xiě)、重載以及創(chuàng)建方法,整篇文章用老司機(jī)和人類(lèi)來(lái)舉例,圖解穿插代碼案例,需要的朋友可以參考下
    2023-03-03
  • Java 常量池的實(shí)例詳解

    Java 常量池的實(shí)例詳解

    這篇文章主要介紹了Java 常量池的實(shí)例詳解的相關(guān)資料,Java的常量池中包含了類(lèi)、接口、方法、字符串等一系列常量值,需要的朋友可以參考下
    2017-09-09

最新評(píng)論

乐业县| 阳信县| 马山县| 上栗县| 清徐县| 灌阳县| 玉环县| 公主岭市| 华安县| 新和县| 上饶县| 新源县| 木里| 连州市| 皋兰县| 宁津县| 桐梓县| 周口市| 隆回县| 涡阳县| 凤翔县| 乌兰县| 姚安县| 开江县| 鄂尔多斯市| 庆阳市| 毕节市| 平阴县| 洪泽县| 宜兰市| 青川县| 前郭尔| 嵊泗县| 东城区| 临湘市| 城步| 遂昌县| 峨眉山市| 吉安市| 布尔津县| 曲阜市|