JavaEE作业-实验一

目录

[1 实验内容](#1 实验内容)

[2 思路](#2 思路)

[3 核心代码](#3 核心代码)

(1)前端核心代码:

(2)后端核心代码:

[4 实验结果](#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)账号或密码有问题为能成功登录时:

输入错误数据:

失败反馈:

相关推荐
Joy T13 小时前
Agent 确定性上下文设计:从 Prompt 参数注入到能力分层
java·开发语言·微服务·架构·prompt·agent context
m0_5873830016 小时前
广州 24 小时自助健身房解决方案技术实现与实战指南
java·spring·小程序·架构·需求分析
·云扬·16 小时前
Prompt 工程与安全:从 System 设计到注入防御
java·人工智能·安全·ai·prompt
代码不停17 小时前
自动化测试(java)
java·开发语言·selenium·自动化
鬼手点金19 小时前
opencode-rules 插件
java·开发语言·前端·人工智能·chrome·git·github
paopaokaka_luck19 小时前
滑雪场管理系统(AI智能助手流式对话,ECharts 运营数据分析、教练、雪具与场地一体化预约,钱包支付退款、订单核销与服务评价)
java·人工智能·spring boot·网络协议·数据分析·echarts
Wang's Blog20 小时前
Java 项目实战: 交友项目 - Dubbo 的内部结构与一次调用的完整链路
java·dubbo
Wang's Blog20 小时前
Java 项目实战: 交友项目 - Dubbo 入门引导
java·dubbo·交友
蜗牛互联网21 小时前
Python Agent工具调用的白名单、参数校验与审批门禁
java·服务器·前端·人工智能·后端·python
SL_staff21 小时前
当规则引擎开始‘懂业务’:JVS-Rules金融风控四大原生能力拆解
java·python·全栈