登录代码

  • entity类
package com.wy.entity;
public class User { private int id; private String username; private String password; private String email; 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; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } }
  • userDao接口
package com.wy.dao;
import com.wy.entity.User;
public interface UserDao { //保存用户信息 public void save(User user); //登录接口 public User login(String username,String password); //根据用户名查询用户方法接口 public boolean findByName(String username); }
  • userDaoImpl(接口的实现)
package com.wy.daoImpl;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;import com.wy.dao.UserDao; import com.wy.db.DBUtils; import com.wy.entity.User; public class UserDaoImpl implements UserDao { @Override //保存 public void save(User user) { // TODO Auto-generated method stub Connection conn = null; PreparedStatement ps = null; try { //连接数据库 conn = DBUtils.getConnection(); //SQL语句 ps = conn .prepareStatement("insert into user(username,password,email)values(?,?,?)"); //给用户属性动态设置 ps.setString(1, user.getUsername()); ps.setString(2, user.getPassword()); ps.setString(6, user.getEmail()); ps.executeUpdate(); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); }finally{ //关闭数据库连接 DBUtils.close1(ps, conn); } } @Override public User login(String username, String password) { // TODO Auto-generated method stub Connection conn=null; PreparedStatement ps=null; ResultSet rs=null; try { conn=DBUtils.getConnection(); ps=conn.prepareStatement("select * from user where username=? and password=?"); ps.setString(1, username); ps.setString(2, password); rs=ps.executeQuery(); if(rs.next()){ User user=new User(); user.setId(rs.getInt("id")); user.setUsername(rs.getString("username")); user.setPassword(rs.getString("password")); user.setEmail(rs.getString("email")); } } catch (Exception e) { // TODO: handle exception e.printStackTrace(); }finally{ DBUtils.close2(rs, ps, conn); } return null; } @Override public boolean findByName(String username) { // TODO Auto-generated method stub Connection conn=null; PreparedStatement ps=null; ResultSet rs=null; try { conn=DBUtils.getConnection(); ps=conn.prepareStatement("select * from user where name=?"); ps.setString(1, username); rs=ps.executeQuery(); if(rs.next()){ user.setUsername(rs.getString("username")); user.setPassword(rs.getString("password")); } } catch (Exception e) { // TODO: handle exception e.printStackTrace(); }finally{ DBUtils.close2(rs, ps, conn); } return false; } }
  • 数据库的设置
package com.wy.db;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.SQLException; public class DBUtils { //数据库的连接设置 static String url="jdbc:mysql://localhost:3306/java"; static String user="root"; static String password="wy123"; static{ try { //加载数据库驱动 Class.forName("com.mysql.jdbc.Driver"); } catch (ClassNotFoundException e) { // TODO: handle exception e.printStackTrace(); } } /** * 建立连接 * @throws SQLException * */ public static Connection getConnection() throws SQLException{ Connection conn=DriverManager.getConnection(url, user, password); return conn; } /** * 数据库关闭操作1:PreparedStatement ps,Connection conn * */ public static void close1(PreparedStatement ps,Connection conn){ if(ps!=null){ try { ps.close(); } catch (SQLException e) { // TODO: handle exception e.printStackTrace(); } } if(conn!=null){ try { conn.close(); } catch (SQLException e) { // TODO: handle exception e.printStackTrace(); } } } /** * 数据库关闭操作2:ResultSet rs,PreparedStatement ps,Connection conn * */ public static void close2(ResultSet rs,PreparedStatement ps,Connection conn){ if(rs!=null){ try { rs.close(); } catch (SQLException e) { // TODO: handle exception e.printStackTrace(); } } close1(ps, conn); } }
  • 登录Servlet(LoginServlet)
package com.wy.servlet;import java.io.IOException;import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.wy.daoImpl.UserDaoImpl; import com.wy.entity.User; public class LoginServlet extends HttpServlet{ //doPost方法 @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //获取jsp页面参数 String username=request.getParameter("username"); String password=request.getParameter("password"); //实例化userDaoImpl,该类中为接口的实现方法 UserDaoImpl userDaoImpl=new UserDaoImpl(); //根据得到的参数信息查询数据库中的用户名以及密码是否匹配 User user=userDaoImpl.login(username, password); //匹配结果是否为空,即该用户是否存在 if(user!=null){ request.getSession().setAttribute("user", user); request.getRequestDispatcher("message.jsp").forward(request ,response); }else { request.setAttribute("message", "用户名或密码错误!!!"); request.getRequestDispatcher("message.jsp").forward(request, response); } } }

这次登录的心得体会:在最开始的时候看了一些基础的Servlet视频进行的学习,对于它的页面跳转有一些了解,但是并具体的功能实现。敲代码我觉得是最快的了解语言的方式,这次的登录做完后比刚开始要更加了解Servlet,就如同在刚开始的时候我都不太理解如何区分executeUpdate与executeQuery,所以在去敲的时候有专门去查它们的区别然后再去使用就知道为什么去用它,要去研究它的用法,个人认为比看书要好一些。代码肯定还需要去不断的完善,新人也还在摸索更适合自己的学习道路,希望大家多多指教

转载于:https://www.cnblogs.com/sinon/p/5830582.html

jsp+mysql+servlet的登录相关推荐

  1. 基于javaweb+jsp的医院住院管理系统(JavaWeb JSP MySQL Servlet SSM SpringBoot Bootstrap)

    基于javaweb+jsp的医院住院管理系统(JavaWeb JSP MySQL Servlet SSM SpringBoot Bootstrap) JavaWeb JavaBean JSP MVC ...

  2. 基于javaweb+jsp的个人日记管理系统(JavaWeb JSP MySQL Servlet SSM SpringBoot Bootstrap Ajax)

    基于javaweb+jsp的个人日记管理系统(JavaWeb JSP MySQL Servlet SSM SpringBoot Bootstrap Ajax) 运行环境 Java≥8.MySQL≥5. ...

  3. 基于javaweb+jsp的个人日记管理系统(JavaWeb JSP MySQL Servlet SSM SpringBoot Layui Ajax)

    基于javaweb+jsp的个人日记管理系统(JavaWeb JSP MySQL Servlet SSM SpringBoot Layui Ajax) JavaWeb JavaBean JSP MVC ...

  4. 基于java eclipse+jsp+mysql+servlet+Spring的学生信息管理系统基础版

    项目背景 学生信息档案的管理对于学校的管理者来说至关重要,学生信息是高等学校非常重要的一项数据资源,是一个教育单位不可缺少一部分.特别是近几年来,国家政策的调整,我国高等院校大规模的扩招,给高等院校的 ...

  5. 基于javaweb+jsp的健身房信息管理系统(JavaWeb JSP MySQL Servlet SSM SpringBoot Layui Ajax)

    基于javaweb+jsp的健身房信息管理系统(JavaWeb JSP MySQL Servlet SSM SpringBoot Layui Ajax) 运行环境 Java≥8.MySQL≥5.7.T ...

  6. 基于javaweb+jsp的二手物品交易管理系统(JavaWeb JSP MySQL Servlet SSM SpringBoot Layui Ajax)

    基于javaweb+jsp的二手物品交易管理系统(JavaWeb JSP MySQL Servlet SSM SpringBoot Layui Ajax) JavaWeb JavaBean JSP M ...

  7. 基于javaweb+jsp的敬老院养老院管理系统(JavaWeb JSP MySQL Servlet SSM SpringBoot Bootstrap)

    基于javaweb+jsp的敬老院养老院管理系统(JavaWeb JSP MySQL Servlet SSM SpringBoot Bootstrap) JavaWeb JavaBean JSP MV ...

  8. 基于javaweb+jsp的敬老院养老院管理系统(JavaWeb JSP MySQL Servlet SSM SpringBoot Bootstrap Ajax)

    基于javaweb+jsp的敬老院养老院管理系统(JavaWeb JSP MySQL Servlet SSM SpringBoot Bootstrap Ajax) JavaWeb JavaBean J ...

  9. 基于javaweb+jsp的设备维修管理系统(JavaWeb JSP MySQL Servlet SSM SpringBoot Bootstrap)

    基于javaweb+jsp的设备维修管理系统(JavaWeb JSP MySQL Servlet SSM SpringBoot Bootstrap) JavaWeb JavaBean JSP MVC ...

最新文章

  1. Vmware 10 安装
  2. python订单详细教程-Python抓取订单页面
  3. xp mysql字符集与乱码_mysql字符集(GBK、GB2312、UTF8)与中文乱码的原因及解决
  4. 将Jquery序列化后的表单值转换成Json
  5. kotlin 学习笔记(1)
  6. Eclipse SVN冲突解决方案
  7. netty的零拷贝、架构设计、ByteBuf扩容机制详解
  8. c语言求今年第m月的天数,《C语言及程序设计》实践参考——当年第几天(数组方案)...
  9. 股票和基金,哪个适合打工族?
  10. 一张速查表看懂Git命令,搞定版本控制照做就ok丨新手福利
  11. c#水晶报表的进一步功能和使用
  12. Android学习开发之路~~系列教程
  13. lsqcurvefit拟合结果为复数_高考数学专题突破,向量运算与复数运算、算法、推理与证明,方法规律总结,知识归纳,易错示警...
  14. 网络安全——C段扫描
  15. 【软件逆向-分析工具】反汇编和反编译工具
  16. Unity 3D模型展示之模型高亮
  17. python数据处理----pandas导入和导入文件
  18. 【多元统计分析】一、多元统计分析概述
  19. XiaoHu日志 9/2
  20. 贾跃亭不是老赖?网传贾跃亭已偿还200亿债务,你怎么看?...

热门文章

  1. 【Java面试题】39 Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?...
  2. javascript黑魔法
  3. Tomcat 7 Connector 精读(1)
  4. TeskLink—增加一种需求类型(业务流程)(version1.9.8)
  5. Knockout.js 学习 (六)-- 监控属性数组 applyBinding Observables
  6. poj 2029 二维树状数组
  7. 2019年山西计算机二级报名入口,2019年下半年山西省计算机二级考试教程:Web程序设计...
  8. DPDK之makefile编译选项修改和gdb调试(三)
  9. php 对象里还有哪些对象_PHP面向对象(OOP)之实例化对象的方法
  10. python批量分析表格_示例python 批量操作excel统计销售榜品牌及销售额