37.3 jstl实现crud、登录、分页、分页模糊查询

目录

列:使用jstl实现crud、登录、分页、分页模糊查询

1 创建web项目并导包

2 创建数据库

3 数据库配置文件与工具类

druid.properties

cn.lws.demo.util.JDBCUtils

4 用户名密码登录

4.1 CheckCodeServlet  验证码

4.2 LoginServlet登录

4.3 UserServiceImpl

4.4 UserDaoImpl

4.5 login.jsp

5 列表查询

5.1 FindUserServlet

5.2 UserServiceImpl

5.3 UserDaoImpl

 5.4 list.jsp

6 添加数据

6.1 AddUserServlet

6.2  UserServiceImpl

6.3  UserDaoImpl

6.4 list.jsp

6.5 add.jsp

7 根据id修改User数据

7.1 UpdateUserServlet

7.2 UserServiceImpl

7.3 UserDaoImpl

7.4 list.jsp

7.5 update.jsp

8 根据id删除数据

8.1 DelUserServlet

8.2 UserServiceImpl

 8.3 UserDaoImpl

8.4 list.jsp

9 复选框删除数据

9.1 list.jsp

 9.2 DelSelectedServlet

9.3 UserServiceImpl

9.4 UserDaoImpl

 10 分页查询

 10.1 PageBean

10.2 FindUserByPageServlet

 10.3 UserServiceImpl

10.4 UserDaoImpl

10.5 index.jsp

10.6 list.jsp

 11 分页模糊查询

11.2 servlet :FindUserByPageServlet

11.3 UserServiceImpl

11.4 UserDaoImpl 

11.5 index.jsp

11.6 list.jsp 


列:使用jstl实现crud、登录、分页、分页模糊查询

1 创建web项目并导包

2 创建数据库

CREATE DATABASE day17; -- 创建数据库
USE day17;
CREATE TABLE USER(
	id INT PRIMARY KEY AUTO_INCREMENT,
	NAME VARCHAR(20) NOT NULL,
	gender VARCHAR(20),
	age INT,
	address VARCHAR(32),
	qq VARCHAR(20),
	email VARCHAR(50),
	username VARCHAR(20),
	PASSWORD VARCHAR(20)
)CHARACTER SET utf8;

INSERT INTO USER VALUES(NULL,'老王','女',55,'广西','15624662','222@qq.com',NULL,NULL);

SELECT COUNT(*) FROM USER
SELECT COUNT(*) FROM USER WHERE 1=1

3 数据库配置文件与工具类

druid.properties

driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql:///day17?useSSL=true&useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
username=root
password=123
# 初始化连接数量
initialSize=5
# 最大连接数
maxActive=10
# 最大等待时间
maxWait=3000

cn.lws.demo.util.JDBCUtils

import com.alibaba.druid.pool.DruidDataSourceFactory;

import javax.sql.DataSource;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;

public class JDBCUtils {
    private static DataSource dataSource;
    static {
        try {
            Properties properties = new Properties();//1.加载配置文件
            InputStream inputStream = JDBCUtils.class.getClassLoader().getResourceAsStream("druid.properties");//使用ClassLoader加载配置文件,获取字节输入流

            properties.load(inputStream);

             dataSource = DruidDataSourceFactory.createDataSource(properties);//2.初始化连接池对象
        } catch (IOException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    /**
     * 获取连接池对象
     */
    public static DataSource getDataSource(){
        return dataSource;
    }
    /**
     * 获取连接Connection对象
     */
    public static Connection getConnection() throws SQLException {
        return dataSource.getConnection();
    }
}

4 用户名密码登录

4.1 CheckCodeServlet  验证码

@WebServlet("/checkCodeServlet")
public class CheckCodeServlet extends HttpServlet {
	public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
		
		//服务器通知浏览器不要缓存
		response.setHeader("pragma","no-cache");
		response.setHeader("cache-control","no-cache");
		response.setHeader("expires","0");
		
		//在内存中创建一个长80,宽30的图片,默认黑色背景
		//参数一:长
		//参数二:宽
		//参数三:颜色
		int width = 80;
		int height = 30;
		BufferedImage image = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
		
		//获取画笔
		Graphics g = image.getGraphics();
		//设置画笔颜色为灰色
		g.setColor(Color.GRAY);
		//填充图片
		g.fillRect(0,0, width,height);
		
		//产生4个随机验证码,12Ey
		String checkCode = getCheckCode();
		//将验证码放入HttpSession中
		request.getSession().setAttribute("CHECKCODE_SERVER",checkCode);
		
		//设置画笔颜色为黄色
		g.setColor(Color.YELLOW);
		//设置字体的小大
		g.setFont(new Font("黑体",Font.BOLD,24));
		//向图片上写入验证码
		g.drawString(checkCode,15,25);
		
		//将内存中的图片输出到浏览器
		//参数一:图片对象
		//参数二:图片的格式,如PNG,JPG,GIF
		//参数三:图片输出到哪里去
		ImageIO.write(image,"PNG",response.getOutputStream());
	}
	/**
	 * 产生4位随机字符串 
	 */
	private String getCheckCode() {
		String base = "0123456789ABCDEFGabcdefg";
		int size = base.length();
		Random r = new Random();
		StringBuffer sb = new StringBuffer();
		for(int i=1;i<=4;i++){
			//产生0到size-1的随机值
			int index = r.nextInt(size);
			//在base字符串中获取下标为index的字符
			char c = base.charAt(index);
			//将c放入到StringBuffer中去
			sb.append(c);
		}
		return sb.toString();
	}
	public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		this.doGet(request,response);
	}
}

