欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

javaweb實(shí)現(xiàn)投票系統(tǒng)

 更新時間:2022年09月16日 11:00:14   作者:Fonte·  
這篇文章主要為大家詳細(xì)介紹了javaweb實(shí)現(xiàn)投票系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了javaweb實(shí)現(xiàn)投票系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下

這次給大家?guī)硪粋€課堂基礎(chǔ)作業(yè),簡單的javaweb投票系統(tǒng)。

當(dāng)然也設(shè)計了添加投票人的接口,只是list頁面沒有直接導(dǎo)航過去。
如頁面顯示,可以增加和減少相應(yīng)的票數(shù)。同時id是利用數(shù)據(jù)庫該字段作為主鍵自增的。 name 和頭像都是上傳的,由mysql數(shù)據(jù)庫存儲照片名然后再自動尋找到。票數(shù)是直接由user_votes存儲使用。

接下來帶來關(guān)鍵代碼。

//這是類User_list
package com.example.user_votes;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Driver;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

@WebServlet("/list")
public class User_list extends HelloServlet{
? ? @Override
? ? protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
? ? ? ? //連接數(shù)據(jù)庫,獲取所有的用戶信息
? ? ? ? //創(chuàng)建一個用戶對象
? ? ? ? List<User> userlist = new ArrayList<User>();
? ? ? ? try {
? ? ? ? ? ? // ? ? ? ?1.加載驅(qū)動程序
// ? ? ? ? ? ?DriverManager.registerDriver(new com.mysql.cj.jdbc.Driver());
? ? ? ? ? ? Class.forName("com.mysql.cj.jdbc.Driver");
// ? ? ? ?2.創(chuàng)建數(shù)據(jù)庫連接
? ? ? ? ? ? String url = "jdbc:mysql://localhost:3306/java_test?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC";
? ? ? ? ? ? String jdbcuser = "root";
? ? ? ? ? ? String jdbcpwd = "500400";
? ? ? ? ? ? Connection conn = DriverManager.getConnection(url, jdbcuser, jdbcpwd);
// ? ? ? ?3.創(chuàng)建語句對象
? ? ? ? ? ? Statement stmt = conn.createStatement();
// ? ? ? ?4.執(zhí)行sql
// ? ? ? ? ? ? ? ?被注釋的代碼是插入數(shù)據(jù)
? ? ? ? ? ? String ?sql ="SELECT * from user_votes";
? ? ? ? ? ? //動態(tài)操作
? ? ? ? ? ? ResultSet rows = stmt.executeQuery(sql);
// ? ? ? ?5.處理結(jié)果 rows.next() 用于遍歷rows對象集
? ? ? ? ? ? while(rows.next()){
? ? ? ? ? ? ? ? User user = new User();
? ? ? ? ? ? ? ? user.setId(rows.getInt("id"));
? ? ? ? ? ? ? ? user.setName(rows.getString("user_name"));
? ? ? ? ? ? ? ? user.setUrl(rows.getString("url"));
? ? ? ? ? ? ? ? user.setVotes(Integer.parseInt(rows.getString("votes")));
? ? ? ? ? ? ? ? userlist.add(user);

? ? ? ? ? ? }
// ? ? ? ?6.關(guān)閉語句對象,數(shù)據(jù)庫連接rows.close()關(guān)閉row對象集
? ? ? ? ? ? rows.close();
? ? ? ? ? ? stmt.clearBatch();
? ? ? ? ? ? conn.close();

? ? ? ? } catch (Exception e) {
? ? ? ? ? ? System.out.println("獲取用戶列表失敗" + e.getMessage());
? ? ? ? ? ? e.printStackTrace();
? ? ? ? }

? ? ? ? //返回響應(yīng),以表格的方式顯示所有用戶
? ? ? ? resp.setContentType("text/html");
? ? ? ? resp.setCharacterEncoding("utf-8");
? ? ? ? PrintWriter out =resp.getWriter();
? ? ? ? out.println("<html><head><title>投票系統(tǒng)</title></head><body>");
? ? ? ? if (userlist.size()>0){
? ? ? ? ? ? out.println("<table>");
? ? ? ? ? ? out.println("<caption></caption>");
? ? ? ? ? ? out.println("<tr>");
? ? ? ? ? ? out.println("<th>id</th>");
? ? ? ? ? ? out.println("<th style=\"\n" +
? ? ? ? ? ? ? ? ? ? " padding-left: 10px; text-align: left;\n" +
? ? ? ? ? ? ? ? ? ? "\">Name</th>");
? ? ? ? ? ? out.println("<th>照片</th>");
? ? ? ? ? ? out.println("<th>votes</th>");
? ? ? ? ? ? out.println("<th>操作</th>");
? ? ? ? ? ? out.println("</tr>");
? ? ? ? ? ? for (User user:userlist){
? ? ? ? ? ? ? ? out.println("<tr>");
? ? ? ? ? ? ? ? out.println("<td>"+user.getId()+"</td>");
? ? ? ? ? ? ? ? out.println("<td>"+"&nbsp&nbsp&nbsp"+user.getName()+"</td>");
? ? ? ? ? ? ? ? out.println("<td><img width = '30px' height = '30px' src="+"/photo/"+user.getUrl()+".jpg"+"></td>");
? ? ? ? ? ? ? ? out.println("<td>"+"&nbsp&nbsp&nbsp"+user.getVotes()+"</td>");
? ? ? ? ? ? ? ? out.println("<td><a href=add?id="+user.getId()+"&votes="+user.getVotes()+">add</a> <a href=delete?id="+user.getId()+"&votes="+user.getVotes()+">刪除</a></td>");
? ? ? ? ? ? ? ? out.println("</tr>");
? ? ? ? ? ? }
? ? ? ? ? ? out.println("</table>");
? ? ? ? ? ? out.println("");
? ? ? ? }else{
? ? ? ? ? ? out.println("暫無用戶");
? ? ? ? }
? ? ? ? out.println();

? ? ? ? out.println("</body></html>

? ? }?

}

