JSP 中的登录表单

2023-12-01

在这里输入代码Hiya,到目前为止我根本没有使用JSP,我发现一些在线教程学习起来非常复杂,我需要制作简单的登录表单..对我来说用PHP来做这不是问题,但在JSP是个大问题。以下是我在简单明了的 PHP、HTML 中的做法:

<form action="action.php" method="post">
<input name="username" type="text" />
<input name="password" type="password" />
</form>

这是action.php

<?php
$user = $_POST['username'];
$pwd = $_POST['password'];
if($user != "" && $pwd != "")
{
  ... check whether md5 value of $pwd for username $user matches the value in database..
if so then redirect somewhere..
}
?>

我该如何在JSP中做这样的事情


与 PHP 不同,您通常使用JSP仅供演示。尽管事实上您可以使用 scriptlet 在 JSP 文件中编写 Java 代码(<% %>里面有原始Java代码的东西),你应该使用(直接或间接)servlet类来控制请求并执行业务逻辑。您可以在 JSP 中使用标记库来生成/控制输出。标准标签库是JSTL,其中 JSTL“核心”是最重要的。您可以使用EL(表达式语言)访问页面、请求、会话和应用程序范围中可用的数据。

首先,创建一个JSP文件基本上包含以下内容:

<form action="${pageContext.request.contextPath}/login" method="post">
    <input type="text" name="username">
    <input type="password" name="password">
    <input type="submit">
</form>

然后创建一个servlet类有doPost()实施如下:

String username = request.getParameter("username");
String password = request.getParameter("password");
User user = userDAO.find(username, password);

if (user != null) {
    request.getSession().setAttribute("user", user); // Logged in!
    response.sendRedirect(request.getContextPath() + "/home"); // Redirect to some home page.
} else {
    request.setAttribute("message", "Unknown login, try again."); // Print it in JSP as ${message}.
    request.getRequestDispatcher("/WEB-INF/login.jsp").forward(request, response); // Redisplay same JSP with error message.
}

最后注释servlet类如下:

@WebServlet("/login")

这意味着您可以通过以下方式调用它http://example.com/webapp/login正如所做的那样<form action>.

也可以看看:

  • 我们的 servlet wiki 页面
  • 如何避免JSP文件中出现Java代码?
  • Servlet 中的 doGet 和 doPost

祝你好运。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JSP 中的登录表单 的相关文章

随机推荐