jsp+mysql+servlet的登录

登录代码
  •  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+javabean+mysql三层结构的动态购物网站。网站用户接口(即界面)由jsp完成,数据和逻辑处理由beans完成,数据储存由mysql完成。因为beans独立负责处理整个网站的全部数据逻辑运算,所以整个网站的负载量和速度都将大大提高,所以基于这种语言和结构开发的购物系统的优势是其它语言没法比尔的。更重要的是,jsp+bean能够在Apache环境下顺畅地运行,这也是其最大优点之一。这就更进一步保证了网站的稳定性和安全性,而这些,对于一个购物网站来说是非常重要的!这个版本让大家期待已久了,主要做了以下一些修正:1.新增产品站内搜索引擎。2.新增人气商品排行。3.新增热评商品排行。4.新增重点推荐产品。5.删除不太需要的新闻频道。6.修正后台管理的一些Nullpointexception错误。7.新增顾客资料修改。8.新增顾客订单查询。9.新增后台超级用户和订单管理员管理,方便物流人员独立处理订单。10.完善了一些购物流程。本程序由“城市WebClub”独立自主开发,你可以对整个商城的版面甚至版权作任意修改,但传播本程序时,请保留本站的说明文件。因为开发一个系统真的很痛苦!由于时间和水平关系,本系统还有很多不足和错误的地方,欢迎大家试用并提出意见。安装====1。把myshop直接上传到你的jsp主机。2。把class里的文件上传到你的jsp主机的class目录。3。分别修改myshop下的config.jsp、class/myshop下的config.java文件。4。把所有mysqldata文件倒入你的数据库
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值