這一段是用于list頁面的展示代碼。
同時以下是增減票數(shù)的代碼。

//這個是增加票數(shù)add
package com.example.user_votes;

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.*;

@WebServlet("/add")
public class AddUserVotes extends HttpServlet {
? ? @Override
? ? protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
? ? ? ? //解析表單數(shù)據(jù),獲取要添加的用戶信
? ? ? ? // ? ? ? ?解析請求
? ? ? ? req.setCharacterEncoding("utf-8");
? ? ? ? PrintWriter out = resp.getWriter();
? ? ? ? //使用自己寫的User類
? ? ? ? User user = new User();
? ? ? ? user.setId(Integer.parseInt(req.getParameter("id")));
? ? ? ? user.setVotes(Integer.parseInt(req.getParameter("votes")));
// ? ? ? ?連接數(shù)據(jù)庫的操作

? ? ? ? try {
? ? ? ? ? ? // ? ? ? ?1.加載驅(qū)動程序
? ? ? ? ? ? String driver = "com.mysql.cj.jdbc.Driver";
? ? ? ? ? ? Class.forName(driver).newInstance();
// ? ? ? ?2.創(chuàng)建數(shù)據(jù)庫連接
? ? ? ? ? ? String url = "jdbc:mysql://localhost:3306/java_test?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC";
? ? ? ? ? ? String jdbcuser = "root";
? ? ? ? ? ? String jdbcpwd = "500400";
? ? ? ? ? ? Connection conn = DriverManager.getConnection(url,jdbcuser,jdbcpwd);

// ? ? ? ?3.創(chuàng)建語句對象
? ? ? ? ? ? //靜態(tài)的mysql操作語句
// ? ? ? ? ? ?Statement stmt = conn.createStatement();
// ? ? ? ?4.執(zhí)行sql
? ? ? ? ? ? String sql = "UPDATE user_votes SET votes = ? WHERE id = ?";
? ? ? ? ? ? PreparedStatement pstmt = conn.prepareStatement(sql);
? ? ? ? ? ? //動態(tài)操作
? ? ? ? ? ? int uservotes = user.getVotes()+1;
? ? ? ? ? ? pstmt.setInt(1,uservotes);
? ? ? ? ? ? pstmt.setInt(2,user.getId());
? ? ? ? ? ? int rows = pstmt.executeUpdate();
// ? ? ? ?5.處理結(jié)果
? ? ? ? ? ? if(rows == 1){
? ? ? ? ? ? ? ? System.out.println("add成功為:"+uservotes);
? ? ? ? ? ? }
? ? ? ? ? ? else {
? ? ? ? ? ? ? ? System.out.println("add失??!");
? ? ? ? ? ? }
// ? ? ? ?6.關(guān)閉語句對象,數(shù)據(jù)庫連接
? ? ? ? ? ? pstmt.clearBatch();
? ? ? ? ? ? conn.close();

? ? ? ? } catch (Exception e) {
? ? ? ? ? ? System.out.println("添加用戶失敗"+e.getMessage());
? ? ? ? ? ? e.printStackTrace();
? ? ? ? };
? ? ? ? resp.setContentType("text/html;charset=UTF-8");
? ? ? ? resp.getWriter().println("<script>alert('投票成功!');window.location.href='list';</script>");

? ? ? ? //跳轉(zhuǎn)到用戶列表界面
? ? ? ? resp.sendRedirect("list");

? ? }
}

