用Servlet结合c3p0连接池等写一个简单的注册登录

2023-10-27

首先,给一张截图:

在这里插入图片描述在这里插入图片描述
上面图是我的整体内容

1、先进入工具类
在这里插入图片描述
代码如下:package com.qf.util;

import javax.sql.DataSource;

import com.mchange.v2.c3p0.ComboPooledDataSource;

public class Util {
public static DataSource ds = null;

static{
	ds = new ComboPooledDataSource("mypool");
}
public static DataSource getConnection(){
	return ds;
}

}

2、在这里插入图片描述
package com.qf.bean;

public class Bean {

private int id;
private String username;
private String password;

public Bean() {
	super();
	// TODO Auto-generated constructor stub
}

public Bean(int id, String username, String password) {
	super();
	this.id = id;
	this.username = username;
	this.password = password;
}

public int getId() {
	return id;
}
public void setId(int id) {
	this.id = id;
}
public String getUsername() {
	return username;
}
public void setUsername(String username) {
	this.username = username;
}
public String getPassword() {
	return password;
}
public void setPassword(String password) {
	this.password = password;
}

}

3、在这里插入图片描述
package com.qf.del;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.qf.jdbcserver.Server;

/**

  • Servlet implementation class Del
    */
    public class Del extends HttpServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    Server server = new Server();
    RequestDispatcher dispatcher = null;
    int row = 0;
    int id = Integer.valueOf(request.getParameter(“id”)).intValue();
    try {
    row = server.DelUser(id);
    if(row != 0){
    dispatcher = request.getRequestDispatcher("/del.html");
    }else{
    dispatcher = request.getRequestDispatcher("/error");
    }
    dispatcher.forward(request, response);
    } catch (Exception e) {
    // TODO: handle exception
    e.printStackTrace();
    }

    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    doGet(request, response);
    }

}

4、在这里插入图片描述

package com.qf.jdbcserver;

import java.sql.SQLException;
import java.util.List;

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;

import com.qf.bean.Bean;
import com.qf.util.Util;
import com.sun.org.apache.bcel.internal.generic.NEW;

public class Server {
private QueryRunner qr = new QueryRunner(Util.getConnection());
// private final String TABLE_NAME = “user”;
private int row = 0;
public Bean Login(String username,String password) throws SQLException{
Bean user = null;
String sql = "select * from user where username = ? and password = ? ";
user = qr.query(sql,new BeanHandler(Bean.class),username,password);
return user;
}

public int Insert(Object username,Object password) throws SQLException{
	String sql = "insert into user values(null,?,?)";
	 row =qr.update(sql, username,password);
	return row;
}

public int DelUser(int id) throws SQLException{
	String sql = "delete from user where id =?";
	 row = qr.update(sql, id);
	 return row;
}
//改:根据id改密码
public int UpdateUser(int id,String username,String password) throws SQLException{
	
		String sql ="update user set username= ? , password = ? where id = ?";
		row = qr.update(sql,username, password,id);
		
		return row;
	}
public List<Bean> SelectAll() throws SQLException{
	String sql = "select * from user";
	List<Bean> beans = qr.query(sql, new BeanListHandler<Bean>(Bean.class));
	return beans;
}

}

5、
在这里插入图片描述
package com.qf.register;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.qf.bean.Bean;
import com.qf.jdbcserver.Server;

/**

  • Servlet implementation class RegisterServlet
    */
    public class RegisterServlet extends HttpServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    request.setCharacterEncoding(“utf-8”);
    Server server = new Server();
    RequestDispatcher dispatcher =null;
    int row = 0;
    String username =request.getParameter(“username”);
    String password = request.getParameter(“password”);
    try {
    row=server.Insert(username, password);
    if(row != 0){
    dispatcher = request.getRequestDispatcher("/login.jsp");
    }else{
    dispatcher = request.getRequestDispatcher("/error.jsp");
    }
    dispatcher.forward(request, response);
    } catch (Exception e) {
    // TODO: handle exception
    e.printStackTrace();
    }

    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    doGet(request, response);
    }

}

6、
在这里插入图片描述
package com.qf.selectall_information;

import java.io.IOException;
import java.util.List;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.qf.bean.Bean;
import com.qf.jdbcserver.Server;

