调用参数化构造函数工作得很好,但是当尝试调用一个方法时,它显示了这个错误:
找不到Symbol: SendEmail类型的方法getPassword()位置:变量obj
Java代码:
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代码:
<%@ 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
发布于 2021-01-15 04:53:27
这看起来工作正常,但由于您不对表达式块中的ran_pw做任何操作,所以不会显示任何内容。您可能需要一个<%= ran_pw %>来显示它。
https://stackoverflow.com/questions/65725025
复制相似问题