java - 在jsp中调用java文件

标签 java jsp email

我正在创建一个网页,我想使用gmail smtp发送邮件。我尝试使用jsp页面,但我没有工作,所以我在核心java中创建了一个代码,它成功发送电子邮件。现在我想使用这个java我的 jsp 页面中的代码。我尝试了但出现错误

java代码:

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>

显示的错误是

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: /pizza/page/ssl.jsp(7,4) The value for the useBean class attribute SSL.class is invalid.
    org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)
    org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
    org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:148)
    org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1233)
    org.apache.jasper.compiler.Node$UseBean.accept(Node.java:1178)
    org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2361)
    org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2411)
    org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2417)
    org.apache.jasper.compiler.Node$Root.accept(Node.java:495)
    org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2361)
    org.apache.jasper.compiler.Generator.generate(Generator.java:3459)
    org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:231)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:354)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:334)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:321)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:592)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717

所以请帮助我,因为我是 jsp 新手。

最佳答案

考虑以下建议:

  1. .class文件必须放在WEB-INF/classes下
  2. 永远不要在默认包中创建
<小时/>
package com.me;

public class SSL { 
    public void show(){
         ///
    }
}

我看不到任何 getter/setter类中的方法,因此无需使用 <jsp:setProperty/> jsp 页面中的操作,并且不包含 class 的扩展名属性。

<jsp:useBean id="link" scope="application" class="com.me.SSL" />

编辑:

如果您使用IDE (netbeans/eclipse),那么您必须在/tomcat x.x/webapps/下创建文件夹结构.

/webapp   <--- This is known as `context` folder
|
|-------/WEB-INF
|       |
|       |-----------/classes
|       |                  |---/com/me/SSL.class
|       | 
|       |-----------/lib
|                    mail.jar
| sample.jsp

您必须在JSP页面中调用show()方法:

<jsp:useBean id="link" scope="application" class="com.me.SSL" />
<%
  link.show();
%> 

或者

<%
   com.me.SSL obj=new com.me.SSL();
   obj.show();
%>

关于java - 在jsp中调用java文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12016515/

相关文章:

email - 使用 Gmail 帐户的 XAMPP Sendmail

Java 多线程 - 我将如何生成两个额外的线程来增加数组中的值?

java - 从 eclipse Sirius 生成源代码

Java/JSP : How to add WaterMark on Video

ruby-on-rails - rails 电子邮件错误 - 530-5.5.1 需要身份验证。

Javax.mail 或 java email - 如何在不直接发送的情况下打开电子邮件

java - 如何通过 URL 对象访问嵌入在 JAR 文件中的 JPG?地址是什么?

java - 使用 Maven 从一个项目生成多个 War

java - 如何从struts中的类文件中换行jsp

Javascript Unicode 转义反斜杠