/**

  • Servlet implementation class SelectInformation
    */
    public class SelectInformation extends HttpServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    Server server = new Server();
    List user= null;
    RequestDispatcher dispatcher = null ;
    System.out.println(“1”);
    try {
    System.out.println(“2”);
    user= server.SelectAll();
    if(user != null){
    for (Bean u : user) {
    System.out.println(“用户名ID:”+u.getId()+"\t “+“用户名:”+u.getUsername()+”\t"+“密码:”+u.getPassword());
    }
    dispatcher=request.getRequestDispatcher("/information.html");
    }else{
    dispatcher = request.getRequestDispatcher("/error.jsp");
    }
    dispatcher.forward(request, response);
    } catch (Exception e) {
    // TODO: handle exception
    e.printStackTrace();
    }

    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    doGet(request, response);
    }

}

7、在这里插入图片描述

package com.qf.servlet;

import java.io.IOException;
import java.sql.SQLException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.qf.bean.Bean;
import com.qf.jdbcserver.Server;

/**

  • Servlet implementation class LoginServlet
    */
    public class LoginServlet extends HttpServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    request.setCharacterEncoding(“utf-8”);
    Server server = new Server();
    RequestDispatcher rd = null;
    String username = request.getParameter(“username”);
    String password = request.getParameter(“password”);

     Bean user = null;
     try {
     	
     	user = server.Login(username, password);
     	if(user!=null){
     		rd=request.getRequestDispatcher("/zhuye.html");
     	}else{
     		rd=request.getRequestDispatcher("/register.jsp");
     	}
     	rd.forward(request, response);
     } catch (SQLException e) {
     	// TODO Auto-generated catch block
     	e.printStackTrace();
     }
    

    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    doGet(request, response);
    }

}
8、在这里插入图片描述

package com.qf.update;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.qf.jdbcserver.Server;
import com.sun.rowset.internal.InsertRow;

/**

  • Servlet implementation class Update
    */
    public class Update extends HttpServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    Server server = new Server();
    RequestDispatcher dispatcher = null;
    int id =Integer.valueOf(request.getParameter(“id”)).intValue();
    String username = request.getParameter(“username”);
    String password = request.getParameter(“password”);
    int row = 0;

     try {
     	
     	 row = server.UpdateUser(id, username, password);
     	 
     	 if(row != 0){
     		
     		 dispatcher = request.getRequestDispatcher("/update.html");
     	 }else{
     		 dispatcher =request.getRequestDispatcher("/error.jsp");
     	 }
     	 dispatcher.forward(request, response);
     	
     } catch (Exception e) {
     	// TODO: handle exception
     	e.printStackTrace();
     }
    

    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    doGet(request, response);
    }

}

9、在这里插入图片描述

<?xml version="1.0" encoding="UTF-8"?> com.mysql.jdbc.Driver jdbc:mysql://localhost:3307/xx root root 5 10

名字可以改
jdbc:mysql://localhost:3307/xx 端口号,、xx这个数据局库名字,都可以改

10、在这里插入图片描述

<?xml version="1.0" encoding="UTF-8"?> project_3 LoginServlet com.qf.servlet.LoginServlet LoginServlet /login RegisterServlet com.qf.register.RegisterServlet RegisterServlet /register SelectInformation com.qf.selectall_information.SelectInformation SelectInformation /See Update com.qf.update.Update Update /update Del com.qf.del.Del Del /del

内容挺多的,你可以参考着写

11、在这里插入图片描述

Insert title here id: 回到主页

12、在这里插入图片描述

<%@ page language=“java” contentType=“text/html; charset=UTF-8”
charset=UTF-8"%>

Insert title here

你的信息有误,请检查你的错误

13、
在这里插入图片描述

Insert title here

欢迎来到员工管理界面,请注意点击哦,不要做不正当行为

员工所有信息
进入员工的信息库
	<a href="update.html"><h3>编辑用户信息根据id</h3></a>
	
	
	<a href=" del.html"><h2>请输入要删除人的id:</h2></a>

14、
在这里插入图片描述

<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>

Insert title here

欢迎来到登录界面,请登录

		</tr>
	</table>
</form>
用户名:
密码:

15、在这里插入图片描述

