小型的java WEB项目一个页面(第二段)后端界面及数据库(第三段为前端jsp页面)

工具类:

1.自己封装的BaseDao
在这里插入图片描述
2.一个计算分页的工具类
在这里插入图片描述

Dao层处理sql语句

1.准备一个接口:
在这里插入图片描述

前端页面展示:

在这里插入图片描述

接口实现:

(注意,查询结果必须以while循环遍历)

在这里插入图片描述

数据库表:

在这里插入图片描述

实体类:

在这里插入图片描述

中间Service过渡层:

这里Service层和dao层接口的方法一致
一个多态的使用
在这里插入图片描述

Servlet完成前后端交互

Servlet层新建一个Servlet 起名字叫做LoginServlet

在这里插入图片描述

在doPost方法内调用doGet方法传参request 和 response

(重点)然后在doGet方法内这样写:

在这里插入图片描述

前两行在设置编码集

request.getParameter在获取前端传回来的值

以Service层调用login方法,Service层又调用了Dao层的方法,通过查询数据库的数据判断账号和密码是否与数据库内储存的值相同,()


这些被标记的代码可不用写,是过滤器

在这里插入图片描述

判断调用方法查询结果是否为true, 如果为true以response重定向到下一个页面

否则继续留在登录页面


登录成功后进入主界面

在这里插入图片描述

数据库数据:

在这里插入图片描述

Dao层:

该方法将数据库的数据取出后保存到实体类,然后list集合保存实体类,拿Result结果集获取每一个字段的内容,然后while循环遍历每一行数据,实体类通过set保存通过结果集取到的字段数据,取完后以list集合保存实体类,然后return这个集合

在这里插入图片描述

下面这个方法是获取分页所需要的值;

在这里插入图片描述

Service层和login的写法一致,这里就不列出来了,


在这里插入图片描述

注:这里使用StringBuffer为了拼接模糊查询的条件

在这里插入图片描述

通过request把集合和分页所需的值传递到前端


实体类注意要和数据库的字段数据类型一致

登录界面判断的Servlet原码:

package com.mhj.servlet;

import com.mhj.entity.Admin;
import com.mhj.service.AdminService;
import com.mhj.service.impl.AdminServiceImpl;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
import java.io.IOException;

@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        response.setContentType("text/html;charset=utf-8");
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        System.out.println(username + password);
        Admin ad = new Admin();
        ad.setUsername(username);
        ad.setPassword(password);
        AdminService aa = new AdminServiceImpl();
        boolean rs = aa.login(ad);
        System.out.println(username);
        System.out.println(password);
        if (rs) {
            HttpSession session = request.getSession(true);
            String id = session.getId();
            Cookie cookie = new Cookie("JSESSIONID", id);
            cookie.setMaxAge(3600);
            response.addCookie(cookie);
            session.setAttribute("username", username);
            session.setAttribute("password", password);
//            request.getSession().setAttribute("username", username);
            response.sendRedirect(getServletContext().getContextPath() + "/UserFuzzyServlet");
        } else {
            System.out.println("失败");
            response.sendRedirect("after/login.jsp");
        }
    }
}

展示user数据的Servlet原码:
package com.mhj.servlet;

import com.mhj.entity.User;
import com.mhj.service.UserService;
import com.mhj.service.impl.UserServiceImpl;
import com.mhj.util.PageUtil;

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.util.List;

@WebServlet("/UserFuzzyServlet")
public class UserFuzzyServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        request.setCharacterEncoding("utf-8");
        StringBuffer condtion = new StringBuffer();
        PageUtil pu = new PageUtil();
        User user = new User();
        UserService us = new UserServiceImpl();
        String username1 = request.getParameter("username");

        String pNo = request.getParameter("pageNo");
        if (pNo == null) {
            pNo = "1";
        }
        String sex = request.getParameter("sex");
        if (username1 != null && !"".equals(username1)) {
            condtion.append("and username like '%" + username1 + "%'");
        }
        System.out.println(sex);
        if (sex != null && !"".equals(sex)) {
            condtion.append("and sex like '%" + sex + "%'");
        }
        int i = us.userFuzzySelectCount(condtion.toString());
        int pageNo = Integer.parseInt(pNo);
        int pageSize = 3;
        pu.setPageNo(pageNo);
        pu.setPageSize(pageSize);
        pu.setDataCount(i);

        int pageCount = pu.getPageCount();
        List<User> list = us.fuzzySelectUser(pageNo, pageSize, condtion.toString());
        request.setAttribute("pageNo", pageNo);
        request.setAttribute("pageSize", pageSize);
        request.setAttribute("pageCount", pageCount);
        request.setAttribute("list", list);
        request.setAttribute("username1",username1);
        request.getRequestDispatcher("/after/user.jsp").forward(request, response);
    }
}