減少票數(shù)

package com.example.user_votes;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
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;
@WebServlet("/delete")
public class DeleteUserVotes extends HelloServlet{
? ? @Override
? ? protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
? ? ? ? //解析表單數(shù)據(jù),獲取要添加的用戶信
? ? ? ? // ? ? ? ?解析請求
? ? ? ? req.setCharacterEncoding("utf-8");
? ? ? ? PrintWriter out = resp.getWriter();
? ? ? ? //使用自己寫的User類
? ? ? ? User user = new User();
? ? ? ? user.setId(Integer.parseInt(req.getParameter("id")));
? ? ? ? user.setVotes(Integer.parseInt(req.getParameter("votes")));
// ? ? ? ?連接數(shù)據(jù)庫的操作

? ? ? ? try {
? ? ? ? ? ? // ? ? ? ?1.加載驅(qū)動程序
? ? ? ? ? ? String driver = "com.mysql.cj.jdbc.Driver";
? ? ? ? ? ? Class.forName(driver).newInstance();
// ? ? ? ?2.創(chuàng)建數(shù)據(jù)庫連接
? ? ? ? ? ? String url = "jdbc:mysql://localhost:3306/java_test?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC";
? ? ? ? ? ? String jdbcuser = "root";
? ? ? ? ? ? String jdbcpwd = "500400";
? ? ? ? ? ? Connection conn = DriverManager.getConnection(url,jdbcuser,jdbcpwd);

// ? ? ? ?3.創(chuàng)建語句對象
? ? ? ? ? ? //靜態(tài)的mysql操作語句
// ? ? ? ? ? ?Statement stmt = conn.createStatement();
// ? ? ? ?4.執(zhí)行sql
? ? ? ? ? ? String sql = "DELETE FROM user_votes WHERE id = ?";
? ? ? ? ? ? PreparedStatement pstmt = conn.prepareStatement(sql);
? ? ? ? ? ? //動態(tài)操作
? ? ? ? ? ? pstmt.setInt(1,user.getId());
? ? ? ? ? ? int rows = pstmt.executeUpdate();
// ? ? ? ?5.處理結(jié)果
? ? ? ? ? ? if(rows == 1){
? ? ? ? ? ? ? ? System.out.println("delete成功為:"+user.getId());
? ? ? ? ? ? }
? ? ? ? ? ? else {
? ? ? ? ? ? ? ? System.out.println("delete失??!");
? ? ? ? ? ? }
// ? ? ? ?6.關(guān)閉語句對象,數(shù)據(jù)庫連接
? ? ? ? ? ? pstmt.clearBatch();
? ? ? ? ? ? conn.close();

? ? ? ? } catch (Exception e) {
? ? ? ? ? ? System.out.println("添加用戶失敗"+e.getMessage());
? ? ? ? ? ? e.printStackTrace();
? ? ? ? };
? ? ? ? //跳轉(zhuǎn)到用戶列表界面
? ? ? ? resp.sendRedirect("list");
? ? }
}