<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>

Insert title here <% request.setCharacterEncoding("utf-8"); %>

欢迎来到注册界面,请注册:

			<tr>
				<td><input type="submit" name="submit" id="submit" value="提交" /></td>
			</tr>
		</table>
	</form>
用户名:
密码:

16、在这里插入图片描述

Insert title here

跳到员工管理界面

17、在这里插入图片描述

Insert title here

修改信息

ID: 用户名: 密码:
	<a href="zhuye.html">回到主页</a>

18、在这里插入图片描述

<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>

Insert title here

修改信息

ID: 用户名: 密码:

19、在这里插入图片描述

最后,想测试的话,在这里有一个测试类,可写可不写:把注释恢复即可
在这里插入图片描述

还有,里面tomcat,servlet,d3p0等等,还需要你自己去安装和配置了!!!!!!

项目链接:https://pan.baidu.com/s/1WFoVLv1jyndxP9NzCmN6BA
提取码:lo8k

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用Servlet结合c3p0连接池等写一个简单的注册登录 的相关文章

  • java中如何围绕另一个移动对象旋转一个对象?

    我对 Java 很陌生 想要编写一个简单的太阳系统 其中月球绕地球旋转 地球绕太阳旋转 一切正常 除了月亮不想正确移动 由于地球偏离月球的初始位置 月球的自转半径会根据该距离而增大 同样 当地球接近月球惯性位置时 自转半径会减小 如果初始位
  • JSP重定向和传值

    我有一个 JSP 其中我重定向到另一个 jsp 例如 我在该jsp中没有任何其他数据 我想将值从该jsp index jsp 传递到重定向jsp login jsp 我将如何做到这一点 这里的 logonInput 是在struts con
  • 仅使用 CSS 创建三列表? (无表格元素)

    我正在为 Django 项目创建模板 并且我需要在 HTML 中创建一个三列表 仅使用 CSS 而不是使用 table 元素 除了意识形态上对表格的反对之外 原因还在于该报告需要在台式机和黑莓等手持设备上查看 在手持设备上 我们的目标不是试
  • 如何选择带有空格的类

    我如何选择一个类class boolean optional 我已经尝试过这个 boolean optional CSS boolean optional CSS 正如 Zepplock 所说 这实际上是一个属性中的两个类 boolean
  • 如何切换整个页面的深色主题?

    我已经成功地在 html 和 Flask 中按下复选框时切换深色主题和浅色主题 但是我怎样才能让深色主题覆盖整个页面 而不仅仅是一些 div 元素呢 边距仍然是浅色主题 CSS代码如下 container display flow widt
  • 按位非运算符

    为什么要按位运算 0 打印 1 在二进制中 不是0应该是1 为什么 你实际上很接近 在二进制中 不是0应该是1 是的 当我们谈论一位时 这是绝对正确的 然而 一个int其值为0的实际上是32位全零 将所有 32 个 0 反转为 32 个 1
  • 用java解密AES加密文件

    我有一个使用 AES 使用 java 应用程序加密的文件 我还有一个加密的密钥文件 但我不明白如何使用密钥来解密文件 大多数教程和示例都会在一个地方创建临时随机密钥 加密文件和解密 所以 问题是如何指定解密时必须使用的密钥 EDIT 我发现
  • 使用 javax.mail 和 CentOS 的邮件服务器

    我有一个 Java 程序 安装在一台旧的 Ubuntu 机器上 并使用 javax mail 发送邮件 然而 那台机器宕机了 我现在在新的 CentOS 机器上运行相同的 Java 应用程序 但是 当我尝试使用 mail smtp host
  • 使用 Angular 2 Forms 根据需要动态标记字段的正确方法是什么?

    使用 Angular 2 2 0 0 推荐的方法是什么动态地根据需要标记字段 使用角形式 https angular io docs ts latest guide forms html 在他们的所有示例中 只需添加必需的属性 如下所示
  • 在java中设置Process对象的安全性

    有人可以告诉我如何限制通过进程对象访问系统属性吗 如果我通过进程对象运行以下代码 我可以抛出安全异常吗 System getProperty user home 请告诉我如何为流程对象配置证券 在ProcessBuilder类文档中 环境方
  • AngularJS:ng-占位符不起作用

    我有以下输入 html 元素 我想根据用户模型中保存的内容更改占位符
  • 使用 Java 进行 AES 加密并使用 Javascript 进行解密

    我正在制作一个需要基于 Java 的 AES 加密和基于 JavaScript 的解密的应用程序 我使用以下代码作为基本形式进行加密 public class AESencrp private static final String ALG
  • 无法运行简单的 doclet 程序:包 com.sun.javadoc 不存在

    我正在尝试运行一个简单的 doclet 程序 但无法编译它 javac cp cygdrive c Progra 2 Java jdk1 8 0 65 lib tools jar A java 但它抛出 A java 1 错误 包 com
  • Rails 2 Mailer View 将 3D 添加到字符串之前

    我有一个非常旧的 Rails 应用程序 它试图为新用户发送验证电子邮件 但永远找不到令牌 因为由于某种原因 无论我如何生成链接 链接都会以 3D 形式添加到字符串前面 由于某种原因 它似乎还在标记的中间注入了一个 符号 这是一些带有输出的代
  • java.lang.NoSuchMethodError:com.fasterxml.jackson.databind.type。使用 apache beam Spark runner 运行 go 示例时

    我想跑grades https github com apache beam tree master sdks go examples gradesapache beam go sdk 提出的示例 在一个主服务器和两个从服务器 spark2
  • 在调试模式下,哪些代码更改会自动反映在 Eclipse 中?

    我使用 eclipse 用于编写 调试 作为 IDE 在调试模式下 当我进行一些更改 例如初始化局部变量 时 它们会自动反映 但其他更改例如更改静态变量的值 有时我会收到一条消息 说我需要重新启动虚拟机 有时则不需要 现在的问题是哪些类型的
  • Spring Data JPA 和 Exists 查询

    我正在使用 Spring Data JPA 使用 Hibernate 作为我的 JPA 提供程序 并想要定义一个exists附加 HQL 查询的方法 public interface MyEntityRepository extends C
  • 如何在 SpringDoc OpenAPI 3 中引用文件?

    我有 Spring Boot 项目 我想在其中记录我的 API 这里是正在处理的 Web 服务的示例 ApiResponses value ApiResponse responseCode 200 content Content media
  • gwt - 在 RPC 调用中使用 List

    我有一个 RPC 服务 方法如下 public List
  • 文件构造函数说明

    我无法理解以下文件构造函数 public File String parent String child and public File File parent String child 参数有什么作用parent and child该文件

