Java web,数据库,JDBC...综合练习

注意:需要在WEB-INF文件下创建lib文件夹并将所需的所有jar包导入其中且关联自己的项目,在src目录下编写druid的配置文件(druid.properties),将bootsrap所需的文件夹直接放在web目录下,如下图所示.

创建数据库及表格数据:

编写页面表单(直接复制粘贴Bootstrap的表单稍加修改即可):

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>登录</title>
</head>
<body>
<form class="form-horizontal" action="http://localhost:8080/web_03/hkk" method="post">
    <div class="form-group">
        <label for="inputEmail3" class="col-sm-2 control-label">用户名</label>
        <div class="col-sm-10">
            <input type="text" class="form-control" id="inputEmail3" placeholder="Username" name="username">
        </div>
    </div>
    <div class="form-group">
        <label for="inputPassword3" class="col-sm-2 control-label">密码</label>
        <div class="col-sm-10">
            <input type="password" class="form-control" id="inputPassword3" placeholder="Password" name="password">
        </div>
    </div>
    <div class="form-group">
        <div class="col-sm-offset-2 col-sm-10">
            <div class="checkbox">
                <label>
                    <input type="checkbox"> 记住密码?
                </label>
            </div>
        </div>
    </div>
    <div class="form-group">
        <div class="col-sm-offset-2 col-sm-10">
            <button type="submit" class="btn btn-default">登录</button>
        </div>
    </div>
</form>
</body>
</html>

编写工具类代码:

import com.alibaba.druid.pool.DruidDataSourceFactory;

import javax.sql.DataSource;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
/*
* 创建工具类,用来获取连接池对象*/
public class GetDataSou {
    static Properties pro = new Properties();
     static DataSource dataSource= null;
    static {
        InputStream in = GetDataSou.class.getClassLoader().getResourceAsStream("druid.properties");
        try {
            pro.load(in);
            dataSource = DruidDataSourceFactory.createDataSource(pro);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    public static DataSource getDS(){
        return dataSource;
    }
}

创建自定义类查询数据,并将结果返回:

import cn.itcast.Utils.GetDataSou;
import org.springframework.jdbc.core.JdbcTemplate;

import javax.sql.DataSource;

public class MyDao {
        public int checkenIfo(String name ,String password){//查询用户名和密码是否存在,并将结果返回给业务逻辑层
            DataSource ds = GetDataSou.getDS();
            String sql = "select count(*) from users where name =? and password =?";
            JdbcTemplate jdbcTemplate = new JdbcTemplate(ds);
            int count = jdbcTemplate.queryForObject(sql, int.class, name, password);
            return count;
        }
}

创建自定义servlet类获取页面输入的数据和向页面输出结果:

import cn.itcast.dao.MyDao;

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.ArrayList;
import java.util.Enumeration;

@WebServlet(urlPatterns = "/hkk")
public class MyServlet11 extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        Enumeration<String> names = request.getParameterNames();//获取表单所有的name属性的值
        ArrayList<String> valueList = new ArrayList<>();//定义数组用来保存用户在页面输入的请求内容
        request.setCharacterEncoding("utf-8");//处理请求乱码
        while (names.hasMoreElements()) {
            String s = names.nextElement();
            System.out.println(s);//输出表单的name属性值
            String[] values = request.getParameterValues(s);//根据name属性的值获取所有的value
            for (String value : values) {
                valueList.add(value);
                System.out.println(value);//向控制台输出请求内容
            }
        }
        MyDao myDao = new MyDao();
        int i = myDao.checkenIfo(valueList.get(0), valueList.get(1));//将请求内容传给dao层进行查询
        response.setContentType("text/html;charset=utf-8");//处理输出乱码
        if (i == 1) {//判断查询结果并给页面输出提示
            response.getWriter().write("恭喜登录成功!");
        } else {
            response.getWriter().write("登录失败!");
        }
    }

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

}

页面及控制台的输出结果:

猜你喜欢

转载自blog.csdn.net/xilin6664/article/details/89631815