gpt4 book ai didi

java - 如何创建带有验证的 jsp 表单并将表单详细信息发送给管理员?

转载 作者:行者123 更新时间:2023-12-02 00:53:26 25 4
gpt4 key购买 nike

我是 JSP 和相关技术的新手。我需要编写一个包含一些必填字段(包括验证码)的 JSP 表单,该表单需要验证。成功提交表单后,它应该能够通过电子邮件发送到从 .txt 文件中抓取/解析的指定电子邮件地址。

这基本上就是流程。但从技术上讲我应该如何在 JSP/java 中做到这一点?有没有引用我上述表格要求的好的教程?我应该如何获取/解析文本文件。最后,我记得php有一个名为mail()的函数来发送电子邮件,我应该如何在jsp中执行此操作?

非常感谢。

最佳答案

JSP 只是一种 View 技术,提供了一个模板来编写客户端标记/样式/脚本语言,例如 HTML/CSS/JS 代码,并且可以借助标签库(例如 JSTL)动态控制页面流并在 EL 的帮助下访问后端数据。在您的具体情况下,一个普通的 HTML 表单就足够了。

<form action="servletname" method="post">
<input type="text" name="foo"><br>
<input type="text" name="bar"><br>
<input type="submit"><br>
</form>

要控制、预处理和/或后处理请求和响应,最好的方法是使用 Servlet 。基本上只需扩展 HttpServlet 并实现 doGet() 来预处理数据或 doPost() 来后处理数据。 servlet 可以映射到 web.xml 中的某个 url-pattern 上。 HTML 表单操作 URL 应与此 url-pattern 匹配。

如果您想使用完全相同的表单来重新显示提交的页面和任何错误消息,那么您可以使用 EL:

<form action="servletname" method="post">
<input type="text" name="foo" value="${param.foo}" ${not empty messages.succes ? 'disabled' : ''}>
<span class="error">${messages.foo}</span><br>
<input type="text" name="bar" value="${param.bar}" ${not empty messages.succes ? 'disabled' : ''}>
<span class="error">${messages.bar}</span><br>
<input type="submit">
<span class="succes">${messages.succes}</span><br>
</form>

其中 ${messages} 基本上是一个 Map<String, String>,您已将其放入 servlet 的请求范围中。例如:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Map<String, String> messages = new HashMap<String, String>();
request.setAttribute("messages", messages);

String foo = request.getParameter("foo");
String bar = request.getParameter("bar");

if (foo == null || foo.trim().isEmpty()) {
messages.put("foo", "Please enter this field");
}

if (bar == null || bar.trim().isEmpty()) {
messages.put("bar", "Please enter this field");
}

if (messages.isEmpty()) {
YourMailer.send(createTemplate(foo, bar), mailto);
messages.put("succes", "Mail successfully sent!");
}

// At end, forward request to JSP page for display:
request.getRequestDispatcher("pagename.jsp").forward(request, response);
}

有关 JSP/Servlet 的更多信息可以在 Java EE 5 tutorial part II chapters 4-9Marty Hall's Coreservlets.com tutorials 中找到。更进一步,您始终可以借助构建在 Servlet API 之上的任何 MVC 框架(例如 Sun JSFApache Struts )来抽象所有样板内容(请求参数检索、值转换/验证、事件处理、导航等)。 、Spring MVC 等等。

关于验证码,您可以根据自己的喜好使用任何 Java Captcha API 并按照说明进行操作。他们通常有自己的 servlet/过滤器,在请求或 session 范围中存储键/切换/信号,以确定验证码是否匹配。您只需在 servlet 内访问其结果即可。

关于邮件,您可以根据自己的喜好使用任何 Java mail API,但是选择仅限于出色的 JavaMail API 和 Apache 提供的更方便的 API(构建在 JavaMail API 之上)。

关于java - 如何创建带有验证的 jsp 表单并将表单详细信息发送给管理员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1998379/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com