随机推荐

  • opencv:用最邻近插值和双线性插值法实现上采样(放大图像)与下采样(缩小图像)

    上采样与下采样 概念 上采样 放大图像 或称为上采样 upsampling 或图像插值 interpolating 的主要目的 是放大原图像 从而可以显示在更高分辨率的显示设备上 下采样 缩小图像 或称为下采样 subsampled 或降采
  • 【区间DP题解】 关路灯

    Link 题目 题目描述 某一村庄在一条路线上安装了 n 盏路灯 每盏灯的功率有大有小 即同一段时间内消耗的电量有多有少 老张就住在这条路中间某一路灯旁 他有一项工作就是每天早上天亮时一盏一盏地关掉这些路灯 为了给村里节省电费 老张记录下了
  • A Survey of Large Language Models

    本文是LLM系列的第一篇文章 针对 A Survey of Large Language Models 的翻译 大语言模型综述 摘要 1 引言 2 概述 2 1 LLM的背景 2 2 GPT系列模型 的技术演化 3 LLMs的资源 3 1
  • 新优选商城上线发布会,京庐空间执行总裁赵娅勤女士接受采访!

    新优选商城上线发布会 京庐空间执行总裁赵娅勤女士接受采访现场 互联网的快速发展对于推动各行各业重构商业业态具有深远的历史影响 互联网发展进入21世纪 在全球信息化进程加快的背景下 电子商务 新零售 社交电商等行业业态也为传统行业提供了新的增
  • 正交试验设计例题及答案_正交矩阵求解

    我对题的难度进行划分 满难度是 难度中包含 计算难度和 思路难度 满难度各 难度评测是以我初见题目视角写出的标准 比较主观 另外 考试时的解答时间的长短也需要考虑 毕竟有些东西复习多了见过了 或者看过答案了就不难了 假如每颗 代表20分 我
  • ubuntu:关闭某个进程

    参考 http blog csdn net chen861201 article details 6980677 ps aux grep xxx 程序名称 kill xxx 某个PID
  • ganglia监控hadoop 容器节点

    hadoop容器运行参考上篇博客 http blog csdn net wenwenxiong article details 78973755 参看网址 https gist github com ameizi 0c77e3dbb13de
  • (二十五)admin-boot项目之集成消息队列Rabbitmq

    目录 项目地址 https gitee com springzb admin boot 如果觉得不错 给个 star 简介 这是一个基础的企业级基础后端脚手架项目 主要由springboot为基础搭建 后期整合一些基础插件例如 redis
  • java 动态线程池_线程池的参数动态调整

    经典面试题 这次的文章还是绕回了我写的第三篇原创文章 有的线程它死了 于是它变成一道面试题 中留下的几个问题 哎 兜兜转转 走走停停 天道好轮回 苍天饶过谁 在这篇文章中我主要回答上面抛出的这个问题 你这几个参数的值怎么来的呀 要回答这个问
  • OpenGL2 spec releases at the SIGGRAPH2004

    发信人 chsoft 珍惜光华 善待光华 信区 Graphics标 题 OpenGL2 spec releases at the SIGGRAPH2004发信站 日月光华 2004年08月11日13 22 06 星期三 站内信件 SIGGR
  • 编译busybox有这个提示,是怎么回事

    我编译busybox有这个提示 是怎么回事 有人知道吗 分类 海思论坛 https www ebaina com questions 100000031827
  • DC-DC直流斩波---BUCK降压斩波电路

    降压斩波电路 Buck Chopper 的原理图及工作波形 该电路使用一个全控型器件V 图中为IGBT 也可使用其他器件 若采用晶闸管 需设置使晶闸管关断的辅助电路 图5 1中 为在V关断时给负载中电感电流提供通道 设置了续流二极管VD 斩
  • Linux 文件权限

    一 文件权限 Linux系统中的每个文件和目录都有访问许可权限 用他来确定谁能通过何种方式对文件和目录进行访问和操作 文件或目录的访问权限分为只读 只写和可执行三种 Linux文件权限一共10位长度 分成四段 第一段1位 表示文件类型 d表
  • glGetString(GL_VERSION)、 glGetIntegerv(GL_MAX_TEXTURE_SIZE, &max)为何老是得不到正确的值

    今天碰到了的问题如下 在程序里调用 printf s r n glGetString GL VERSION 总是输出 null glGetIntegerv GL MAX TEXTURE SIZE max 得不到max的值 答 在MFC情况下
  • @RefreshScope注解处理

    spring启动时会调用ClassPathBeanDefinitionScanner java类中的doScan 对包路径下的所有class进行扫描 获取bean的定义 同时对bean的 RefreshScope Scope的父类 进行处理
  • JSP基础_0700_HelloWorld 全局变量和局部变量

    本文讨论jsp中生成的servlet代码中全局变量和局部变量的问题 请看下面一段代码
  • tar包安装

    在Linux操作系统中 常用的软件包一共有两种 rpm包 相当于Windows中的exe软件包 tar gz包 未编译的源码包 软件的编译需要使用gcc编译器 Linux安装 开发工具 gt gcc gcc c tar包解压 基本语法 ta
  • WIN7&WIN10共享打印机0x000000709错误解决方法

    这两天连续碰到709错误 打印机安装正常 共享正常 但通过 ip 打印机名添加共享时就709错误 开始以为是printspooler服务的问题 但试过故障依旧 也检查了共享设置 密码共享是关闭的 guest用户是开启的 为什么呢 最终发现了
  • numpy ndarray 打印格式化

    1 ndarray打印省略问题 np set printoptions threshold np inf 2 ndarray打印换行限制 加上下面这句代码 输出时打印不换行 np set printoptions linewidth 400
  • 用Servlet结合c3p0连接池等写一个简单的注册登录

    首先 给一张截图 上面图是我的整体内容 1 先进入工具类 代码如下 package com qf util import javax sql DataSource import com mchange v2 c3p0 ComboPooled