添加參與投票的

package com.example.user_votes;

import javax.servlet.ServletException;
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;

public class AddUser extends HelloServlet{
? ? @Override
? ? protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
? ? ? ? //解析表單數(shù)據(jù),獲取要添加的用戶信
? ? ? ? // ? ? ? ?解析請求
? ? ? ? req.setCharacterEncoding("utf-8");
? ? ? ? PrintWriter out = resp.getWriter();
? ? ? ? //使用自己寫的User類
? ? ? ? User user = new User();
? ? ? ? user.setName(req.getParameter("name"));
? ? ? ? user.setUrl(req.getParameter("url"));
? ? ? ? user.setVotes(0);
// ? ? ? ?連接數(shù)據(jù)庫的操作

? ? ? ? try {
? ? ? ? ? ? // ? ? ? ?1.加載驅(qū)動程序
? ? ? ? ? ? String driver = "com.mysql.cj.jdbc.Driver";
? ? ? ? ? ? Class.forName(driver).newInstance();
// ? ? ? ?2.創(chuàng)建數(shù)據(jù)庫連接
? ? ? ? ? ? String url = "jdbc:mysql://localhost:3306/java_test?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC";
? ? ? ? ? ? String jdbcuser = "root";
? ? ? ? ? ? String jdbcpwd = "500400";
? ? ? ? ? ? Connection conn = DriverManager.getConnection(url,jdbcuser,jdbcpwd);

// ? ? ? ?3.創(chuàng)建語句對象
? ? ? ? ? ? //靜態(tài)的mysql操作語句
// ? ? ? ? ? ?Statement stmt = conn.createStatement();
// ? ? ? ?4.執(zhí)行sql
? ? ? ? ? ? String sql = "INSERT INTO user_votes(user_name,url,votes) VALUES(?,?,?)\n";
? ? ? ? ? ? PreparedStatement pstmt = conn.prepareStatement(sql);
? ? ? ? ? ? //動態(tài)操作
? ? ? ? ? ? pstmt.setString(1,user.getName());
? ? ? ? ? ? pstmt.setString(2,user.getUrl());
? ? ? ? ? ? pstmt.setInt(3,user.getVotes());
? ? ? ? ? ? int rows = pstmt.executeUpdate();
// ? ? ? ?5.處理結(jié)果
? ? ? ? ? ? if(rows == 1){
? ? ? ? ? ? ? ? System.out.println("add成功為:"+user.getName());
? ? ? ? ? ? }
? ? ? ? ? ? else {
? ? ? ? ? ? ? ? System.out.println("add失敗!");
? ? ? ? ? ? }
// ? ? ? ?6.關(guān)閉語句對象,數(shù)據(jù)庫連接
? ? ? ? ? ? pstmt.clearBatch();
? ? ? ? ? ? conn.close();

? ? ? ? } catch (Exception e) {
? ? ? ? ? ? System.out.println("添加用戶失敗"+e.getMessage());
? ? ? ? ? ? e.printStackTrace();
? ? ? ? };
? ? ? ? //跳轉(zhuǎn)到用戶列表界面
? ? ? ? resp.sendRedirect("list");


? ? }
}

