JSP中的登录表单

时间:2009-11-04 12:18:55

标签: jsp

在这里输入代码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

中做这样的事情

2 个答案:

答案 0 :(得分:2)

与PHP不同,您通常只使用JSP进行演示。尽管您可以使用scriptlet(内部带有原始Java代码的<% %>内容)在JSP文件中编写Java代码,但您应该(直接或间接)使用servlet类来控制请求和执行业务逻辑。您可以在JSP中使用taglib来生成/控制输出。标准taglib是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>中的方式调用它。

另见:

祝你好运。

答案 1 :(得分:1)

使用旧式Servlet和JSP比使用PHP更多地涉及Java。 您需要创建一个servlet,它可以访问HttpRequest和HttpResponse对象,并使用GET或POST方法将您使用JSP文件发送的参数读出到该Servlet。 此外,您必须创建名为web.xml的Web描述符文件,并将所有内容部署在诸如Tomcat之类的servlet容器中。

我会开始谷歌搜索“hello world servlet”,一旦你了解它的工作原理就不再困难了。