在jsp中调用java文件
我正在创建一个网页,希望在其中使用gmail smtp发送邮件。我尝试使用jsp页面,但没有成功,因此我在核心java中创建了一个代码,该代码成功发送电子邮件。现在我希望在jsp页面中使用此java代码。我尝试了,但出现错误 java代码:在jsp中调用java文件,java,jsp,email,Java,Jsp,Email,我正在创建一个网页,希望在其中使用gmail smtp发送邮件。我尝试使用jsp页面,但没有成功,因此我在核心java中创建了一个代码,该代码成功发送电子邮件。现在我希望在jsp页面中使用此java代码。我尝试了,但出现错误 java代码: import java.util.Properties; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.PasswordAuthentic
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","password");
}
});
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("hi");
message.setText("12345" +
"\n\n No spam to my email, please!");
Transport.send(message);
System.out.println("Done");
} catch (MessagingException e) {
throw new RuntimeException(e);
}
}
}
我的jsp代码
<%@ page contentType="text/html; charset=iso-8859-1" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<body>
<jsp:useBean id="link" scope="application" class = "SSL.class" />
<jsp:setProperty name="link" property="*" />
</body>
</html>
因此,请帮助我,因为我是jsp新手。考虑以下建议:
.class
文件必须放在WEB-INF/class下我在您的类中看不到任何
getter/setter
方法,因此无需在jsp页面中使用
操作,也不包括对类的扩展
<jsp:useBean id="link" scope="application" class="com.me.SSL" />
您必须在JSP页面中调用show()方法:
<jsp:useBean id="link" scope="application" class="com.me.SSL" />
<%
link.show();
%>
或
考虑以下建议:
.class
文件必须放在WEB-INF/class下
不要在默认包中创建类
我在您的类中看不到任何getter/setter
方法,因此无需在jsp页面中使用
操作,也不包括对类的扩展
<jsp:useBean id="link" scope="application" class="com.me.SSL" />
您必须在JSP页面中调用show()方法:
<jsp:useBean id="link" scope="application" class="com.me.SSL" />
<%
link.show();
%>
或
直接的问题是,在“class=…”属性中使用的是文件名而不是类名。由于您的类是在默认包中声明的(因为您的类中没有包
声明),因此您应该将useBean
编写为:
<jsp:useBean id="link" scope="application" class="SSL" />
如果您还没有这样做,您应该确保“SSL.class”文件位于webapp的类路径上。例如,它可能位于“/WEB-INF/classes/”目录中,也可能位于“/WEB-INF/lib/”中的JAR文件中。直接的问题是,在“class=…”属性中使用的是文件名而不是类名。由于您的类是在默认包中声明的(因为您的类中没有包
声明),因此您应该将useBean
编写为:
<jsp:useBean id="link" scope="application" class="SSL" />
如果您还没有这样做,您应该确保“SSL.class”文件位于webapp的类路径上。例如,它可能位于“/WEB-INF/classes/”目录中,也可能位于“/WEB-INF/lib/”中的JAR文件中
public class SSL {
public void SendMail(){
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","password");
}
});
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("hi");
message.setText("12345" +
"\n\n No spam to my email, please!");
Transport.send(message);
System.out.println("Done");
} catch (MessagingException e) {
throw new RuntimeException(e);
}
}
}
只需创建一个自定义bean类,该类将与您的类一起工作SSL,并将其命名为sslimpelcenter
你们班在哪里
public class SSLImpelmenter
{
private SSL objSSL = new SSL();
//getter setter methods for objSSL
}
现在在JSP中
//Add import for SSL Class
//Now Use useBean tag
<jsp:useBean id="link" scope="application" class = "SSLImpelmenter" />
SSL objSSLJSP = link.getObjSSL();
objSSLJSP.SendMail();
//为SSL类添加导入
//现在使用useBean标记
SSL objSSLJSP=link.getObjSSL();
objSSLJSP.SendMail();
Firslt修改您的类SSL
public class SSL {
public void SendMail(){
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","password");
}
});
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("hi");
message.setText("12345" +
"\n\n No spam to my email, please!");
Transport.send(message);
System.out.println("Done");
} catch (MessagingException e) {
throw new RuntimeException(e);
}
}
}
只需创建一个自定义bean类,该类将与您的类一起工作SSL,并将其命名为sslimpelcenter
你们班在哪里
public class SSLImpelmenter
{
private SSL objSSL = new SSL();
//getter setter methods for objSSL
}
现在在JSP中
//Add import for SSL Class
//Now Use useBean tag
<jsp:useBean id="link" scope="application" class = "SSLImpelmenter" />
SSL objSSLJSP = link.getObjSSL();
objSSLJSP.SendMail();
//为SSL类添加导入
//现在使用useBean标记
SSL objSSLJSP=link.getObjSSL();
objSSLJSP.SendMail();
请参阅以下链接。请参阅以下链接。我使用的是tom cat 6,在web inf中没有classes文件夹。我要创建一个吗?我现在做了更改,显示没有错误,但仍然没有发送邮件。@AVD,我们应该使用bean方法在JSP页面中执行操作,该页面是一个bean类,在getter方法中提供SSL对象的引用。我使用的是tom cat 6,web inf中没有classes文件夹。我创建了一个吗?我现在做了更改,显示没有错误,但仍然没有发送邮件。@AVD,我们应该使用bean方法在JSP页面中执行操作,JSP页面是一个bean类,提供getter方法中SSL对象的引用。