首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试调用jsp页面中的Java方法时出现编译错误

尝试调用jsp页面中的Java方法时出现编译错误
EN

Stack Overflow用户
提问于 2021-01-15 02:38:25
回答 1查看 27关注 0票数 0

调用参数化构造函数工作得很好,但是当尝试调用一个方法时,它显示了这个错误:

找不到Symbol: SendEmail类型的方法getPassword()位置:变量obj

Java代码:

代码语言:javascript
复制
package Demo;
import java.nio.charset.Charset;
import java.util.Date;
import java.util.Properties;
import java.util.Random;

import javax.activation.*;
import javax.mail.*;
import javax.mail.internet.*;

public class SendEmail {
   private String password = "";
   public SendEmail() {
   }

   public SendEmail(String email) {
      try {
         String randPW = this.GenerateRandomPassword();
         this.password = randPW;
         this.send(email, randPW);
      } catch (Exception e) {
         System.out.println("Error, cause: " + e);
         // TODO: handle exception
      }

   }
   
   public String getPassword() {
      return password;
   }

   public String GenerateRandomPassword() {
        String SALTCHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
        StringBuilder salt = new StringBuilder();
        Random rnd = new Random();
        while (salt.length() < 18) { // length of the random string.
            int index = (int) (rnd.nextFloat() * SALTCHARS.length());
            salt.append(SALTCHARS.charAt(index));
        }
        String saltStr = salt.toString();
        return saltStr;
   }
   

   public void send(String email, String pw) {

      final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
      Properties props = System.getProperties();
      props.setProperty("mail.smtp.host", "smtp.gmail.com");
      props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);
      props.setProperty("mail.smtp.socketFactory.fallback", "false");
      props.setProperty("mail.smtp.port", "465");
      props.setProperty("mail.smtp.socketFactory.port", "465");
      props.put("mail.smtp.auth", "true");
      props.put("mail.debug", "true");
      props.put("mail.store.protocol", "pop3");
      props.put("mail.transport.protocol", "smtp");
      final String username = "darkmotakuw@gmail.com";//
      final String password = "danewpw123%^~";
      try {
         Session session = Session.getDefaultInstance(props, new Authenticator() {
            protected PasswordAuthentication getPasswordAuthentication() {
               return new PasswordAuthentication(username, password);
            }
         });

         Message msg = new MimeMessage(session);
         msg.setFrom(new InternetAddress(username));
         msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(email, false));
         msg.setSubject("Your Password Has Arrived!");
         msg.setText(pw);
         msg.setSentDate(new Date());
         Transport.send(msg);
      } catch (MessagingException e) {
         System.out.println("Error, cause: " + e);
      }
   }

}

JSP代码:

代码语言:javascript
复制
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%--<%@page import="java.sql.,java.util."%>--%>
<%@ page import="Demo.SendEmail"%>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>JSP Page</title>
</head>
<body>
  <%
      String email=(String)session.getAttribute("e");
      SendEmail obj = new SendEmail(email);
      String ran_pw = obj.getPassword();
  %>
  

</body>
</html>

它工作得很好,直到我添加了getPassword()方法

我正在尝试获取生成的随机密码,以便稍后使用NetBeans IDE8.2将其传递给DB Iam

EN

回答 1

Stack Overflow用户

发布于 2021-01-15 04:53:27

这看起来工作正常,但由于您不对表达式块中的ran_pw做任何操作,所以不会显示任何内容。您可能需要一个<%= ran_pw %>来显示它。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65725025

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档