本文实例为大家分享了javaweb实现投票系统的具体代码,供大家参考,具体内容如下

这次给大家带来一个课堂基础作业,简单的javaweb投票系统。

当然也设计了添加投票人的接口,只是list页面没有直接导航过去。
如页面显示,可以增加和减少相应的票数。同时id是利用数据库该字段作为主键自增的。 name 和头像都是上传的,由mysql数据库存储照片名然后再自动寻找到。票数是直接由user_votes存储使用。

接下来带来关键代码。

//这是类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 {
        //连接数据库,获取所有的用户信息
        //创建一个用户对象
        List<User> userlist = new ArrayList<User>();
        try {
            //        1.加载驱动程序
//            DriverManager.registerDriver(new com.mysql.cj.jdbc.Driver());
            Class.forName("com.mysql.cj.jdbc.Driver");
//        2.创建数据库连接
            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.创建语句对象
            Statement stmt = conn.createStatement();
//        4.执行sql
//                被注释的代码是插入数据
            String  sql ="SELECT * from user_votes";
            //动态操作
            ResultSet rows = stmt.executeQuery(sql);
//        5.处理结果 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.关闭语句对象,数据库连接rows.close()关闭row对象集
            rows.close();
            stmt.clearBatch();
            conn.close();

        } catch (Exception e) {
            System.out.println("获取用户列表失败"   e.getMessage());
            e.printStackTrace();
        }

        //返回响应,以表格的方式显示所有用户
        resp.setContentType("text/html");
        resp.setCharacterEncoding("utf-8");
        PrintWriter out =resp.getWriter();
        out.println("<html><head><title>投票系统</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页面的展示代码。
同时以下是增减票数的代码。

//这个是增加票数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 {
        //解析表单数据,获取要添加的用户信
        //        解析请求
        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")));
//        连接数据库的操作

        try {
            //        1.加载驱动程序
            String driver = "com.mysql.cj.jdbc.Driver";
            Class.forName(driver).newInstance();
//        2.创建数据库连接
            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.创建语句对象
            //静态的mysql操作语句
//            Statement stmt = conn.createStatement();
//        4.执行sql
            String sql = "UPDATE user_votes SET votes = ? WHERE id = ?";
            PreparedStatement pstmt = conn.prepareStatement(sql);
            //动态操作
            int uservotes = user.getVotes() 1;
            pstmt.setInt(1,uservotes);
            pstmt.setInt(2,user.getId());
            int rows = pstmt.executeUpdate();
//        5.处理结果
            if(rows == 1){
                System.out.println("add成功为:" uservotes);
            }
            else {
                System.out.println("add失败!");
            }
//        6.关闭语句对象,数据库连接
            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>");

        //跳转到用户列表界面
        resp.sendRedirect("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.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 {
        //解析表单数据,获取要添加的用户信
        //        解析请求
        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")));
//        连接数据库的操作

        try {
            //        1.加载驱动程序
            String driver = "com.mysql.cj.jdbc.Driver";
            Class.forName(driver).newInstance();
//        2.创建数据库连接
            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.创建语句对象
            //静态的mysql操作语句
//            Statement stmt = conn.createStatement();
//        4.执行sql
            String sql = "DELETE FROM user_votes WHERE id = ?";
            PreparedStatement pstmt = conn.prepareStatement(sql);
            //动态操作
            pstmt.setInt(1,user.getId());
            int rows = pstmt.executeUpdate();
//        5.处理结果
            if(rows == 1){
                System.out.println("delete成功为:" user.getId());
            }
            else {
                System.out.println("delete失败!");
            }
//        6.关闭语句对象,数据库连接
            pstmt.clearBatch();
            conn.close();

        } catch (Exception e) {
            System.out.println("添加用户失败" e.getMessage());
            e.printStackTrace();
        };
        //跳转到用户列表界面
        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 {
        //解析表单数据,获取要添加的用户信
        //        解析请求
        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);
//        连接数据库的操作

        try {
            //        1.加载驱动程序
            String driver = "com.mysql.cj.jdbc.Driver";
            Class.forName(driver).newInstance();
//        2.创建数据库连接
            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.创建语句对象
            //静态的mysql操作语句
//            Statement stmt = conn.createStatement();
//        4.执行sql
            String sql = "INSERT INTO user_votes(user_name,url,votes) VALUES(?,?,?)\n";
            PreparedStatement pstmt = conn.prepareStatement(sql);
            //动态操作
            pstmt.setString(1,user.getName());
            pstmt.setString(2,user.getUrl());
            pstmt.setInt(3,user.getVotes());
            int rows = pstmt.executeUpdate();
//        5.处理结果
            if(rows == 1){
                System.out.println("add成功为:" user.getName());
            }
            else {
                System.out.println("add失败!");
            }
//        6.关闭语句对象,数据库连接
            pstmt.clearBatch();
            conn.close();

        } catch (Exception e) {
            System.out.println("添加用户失败" e.getMessage());
            e.printStackTrace();
        };
        //跳转到用户列表界面
        resp.sendRedirect("list");


    }
}

该项目没有使用mvc项目结构,就是因为比较简单,因此如果有刚刚学习到这里的可以来看看,参考学习

附上项目目录图,其他的就没有过多的去介绍了,毕竟比较简单。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持Devmax。

javaweb实现投票系统的更多相关文章

  1. JavaWeb实现注册用户名检测

    这篇文章主要为大家详细介绍了JavaWeb实现注册用户名检测,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  2. 基于javaweb+jsp实现企业财务记账管理系统

    这篇文章主要介绍了基于javaweb+jsp实现的企业财务记账管理系统,文中的示例代码对我们学习jsp编程有一定的帮助,感兴趣的小伙伴可以跟随小编一起学习一下

  3. java web实现简单登录注册功能全过程(eclipse,mysql)

    前期我们学习了javaweb项目用JDBC连接数据库,还有数据库的建表功能,下面这篇文章主要给大家介绍了关于java web实现简单登录注册功能的相关资料,需要的朋友可以参考下

  4. Javaweb动态开发最重要的Servlet详解

    动态web的核心是Servlet,由tomcat解析并执行,本质是Java中的一个类(面向对象)这个类的功能十分强大几乎可以完成全部功能,在Java规范中只有Servlet实现类实例化的对象才能被浏览器访问,所以掌握Servlet具有重要意义

  5. Javaweb会话跟踪技术Cookie和Session的具体使用

    本文主要介绍了Javaweb会话跟踪技术Cookie&Session的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  6. JavaWeb Servlet生命周期细枝末节处深究

    Servlet指在服务器端执行的一段Java代码,可以接收用户的请求和返回给用户响应结果,下面这篇文章主要给大家介绍了关于JavaWeb.servlet生命周期的相关资料,需要的朋友可以参考下

  7. JavaWeb三大组件之一的Filter详解

    本篇文章主要介绍了JavaWeb三大组件之中的Filter过滤器详解,实例分析了JavaWeb之Filter过滤器的使用技巧,非常具有实用价值,需要的朋友可以参考下

  8. javaweb实现文件上传功能

    这篇文章主要为大家详细介绍了javaweb实现文件上传功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  9. javaWeb连接数据库实现简单登陆注册功能的全过程

    初学javaWeb,老师留下一小作业,用JAVA实现与服务器端交互,实现登录和注册功能,下面这篇文章主要给大家介绍了关于javaWeb连接数据库实现简单登陆注册功能的相关资料,需要的朋友可以参考下

  10. javaWeb实现简单文件上传

    这篇文章主要为大家详细介绍了JAVAWeb实现简单文件上传,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

随机推荐

  1. 基于EJB技术的商务预订系统的开发

    用EJB结构开发的应用程序是可伸缩的、事务型的、多用户安全的。总的来说,EJB是一个组件事务监控的标准服务器端的组件模型。基于EJB技术的系统结构模型EJB结构是一个服务端组件结构,是一个层次性结构,其结构模型如图1所示。图2:商务预订系统的构架EntityBean是为了现实世界的对象建造的模型,这些对象通常是数据库的一些持久记录。

  2. Java利用POI实现导入导出Excel表格

    这篇文章主要为大家详细介绍了Java利用POI实现导入导出Excel表格,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  3. Mybatis分页插件PageHelper手写实现示例

    这篇文章主要为大家介绍了Mybatis分页插件PageHelper手写实现示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  4. (jsp/html)网页上嵌入播放器(常用播放器代码整理)

    网页上嵌入播放器,只要在HTML上添加以上代码就OK了,下面整理了一些常用的播放器代码,总有一款适合你,感兴趣的朋友可以参考下哈,希望对你有所帮助

  5. Java 阻塞队列BlockingQueue详解

    本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景,通过实例代码介绍了Java 阻塞队列BlockingQueue的相关知识,需要的朋友可以参考下

  6. Java异常Exception详细讲解

    异常就是不正常,比如当我们身体出现了异常我们会根据身体情况选择喝开水、吃药、看病、等 异常处理方法。 java异常处理机制是我们java语言使用异常处理机制为程序提供了错误处理的能力,程序出现的错误,程序可以安全的退出,以保证程序正常的运行等

  7. Java Bean 作用域及它的几种类型介绍

    这篇文章主要介绍了Java Bean作用域及它的几种类型介绍,Spring框架作为一个管理Bean的IoC容器,那么Bean自然是Spring中的重要资源了,那Bean的作用域又是什么,接下来我们一起进入文章详细学习吧

  8. 面试突击之跨域问题的解决方案详解

    跨域问题本质是浏览器的一种保护机制,它的初衷是为了保证用户的安全,防止恶意网站窃取数据。那怎么解决这个问题呢?接下来我们一起来看

  9. Mybatis-Plus接口BaseMapper与Services使用详解

    这篇文章主要为大家介绍了Mybatis-Plus接口BaseMapper与Services使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  10. mybatis-plus雪花算法增强idworker的实现

    今天聊聊在mybatis-plus中引入分布式ID生成框架idworker,进一步增强实现生成分布式唯一ID,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

返回
顶部