为了良好的阅读体验 最后把BaseDao和UserDao的原码也补上吧:

BaseDao:

注意:conn=DriverManager.getConnection(“jdbc:mysql://localhost:3306/db_fengmi?useSSL=true”, “root”, “5324”);这是我的数据库, 具体要改什么库名和密码要你们自己修改
package com.mhj.util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class BaseDao {
	public static Connection getConn() {
		Connection conn=null;

		try {
			Class.forName("com.mysql.jdbc.Driver");
			conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/db_fengmi?useSSL=true", "root", "5324");

		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return conn;
}
	//增删改
	public int  setUpdate(String sql,Object[] obj)  {
		int result=0;
		PreparedStatement ps;
		try {
			ps = getConn().prepareStatement(sql);
			for (int i = 0; i < obj.length; i++) {
				ps.setObject(i+1, obj[i]);
				
			}
			result=ps.executeUpdate();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	return result;
	}
	
	//查询
		public ResultSet select(String sql,Object[] obj) throws Exception {
			ResultSet result=null;
			Connection  conn=getConn();
			 PreparedStatement ps = conn.prepareStatement(sql);
			 
			 
			for (int i = 0; i < obj.length; i++) {
				ps.setObject(i+1, obj[i]);
				
			}
			 //result=ps.executeQuery();
			result=ps.executeQuery();
			return result;
		}
	
	
	

}

UserDaoImpl:

package com.mhj.dao.impl;

import com.mhj.dao.UserDao;
import com.mhj.entity.User;
import com.mhj.util.BaseDao;

import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

public class UserDaoImpl extends BaseDao implements UserDao {
    @Override
    public List<User> fuzzySelectUser(int pageNo, int pageSize, String condition) {
        String sql = "select * from t_user where 1=1 " + condition + "limit ?, ?";
        Object[] obj = {(pageNo - 1) * pageSize, pageSize};
        List list = new ArrayList();
        try {
            ResultSet rs = this.select(sql, obj);
            while (rs.next()) {
                User user = new User();
                user.setId(rs.getInt(1));
                user.setUsername(rs.getString(2));
                user.setPassword(rs.getString(3));
                user.setPhone(rs.getString(4));
                user.setSex(rs.getString(6));
                user.setMail(rs.getString(7));
                list.add(user);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return list;
    }

    @Override
    public int userFuzzySelectCount(String condition) {
        String sql = "select count(1) from t_user where 1=1 " + condition;
        Object[] obj = {};
        int count = 0;
        try {
            ResultSet select = this.select(sql, obj);
            while (select.next()) {
                count = select.getInt(1);
            }
        } catch (Exception e) {
            e.printStackTrace();
    }
        return count;
    }

    @Override
    public int userAdd(User user) {

        String sql = "insert into t_user(username, password, phone, mail) values (?, ?, ?, ?)";
        Object[] obj = {user.getUsername(), user.getPassword(), user.getPhone(), user.getMail()};
        return this.setUpdate(sql, obj);
    }

    @Override
    public int userDelete(int id) {
        String sql = "delete from t_user where id = ?";
        Object[] obj = {id};
        return this.setUpdate(sql, obj);
    }

    @Override
    public int userUpdata(User user, int id) {
        String sql = "update t_user set username=?, password=?, phone=?, mail=? where id=?";
        Object[] obj = {user.getUsername(), user.getPassword(), user.getPhone(), user.getMail(), id};
        return this.setUpdate(sql, obj);
    }
}

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值