EL

作用

简化jsp的代码编写。
替换 <%%> 写法。
一般与EL表达式配合

使用

  1. 导入jar文件到工程的WebContent/Web-Inf/lib jstl.jar standard.jar
  2. 在jsp页面上,使用taglib 指令,来引入标签库

注意

如果想支持 EL表达式,那么引入的标签库必须选择1.1的版本,1.0的版本不支持EL表达式。
<%@ taglib prefix=”c” uri=”http://java.sun.com/jsp/jstl/core” %>

常用标签

c:set


${sessionScope.name }

c:if
判断test里面的EL表达式是否满足,
如果满足,就执行c:if标签中的输出,
c:if 是没有else的。


26 }”>
年龄大于了26岁…


年龄小于了26岁…


定义一个变量名 flag 去接收前面表达式的值,然后存在session域中

26 }” var=”flag” scope=”session”>
年龄大于了26岁…

取flag
${flag }

c:forEach

从1 开始遍历到10 ,得到的结果 ,赋值给 i ,并且会存储到page域中, step , 增幅为2,

i>[begin,end]varStatus:status.count:items:ELvar:user i – > [ b e g i n , e n d ] ​ v a r S t a t u s : 代 表 循 环 过 程 中 存 储 临 时 状 态 值 s t a t u s . c o u n t : 当 前 输 出 元 素 个 数 i t e m s : 表 示 遍 历 哪 一 个 对 象 , 注 意 , 这 里 必 须 写 E L 表 达 式 。 v a r : 遍 历 出 来 的 每 一 个 元 素 用 u s e r 去 接 收 。 {user.name } ----${user.age }

学生信息管理系统

需求分析

操作步骤

1.login.jsp登录页面
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
    <h2>欢迎使用登录系统</h2>
    <form action="LoginServlet" method="post">
        账号<input type="text" name="username"/>
        密码<input type="text" name="password"/>
        <input type="submit" value="登录"/>
    </form>
</body>
</html>
2.LoginServlet.java程序编写
此处需要分步:DAO--UserDao/UserDaoImpl(管理员用户层实现)
--> 主要做获取login的username和password,与mysql判断
--> true则跳转到stu_list的界面,显示所有学生信息
--> 衍生出stu_list.jsp页面和StuDao/StuDaoImpl(学生信息表的显示)
--> 与mysql交互,获取所有学生信息
--> false则显示登录失败
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //提交数据有可能中文,设置
        request.setCharacterEncoding("UTF-8");
        //网页输出
        response.setContentType("text/html;charset=UTF-8");
        //1.获取客户端提交的信息
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        //response.getWriter().write(username + "= =" + password);
        //打印测试
        //System.out.println(username + "==" + password);
        //2.访问dao,看看是否满足登录
        UserDao dao = new UserDaoImpl();
        boolean isSuccess = dao.login(username, password);
        //3.针对dao的返回结果,做出响应
        if(isSuccess){
//          response.getWriter().write("登录成功");
            //1.查询所有学生信息
            StuDao stuDao = new StuDaoImpl();
            List<Student> list = stuDao.findAll();
            //2.先把这个集合存到作用域
            request.getSession().setAttribute("list", list);

            //3.重定向
            response.sendRedirect("stu_list.jsp");
        }else{
            response.getWriter().write("用户名或密码错误");
        }
    }

UserDao.java
//该dao定义了对用户表的访问规则
public interface UserDao {
    /*此处简单返回一个Boolean类型,表明成功或失败即可
     * 
     * 开发中,登录的方法,一旦成功,应该返回个人信息
     * @param:username
     * @param:password
     * 
     * @return ture 成功
     * @return false 失败
     * */
    boolean login(String username, String password);
}

UserDaoImpl.java
    @Override
    public boolean login(String username,String password) {
        // TODO Auto-generated method stub
        Connection conn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        try {
            //获取连接
            conn = JDBCUtil.getConn();
            //校验是否获取到连接
            //System.out.println("数据库状态"+conn.isClosed());

            //创建ps对象
            String sql = "select * from t_user where username=? and password=?";
            ps = conn.prepareStatement(sql);

            //设置内容
            ps.setString(1, username);
            ps.setString(2, password);

            //开始执行
            rs = ps.executeQuery();
            //如果能成功移到下一行,表明有这个用户
            return rs.next(); 

        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
            JDBCUtil.release(conn, ps, rs);
        }

        return false;
    }

StuDao.java
public interface StuDao {
    /*
     * 查询出所有的学生信息
     * 返回list集合*/
    List<Student> findAll();

}
StuDaoImpl.java
//定义查询规则,查询所有信息,返回list集合
        @Override
    public List<Student> findAll() {
        Connection conn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        //创建集合,存储student
        List<Student> list = new ArrayList<Student>();
        try {
            //获取连接
            conn = JDBCUtil.getConn();
            String sql = "select * from t_stu";
            ps = conn.prepareStatement(sql);
            rs = ps.executeQuery();
            while(rs.next()){
                Student stu = new Student();

                stu.setId(rs.getInt("id"));
                stu.setAge(rs.getInt("age"));;
                stu.setName(rs.getString("name"));;
                stu.setGender(rs.getString("gender"));;
                stu.setAddrress(rs.getString("addrress"));;

                list.add(stu);
            }


        } catch (SQLException e) {
            e.printStackTrace();
        }finally{
            JDBCUtil.release(conn, ps, rs);
        }

        return list;
    }


stu_list.jsp代码
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib  prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>学生信息管理表</title>
</head>
<body>
    <h2>学生列表</h2>
    <table border="1" width="700">
        <tr>
            <td>编号</td>
            <td>姓名</td>
            <td>年龄</td>
            <td>性别</td>
            <td>住址</td>
        </tr>

        <c:forEach items="${list }" var="stu">
            <tr>
                <td>${stu.id }</td>
                <td>${stu.name }</td>
                <td>${stu.age }</td>
                <td>${stu.gender }</td>
                <td>${stu.addrress }</td>
            </tr>
        </c:forEach>

    </table>
</body>
</html>
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值