Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.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/4/jsp/3.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
在JSP中使用Java类_Java_Jsp_Email_Tomcat_Jakarta Mail - Fatal编程技术网

在JSP中使用Java类

在JSP中使用Java类,java,jsp,email,tomcat,jakarta-mail,Java,Jsp,Email,Tomcat,Jakarta Mail,我有一个Java文件,其中包含有用的代码,我想在JSP文件中调用该Java代码。我已经试过了,例如,我正在使用一个Java文件,它成功地将电子邮件发送到一个邮件ID。但是如果我在JSP页面中调用它,它运行时不会出错,但是电子邮件不会发送 Java代码: package com.me; import java.util.Properties; import javax.mail.Message; import javax.mail.MessagingException; import javax.

我有一个Java文件,其中包含有用的代码,我想在JSP文件中调用该Java代码。我已经试过了,例如,我正在使用一个Java文件,它成功地将电子邮件发送到一个邮件ID。但是如果我在JSP页面中调用它,它运行时不会出错,但是电子邮件不会发送

Java代码:

package com.me;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class SSL {
    public static void main(String[] args) {
        Properties props = new Properties();
        props.put("mail.smtp.host", "smtp.gmail.com");
        props.put("mail.smtp.socketFactory.port", "465");
        props.put("mail.smtp.socketFactory.class",
            "javax.net.ssl.SSLSocketFactory");
        props.put("mail.smtp.auth", "true");
        props.put("mail.smtp.port", "465");

        Session session = Session.getDefaultInstance(props,
          new javax.mail.Authenticator() {
            protected PasswordAuthentication getPasswordAuthentication() {
              return new PasswordAuthentication("prakash.d2222","**********");
            }
          });

        try {     
          Message message = new MimeMessage(session);
          message.setFrom(new InternetAddress("from@no-spam.com"));
          message.setRecipients(Message.RecipientType.TO,
              InternetAddress.parse("prakash_d22@rediffmail.com"));
          message.setSubject("Testing Subject");
          message.setText("Dear Mail Crawler," +
                "from core java");
          Transport.send(message);

          System.out.println("Doneit");

        } catch (MessagingException e) {
          throw new RuntimeException(e);
        }
    }
}
<html>
<body>
  <jsp:useBean id="link" scope="application" class = "com.me.SSL" />            
  <% out.println("ok"); %>    
</body>
</html>
我的JSP代码是:

package com.me;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class SSL {
    public static void main(String[] args) {
        Properties props = new Properties();
        props.put("mail.smtp.host", "smtp.gmail.com");
        props.put("mail.smtp.socketFactory.port", "465");
        props.put("mail.smtp.socketFactory.class",
            "javax.net.ssl.SSLSocketFactory");
        props.put("mail.smtp.auth", "true");
        props.put("mail.smtp.port", "465");

        Session session = Session.getDefaultInstance(props,
          new javax.mail.Authenticator() {
            protected PasswordAuthentication getPasswordAuthentication() {
              return new PasswordAuthentication("prakash.d2222","**********");
            }
          });

        try {     
          Message message = new MimeMessage(session);
          message.setFrom(new InternetAddress("from@no-spam.com"));
          message.setRecipients(Message.RecipientType.TO,
              InternetAddress.parse("prakash_d22@rediffmail.com"));
          message.setSubject("Testing Subject");
          message.setText("Dear Mail Crawler," +
                "from core java");
          Transport.send(message);

          System.out.println("Doneit");

        } catch (MessagingException e) {
          throw new RuntimeException(e);
        }
    }
}
<html>
<body>
  <jsp:useBean id="link" scope="application" class = "com.me.SSL" />            
  <% out.println("ok"); %>    
</body>
</html>

您应该尝试在SSL类中调用该方法。从代码来看,您似乎只是在创建jsp:usebean来获取对象的实例

尝试${link.MethodName}

您可以使用

<jsp:useBean id="link" scope="application" class = "com.me.SSL" />          
<jsp:setProperty name="link" property="prop" value=""/>
<% out.println("ok"); %>    
这意味着在设置属性时调用
main
方法

如果您没有使用
jsp:useBean

<%@ page import="com.me.SSL" %>
<html>
<body>
  <% new SSL().main(null); out.println("ok"); %>    
</body>
</html>


但我使用的是main()。如何调用它?请检查此链接中的第2点。它说明了如何创建taglib函数并在jsp中使用它,或者可以调用main方法,就像从java代码调用任何其他方法一样,但使用scriplets。除非您将任何参数传递给main方法,否则传递null是可以的。不,它无论如何都不起作用。我已经更新了问题中的完整代码。感谢您的帮助。+1感谢您的正确解释,它工作了2天,非常辛苦。不调用java文件,是否可以用jsp本身编写此代码?出于好奇,你能不能给我一个链接,我可以从中获得更多的细节。在JSP中使用Scriptlet也经常违背逻辑与表示分离的原则。