4.2 LoginServlet登录

@WebServlet("/loginServlet")
public class LoginServlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("utf-8");//1 设置编码
        String verifycode = req.getParameter("verifycode");//2 获取用户填写的验证码
        HttpSession session = req.getSession();
        String checkcode_server = (String)session.getAttribute("CHECKCODE_SERVER");
        if(!checkcode_server.equalsIgnoreCase(verifycode)){
            //验证码不正确
            req.setAttribute("login_msg","你输入的验证码不正确");
            req.getRequestDispatcher("/login.jsp").forward(req,resp);//重定向
            return;
        }
        Map<String, String[]> map = req.getParameterMap();
        //封装User对象
        User user = new User();
        try {
            BeanUtils.populate(user,map);
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (InvocationTargetException e) {
            e.printStackTrace();
        }
        UserService service=new UserServiceImpl();
        User loginUser=service.login(user);
        System.out.println(loginUser+"------------------");
        //判断是否登录成功
        if(loginUser!=null){
            //登录成功
            session.setAttribute("user",user);
            resp.sendRedirect(req.getContextPath()+"/index.jsp");//跳转
        }else {
            req.setAttribute("login_msg","用户名或密码不正确");
            req.getRequestDispatcher("/login.jsp").forward(req,resp);
        }

    }

4.3 UserServiceImpl

    @Override
    public User login(User user) {
        return dao.findUserByUsernameAndPassword(user.getUsername(), user.getPassword());
    }

4.4 UserDaoImpl

public class UserDaoImpl implements UserDao{
    private JdbcTemplate jdbcTemplate=new JdbcTemplate(JDBCUtils.getDataSource());
    @Override
    public List<User> findAll() {
        String sql="select * from user";
        List<User> users = jdbcTemplate.query(sql, new BeanPropertyRowMapper<User>(User.class));
        return users;
    }

4.5 login.jsp

<div class="container" style="width: 400px;">
    <h3 style="text-align: center;">管理员登录</h3>
    <form action="${pageContext.request.contextPath}/loginServlet" method="post">
        <div class="form-group">
            <label for="user">用户名:</label>
            <input type="text" name="username" class="form-control" id="user" placeholder="请输入用户名"/>
        </div>

        <div class="form-group">
            <label for="password">密码:</label>
            <input type="password" name="password" class="form-control" id="password" placeholder="请输入密码"/>
        </div>

        <div class="form-inline">
            <label for="vcode">验证码:</label>
            <input type="text" name="verifycode" class="form-control" id="verifycode" placeholder="请输入验证码" style="width: 120px;"/>
            <a href="javascript:refreshCode()">
                <img src="${pageContext.request.contextPath}/checkCodeServlet" title="看不清点击刷新" id="vcode"/></a>
        </div>
        <hr/>
        <div class="form-group" style="text-align: center;">
            <input class="btn btn btn-primary" type="submit" value="登录">
        </div>
    </form>

    <!-- 出错显示的信息框 -->
    <div class="alert alert-warning alert-dismissible" role="alert">
        <button type="button" class="close" data-dismiss="alert" >
            <span>&times;</span></button>
        <strong>${login_msg}</strong>
    </div>
</div>

 结果:

 

5 列表查询

5.1 FindUserServlet

@WebServlet("/findUserServlet")
public class FindUserServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String id = req.getParameter("id"); //1.获取id
        UserService service=new UserServiceImpl();
        User user=service.findUserById(id);//2.调用Service查询
        System.out.println(user+"--------------");
        req.setAttribute("user",user); //3.将user存入request
        req.getRequestDispatcher("/update.jsp").forward(req,resp);//4.转发到update.jsp
    }

5.2 UserServiceImpl

public class UserServiceImpl implements UserService{
    private UserDao dao=new UserDaoImpl();

    @Override
    public List<User> findAll() {

        return dao.findAll();
    }

5.3 UserDaoImpl

public class UserDaoImpl implements UserDao{
    private JdbcTemplate jdbcTemplate=new JdbcTemplate(JDBCUtils.getDataSource());
    @Override
    public List<User> findAll() {
        String sql="select * from user";
        List<User> users = jdbcTemplate.query(sql, new BeanPropertyRowMapper<User>(User.class));
        return users;
    }

 5.4 list.jsp

        <table border="1" class="table table-bordered table-hover">
        <tr class="success">
            <th><input type="checkbox" id="firstCheckbox"></th>
            <th>编号</th>
            <th>姓名</th>
            <th>性别</th>
            <th>年龄</th>
            <th>籍贯</th>
            <th>QQ</th>
            <th>邮箱</th>
            <th>操作</th>
        </tr>
        <c:forEach items="${user}" var="user" varStatus="s">
<%--        <c:forEach items="${users}" var=
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值