当前位置: 首页 > article >正文

JavaEE作业-实验一

目录

1 实验内容

2 思路

3 核心代码

(1)前端核心代码:

(2)后端核心代码:

4 实验结果


1 实验内容

用Servlet + JSP + JavaBean实现登录功能

2 思路

①建好web项目,创建数据库

②建立两个简单的前端页面,用于登录和验证是否成功登录

③创建五个包,bean用于作为数据的载体,dao、service、control用于实现前端与数据库的交互,util为JDBC工具包

④前端输入数据,通过访问数据库实现登录,并向前端页面提供相应反馈

3 核心代码

(1)前端核心代码:

①提交数据与失败反馈:

<form action="login" method="post">
    <p>登录页面</p>
    <p>账号</p>
    <input type="text" class="form-control" name="user_account" style="width: 200px">
    <p>密码</p>
    <input type="password" class="form-control" name="user_password" style="width: 200px">
    <p></p>
    <button type="submit">登录</button>
</form>
<span style="color: #F00;">${info}</span>

②成功登录反馈:

<p>尊敬的${name},欢迎您</p>

(2)后端核心代码:

①前端与后端交互:

@WebServlet("/login")
public class LoginControl extends HttpServlet{
    UserService userService = new UserServiceImpl();
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req,resp);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");
        String user_account = request.getParameter("user_account");
        String user_password = request.getParameter("user_password");
        User user = new User(user_account, user_password, null);
        String result = userService.login(user);
        if(result != null) {
            request.getSession().setAttribute("name", result);
            response.sendRedirect("success.jsp");
        }else {
            request.setAttribute("info", "账号或密码错误");
            request.getRequestDispatcher("index.jsp").forward(request, response);
        }
    }
}

②后端与数据库交互:

public class UserDaoImpl implements UserDao {
    @Override
    public String login(User user) {
        Connection conn = JDBCUtil.getConn();
        String sql = "select user_name from experiment1.user where user_account=? and user_password = ?";
        String userName = null;
        PreparedStatement pstmt = null;
        ResultSet rs = null;
        try {
            pstmt = conn.prepareStatement(sql);
            pstmt.setString(1, user.getUserAccount());
            pstmt.setString(2, user.getUserPassword());
            rs = pstmt.executeQuery();
            if(rs.next()){
                userName = rs.getString(1);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return userName;
    }
}

4 实验结果

已知数据库中的数据为:

(1)输入正确账号和密码并成功登录时:

输入正确数据:

成功跳转:

(2)账号或密码有问题为能成功登录时:

输入错误数据:

失败反馈:


http://www.kler.cn/a/229486.html

相关文章:

  • OpenCV基础:矩阵的创建、检索与赋值
  • Python在Excel工作表中创建数据透视表
  • 探索学习 Python 的有效方式方法
  • 20250112面试鸭特训营第20天
  • 【Vue实战】Vuex 和 Axios 拦截器设置全局 Loading
  • vue 中的 v-model
  • 机器学习---半监督学习简单示例(标签传播算法)
  • TypeScript:将arraybuffer类型数据转换为json
  • 智能优化算法 | Matlab实现飞蛾扑火(MFO)(内含完整源码)
  • 前端架构: 脚手架在前端研发流程中的意义
  • Spring Boot整合新版Spring Security:Lambda表达式配置优雅安全
  • 71.Spring和SpringMVC为什么需要父子容器?
  • 鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Radio组件
  • macOS Sonoma 14系统安装包
  • 算法.1-三大排序算法-对数器-二分
  • 什么是TCP三次握手、四次挥手?
  • 绕过过滤空格的 SQL 注入
  • 微服务介绍
  • Javascript | JS如何断点测试(WebStorm)
  • pytest的常用插件和Allure测试报告
  • 【蓝桥杯选拔赛真题91】Scratch筛选数据 第十五届蓝桥杯scratch图形化编程 少儿编程创意编程选拔赛真题解析
  • 宠物空气净化器哪个品牌质量好?实惠的猫用猫用净化器牌子测评
  • 计算机设计大赛 深度学习+opencv+python实现车道线检测 - 自动驾驶
  • 在每个地方都应该添加 memo 吗?
  • 【ArcGIS微课1000例】0101:删除冗余节点或折点
  • 计算机网络——03网络核心