Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何创建带有验证的jsp表单并将表单详细信息发送给管理员?_Java_Jsp - Fatal编程技术网

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

Java 如何创建带有验证的jsp表单并将表单详细信息发送给管理员?,java,jsp,Java,Jsp,我不熟悉JSP和相关技术。我需要编写一个带有一些必填字段(包括Captcha)的JSP表单,表单将需要验证。成功提交表单后,它应该能够通过电子邮件发送到指定的电子邮件地址,该地址是从.txt文件抓取/解析的 这基本上就是流程。但是从技术上讲,我应该如何在JSP/java中实现它呢?有没有参考我以上表格要求的好教程?我应该如何抓取/解析文本文件。最后, 我记得php有一个名为mail()的函数来处理电子邮件,我应该如何在jsp中处理它 非常感谢。一个问题有很多问题;以下是一些可能有用的链接(即,我

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

这基本上就是流程。但是从技术上讲,我应该如何在JSP/java中实现它呢?有没有参考我以上表格要求的好教程?我应该如何抓取/解析文本文件。最后, 我记得php有一个名为mail()的函数来处理电子邮件,我应该如何在jsp中处理它


非常感谢。

一个问题有很多问题;以下是一些可能有用的链接(即,我们在过去使用过它们):

卡普查:


JavaMail:

一个问题中有很多问题;以下是一些可能有用的链接(即,我们在过去使用过它们):

卡普查:


JavaMail:

尝试使用skeleton应用程序。它提供了从基本到高级的不同框架。这里有一个验证码集成。

尝试使用skeleton应用程序。它提供了从基本到高级的不同框架。这是一个关于验证码的集成。

JSP只是一种视图技术,它提供了一个模板,用于编写客户端标记/样式/脚本语言,如HTML/CSS/JS代码,同时还可以借助TagLib(如)动态控制页面流,以及借助。在您的特殊情况下,一个普通的HTML表单已经足够了

<form action="servletname" method="post">
    <input type="text" name="foo"><br>
    <input type="text" name="bar"><br>
    <input type="submit"><br>
</form>
其中,
${messages}
基本上是一个
映射
,您已经将它放在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);
}
protectedvoiddopost(HttpServletRequest请求,HttpServletResponse响应)抛出ServletException,IOException{
映射消息=新的HashMap();
setAttribute(“消息”,消息);
字符串foo=request.getParameter(“foo”);
stringbar=request.getParameter(“bar”);
if(foo==null | | foo.trim().isEmpty()){
messages.put(“foo”,“请输入此字段”);
}
if(bar==null | | bar.trim().isEmpty()){
messages.put(“栏”,“请输入此字段”);
}
if(messages.isEmpty()){
send(createTemplate(foo,bar),mailto);
messages.put(“成功”,“邮件成功发送!”);
}
//最后,将请求转发到JSP页面进行显示:
getRequestDispatcher(“pagename.jsp”).forward(请求,响应);
}
有关JSP/Servlet的更多信息,请参见和。更进一步,您可以借助于任何构建在Servlet API之上的MVC框架(如、、等),将所有样板文件(请求参数检索、值转换/验证、事件处理、导航等)抽象出来

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


关于邮件,您可以根据自己的喜好使用任何一种,但是选择仅限于伟大的JavaMail API和Apache提供的更方便的API,后者构建在JavaMail API之上。

JSP只是一种视图技术,提供了一个模板,用于编写客户端标记/样式/脚本语言,例如HTML/CSS/JS代码,以及借助TagLib(例如)动态控制页面流的可能性,以及借助。在您的特殊情况下,一个普通的HTML表单已经足够了

<form action="servletname" method="post">
    <input type="text" name="foo"><br>
    <input type="text" name="bar"><br>
    <input type="submit"><br>
</form>
其中,
${messages}
基本上是一个
映射
,您已经将它放在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);
}
protectedvoiddopost(HttpServletRequest请求,HttpServletResponse响应)抛出ServletException,IOException{
映射消息=新的HashMap();
setAttribute(“消息”,消息);
字符串foo=request.getParameter(“foo”);
stringbar=request.getParameter(“bar”);
if(foo==null | | foo.trim().isEmpty()){
messages.put(“foo”,“请输入此字段”);
}
if(bar==null | | bar.trim().isEmpty()){
messages.put(“栏”,“请输入此字段”);
}
if(messages.isEmpty()){
send(createTemplate(foo,bar),mailto);
messages.put(“成功”,“邮件成功发送!”);
}
//最后,将请求转发到JSP页面进行显示:
getRequestDispatcher(“pagename.jsp”).forward(请求,响应);
}
有关JSP/Servlet的更多信息,请参见和。更进一步,您可以借助于任何构建在Servlet API之上的MVC框架(如、、等),将所有样板文件(请求参数检索、值转换/验证、事件处理、导航等)抽象出来

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


关于邮件,您可以根据自己的喜好使用任何一种,但是选择仅限于伟大的JavaMail API和Apache提供的更方便的API,后者构建在JavaMail API之上。

此外,我将让其他人带头推荐Java web框架;我还没有使用足够多的种类来相互推荐(特别是对于初学者)@ZoogieZork:对不起,一个问题中确实有很多问题P谢谢,我将查看Kaptcha和JavaMail。远离JavaMail-它太复杂了。Commons电子邮件是通往目标的途径