week 4 day 4.5

设计实体 java bookstore
private String id; private String username; private String password; private String email; private String cellphone; private String address; //各种setter、getter123456789设计数据库表 CREATE TABLE user ( id VARCHAR(40) PRIMARY KEY, username VARCHAR(20) NOT NULL, cellphone VARCHAR(20) NOT NULL, address VARCHAR(40) NOT NULL, email VARCHAR(30), password VARCHAR(30) NOT NULL);1234567891011编写DAO /** * 用户的登录注册模块 * 1:登陆 * 2:注册 * 3:根据id查找具体的用户 */public class UserDaoImpl { public void register(User user) { QueryRunner queryRunner = new QueryRunner(Utils2DB.getDataSource()); String sql = “INSERT INTO user (id,username,cellphone,address,email,password) VALUES(?,?,?,?,?,?)”; try { queryRunner.update(sql, new Object[]{user.getId(),user.getUsername(), user.getCellphone(), user.getAddress(), user.getEmail(), user.getPassword()}); } catch (SQLException e) { throw new RuntimeException(e); } } public User login(String username, String password) { QueryRunner queryRunner = new QueryRunner(Utils2DB.getDataSource()); String sql = “SELECT * FROM user WHERE username = ? AND password= try { return (User) queryRunner.query(sql, new Object[]{username, password}, new BeanHandler(User.class)); } catch (SQLException e) { throw new RuntimeException(e); } } public User find(String id) { QueryRunner queryRunner = new QueryRunner(Utils2DB.getDataSource()); String sql = “SELECT * FROM user WHERE id=?”; try { return (User) queryRunner.query(sql, id, new BeanHandler(User.class)); } catch (SQLException e) { throw new RuntimeException(e); }
测试DAO public class UserDemo { UserDaoImpl userDao = new UserDaoImpl(); @Test public void add() { User user = new User(); user.setId(“1”); user.setUsername(“zhong”); user.setPassword(“123”); user.setCellphone(“10085”); user.setAddress(“广州萝岗”); user.setEmail(“40368324234234@QQ.com”); userDao.register(user); } @Test public void find() { String id = “1”; User user = userDao.find(id); System.out.println(user.getEmail()); } @Test public void login() { String username = “zhong”; String password = “123”; User user = userDao.login(username, password); System.out.println(user.getAddress()); }}12345678910111213141516171819202122232425262728293031323334353637抽取DAO public interface UserDao { void register(User user); User login(String username, String password); User find(String id);}12345678编写Service private UserDao userDao = DaoFactory.getInstance().createDao(“zhongfucheng.dao.impl.UserDaoImpl”, UserDao.class); public void registerUser(User user) { userDao.register(user); } public User loginUser(String username,String password) { return userDao.login(username, password); } public User findUser(String id) { return userDao.find(id); }123456789101112131415前台样式head.jsp

用户名: 密码: 登陆 注册
12345678head.css #body { position: relative;}#user { position: absolute; margin-top: 130px; margin-left: 1364px;}123456789效果:这里写图片描述实现登陆注册功能当点击登陆按钮的时候,把数据带过去给Servlet,让Servlet调用BusinessService方法,实现登陆。注册同理……因此,我们需要用到JavaScript代码head.jsp <c:if test=” u s e r = = n u l l " > < d i v i d = " U s e r " > 用 户 名 : < i n p u t t y p e = " t e x t " i d = " u s e r n a m e " > 密 码 : < i n p u t t y p e = " p a s s w o r d " i d = " p a s s w o r d " > < b u t t o n n a m e = " l o g i n " o n c l i c k = " l o g i n ( ) " > 登 陆 < / b u t t o n > < b u t t o n n a m e = " r e g i s t e r " o n c l i c k = " r e g i s t e r ( ) " > 注 册 < / b u t t o n > < / d i v > < / c : i f > < c : i f t e s t = " {user==null}" ><div id="User"> 用户名:<input type="text" id="username"> 密码:<input type="password" id="password"> <button name="login" οnclick="login()">登陆</button> <button name="register" οnclick="register()">注册</button></div></c:if> <c:if test=" user==null"><divid="User"><inputtype="text"id="username"><inputtype="password"id="password"><buttonname="login"onclick="login()"></button><buttonname="register"onclick="register()"></button></div></c:if><c:iftest="{user!=null}" >
123456789101112131415161718UserServlet String method = request.getParameter(“method”); BussinessServiceImpl service = new BussinessServiceImpl(); if (method.equals(“login”)) { try { //得到页面传递过来的数据 String username = request.getParameter(“username”); String password = request.getParameter(“password”); User user = service.loginUser(username, password); request.getSession().setAttribute(“user”,user); request.getRequestDispatcher("/client/head.jsp").forward(request, response); } catch (Exception e) { request.setAttribute(“message”, “登陆失败了!”); request.getRequestDispatcher("/message.jsp").forward(request, response); } } else if (method.equals(“register”)) { try { //得到JSP传递过来的数据,封装成Bean对象 User user = WebUtils.request2Bean(request, User.class); user.setId(WebUtils.makeId()); service.registerUser(user); request.setAttribute(“message”, “注册成功了!”); } catch (Exception e) { e.printStackTrace(); request.setAttribute(“message”, “注册失败了!”); } request.getRequestDispatcher("/message.jsp").forward(request, response); } else if (method.equals(“Logout”)) { //销毁session request.getSession().invalidate(); //回到首页 request.getRequestDispatcher("/client/head.jsp").forward(request, response); }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值