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{@Overrideprotected 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>"+"   "+user.getName()+"</td>");out.println("<td><img width = '30px' height = '30px' src="+"/photo/"+user.getUrl()+".jpg"+"></td>");out.println("<td>"+"   "+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 {@Overrideprotected 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.执行sqlString 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{@Overrideprotected 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.执行sqlString 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{@Overrideprotected 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.执行sqlString 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项目结构,就是因为比较简单,因此如果有刚刚学习到这里的可以来看看,参考学习,附上项目目录图,其他的就没有过多的去介绍了,毕竟比较简单。
有疑问可以随时留言问我噢,欢迎大家学习交流。
javaweb简单小项目-投票系统相关推荐
- android简单小项目实例_自学(系统学)Python了那么久, 想就业? 几个简单小项目让你通过面试!...
本人从事Python开发多年,精通爬虫,web,熟悉其他方向,好多小伙伴私聊我说,我看了你的文章后,我学习了,但是对于项目这块还是不是很熟悉,如何快速掌握几个小项目,以及几个可以面试的项目.欢迎大家订 ...
- 微信小程序投票系统制作过程详解
目录 引言: 一.环境准备 二.页面设计 三.数据管理 四.功能实现 五.测试和发布 结语: 引言: 微信小程序是一种快速.便捷的应用开发方式,而投票系统则是小程序开发中常见且有趣的项目之一.在本文中 ...
- php一个简单的投票系统_一个简单的PHP投票系统
一个简单的PHP投票系统 分享到: 作者:转接卡 建立2个表,一个用来显示当前主题,一个存放历史结果. 当前主题表结构:选项(包括主题),票数 历史结果表结构:id,主题名,关点,投票开始时间,投票结 ...
- linux系统编程 小项目,linux系统编程小项目.doc
linux系统编程小项目.doc 一.项目概述简单智能远程监控功能服务器端1.服务器端利用随机数模拟向串口读取传感数据,需要模拟的传感数据要求有温度.湿度.光照.室内噪音度等等.2.服务器要求在数据保 ...
- springboot-vue简单小项目搭建
springboot-vue (前端VUE部分) 简单搭建一个基于springboot+vue的小项目(前端VUE部分) 首先,将整个项目下载下来,然后在项目文件夹里面执行命令: npm instal ...
- 【java简单小项目】勇者斗魔王小游戏
项目的github链接 简要介绍 该项目主要是在控制台实现了回合制的勇者斗魔王的小游戏,涉及到的主要知识为java的类和对象,采用了三层模式设计,可供java初学者学习简单小型项目的架构设计,和具体的 ...
- java小项目影院系统
java小项目,影院管理系统 http://download.csdn.net/detail/github_32658299/9632276 下面是两个关键的类 1.这是电影院测试类,用来读取用户输入 ...
- 简单的Web投票系统,通过数据库的内部验证实现防止刷票功能
需求分析 (1)制作一个投票系统,让学生给自己喜爱的老师投票.该系统由投票界面组成,系统运行,投票界面出现,标题为"欢迎给老师投票":在界面上有一个表格,显示了各位老师的编号.姓名 ...
- 基于stm32的简单小项目_适合小白做的创业3个小项目,简单上手
现在每一位为了能够让自己和家人过上更好地生活,都会不满足于现状的单方面地工作,想要通过创业来改变如今的局面,这种想法也是好的,但是我们需要知道想要创业,并不是那么的容易,需要有一定的技能和管理水平才能 ...
最新文章
- 跨网段实现内网互通_【供暖站组网】冠航SD-LAN助力河北石家庄市30个供暖站异地组网实现内网互联互通...
- 不可思议的纯 CSS 实现鼠标跟随效果
- png文件头_文件上传总结
- CSS的子选择器与后代选择器的区别
- java操作mongodb(连接池)(转)
- which 命令
- 惩罚女人的最有效方法!
- 如何制作毛玻璃效果?
- Redis基础(八)——集群
- BZOJ3529: [Sdoi2014]数表(莫比乌斯反演,离线)
- 一种虚拟现实技术用计算机,虚拟现实技术有哪几大分类?
- MongoDB+MongoVUE安装及入门
- 微信公众号开发文档参考
- 对面板数据模型中的一些理解
- 解决Aid Learning无法联网问题
- 润乾报表V4在weblogic下部署找不到授权文件的解决方法
- Mac电脑蓝牙连接出问题了,如何重置Mac的蓝牙模块
- AndroidStudio输入生日计算星座
- POJ1061 青蛙的约会
- c51单片机音乐门铃C语言程序,基于51单片机的无线音乐门铃设计