該項(xiàng)目沒有使用mvc項(xiàng)目結(jié)構(gòu),就是因?yàn)楸容^簡單,因此如果有剛剛學(xué)習(xí)到這里的可以來看看,參考學(xué)習(xí)

附上項(xiàng)目目錄圖,其他的就沒有過多的去介紹了,畢竟比較簡單。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解基于redis實(shí)現(xiàn)分布式鎖

    詳解基于redis實(shí)現(xiàn)分布式鎖

    系統(tǒng)的不斷擴(kuò)大,分布式鎖是最基本的保障。與單機(jī)的多線程不一樣的是,分布式跨多個機(jī)器。線程的共享變量無法跨機(jī)器。本文將介紹基于redis實(shí)現(xiàn)分布式鎖。
    2021-06-06
  • Java中線程上下文類加載器超詳細(xì)講解使用

    Java中線程上下文類加載器超詳細(xì)講解使用

    這篇文章主要介紹了Java中線程上下文類加載器,類加載器負(fù)責(zé)讀取Java字節(jié)代碼,并轉(zhuǎn)換成java.lang.Class類的一個實(shí)例的代碼模塊。本文主要和大家聊聊JVM類加載器ClassLoader的使用,需要的可以了解一下
    2022-12-12
  • Java的logback自定義日志脫敏組件詳解

    Java的logback自定義日志脫敏組件詳解

    這篇文章主要介紹了Java的logback自定義日志脫敏組件詳解,一個項(xiàng)目在書寫了很多打印日志的代碼,但是后面有了脫敏需求,如果我們?nèi)ナ謩痈膭哟a,會花費(fèi)大量時間,如果引入本組件,完成配置即可輕松完成脫敏,需要的朋友可以參考下
    2023-11-11
  • 在eclipse導(dǎo)入Java的jar包的方法JDBC(圖文說明)

    在eclipse導(dǎo)入Java的jar包的方法JDBC(圖文說明)

    這篇文章主要介紹了在eclipse導(dǎo)入Java 的jar包的方法 JDBC 圖文說明 ,需要的朋友可以參考下
    2015-09-09
  • FF瀏覽器和IE下載文件亂碼問題的解決方法

    FF瀏覽器和IE下載文件亂碼問題的解決方法

    大家可以看到如下截圖,下載文件出現(xiàn)了亂碼,在其他瀏覽器(IE,Chrome....)上沒有出現(xiàn)這個問題,解決方法很簡單,遇到類似問題的朋友可以了解下哦
    2013-08-08
  • Java線程池隊(duì)列LinkedBlockingDeque

    Java線程池隊(duì)列LinkedBlockingDeque

    這篇文章主要為大家介紹了Java線程池隊(duì)列LinkedBlockingDeque示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • Java中生產(chǎn)者消費(fèi)者問題總結(jié)

    Java中生產(chǎn)者消費(fèi)者問題總結(jié)

    這篇文章主要介紹了Java中生產(chǎn)者消費(fèi)者問題總結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 詳解rabbitmq使用springboot實(shí)現(xiàn)fanout模式

    詳解rabbitmq使用springboot實(shí)現(xiàn)fanout模式

    這篇文章主要介紹了rabbitmq使用springboot實(shí)現(xiàn)fanout模式,Fanout特點(diǎn)是發(fā)布與訂閱模式,是一種廣播機(jī)制,它是沒有路由key的模式,需要的朋友可以參考下
    2023-07-07
  • java實(shí)現(xiàn)可視化日歷

    java實(shí)現(xiàn)可視化日歷

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)可視化日歷,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • Spring使用三級緩存解決循環(huán)依賴的問題

    Spring使用三級緩存解決循環(huán)依賴的問題

    本文給大家分享Spring使用三級緩存解決循環(huán)依賴的問題,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2021-06-06

最新評論