データベースから登録済みの学生にメールを送信し、ユーザーのメールアドレスを取得しています。データベースからの電子メールをチェックすると、smtp サーバーを使用して、prn (ID) とパスワードに関する電子メールをユーザーに送信しています。私は 1 つのサーブレットとモデル クラスと 1 つの jsp を持っています。コードのスクリーンショットを添付しました。ありがとうございます。非常に小さな問題です。助けてください。私は学生です。前もって感謝します。:) NullPointerException であるエラーが1つだけ発生します
package com.student.connection;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.mail.Transport;
import javax.activation.*;
public class Mailer {
private Connection conn = null;
private PreparedStatement ps = null;
private Statement stmt = null;
private ResultSet rs = null;
public void send(String emailaddress) throws SQLException, ClassNotFoundException {
int prn = 0;
final String username = "12030142084@sicsr.ac.in";
final String password = "mypassword";
String email = new String();
String pass = new String();
System.out.println("Test");
String query = "select prn,email,password from studentdetails where email=" + emailaddress;
conn = DBConnection.createDBConnection();
stmt = conn.createStatement();
rs = stmt.executeQuery(query);
while (rs.next()) {
prn = rs.getInt(1);
email = rs.getString("email");
pass = rs.getString("password");
}
Properties props = new Properties();
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.port", "587");
Session session = Session.getInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
try {
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress("12030142084@sicsr.ac.in"));
message.setRecipients(Message.RecipientType.TO,
InternetAddress.parse(email));
message.setSubject("Password Recover");
message.setText("Your Prn is " + prn + "You Password is " + pass);
Transport.send(message);
System.out.println("Email Sent Succsessfully");
} catch (MessagingException e) {
//throw new RuntimeException(e);
} finally {
conn.close();
}
}
}
package com.student.controller;
public class ContactServlet extends HttpServlet {
private Mailer mailer;
@Override
public void init() {
String hostname = "smtp.gmail.com";
int port = 587;
String username = "12030142084@sicsr.ac.in";
String password = "mypassword";
}
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
/* TODO output your page here. You may use following sample code. */
String emailaddress = request.getParameter("emailadd");
// Do some validations and then send mail:
String msg = "";
try {
msg = "Mail Successfully Sent!!";
System.out.println("Check");
mailer.send("emailaddress"); // here is the error
System.out.println("Check2");
request.setAttribute("message", "Mail succesfully sent!");
request.getRequestDispatcher("/WEB-INF/recoverpassword.jsp").forward(request, response);
response.sendRedirect("index.jsp?error=" + msg);
} catch (Exception e) {
response.sendRedirect("recoverpassword.jsp" + msg);
throw new ServletException("Mailer failed", e);
}
out.println("<html>");
out.println("<head>");
out.println("<title>Servlet ContactServlet</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Servlet ContactServlet at " + request.getContextPath() + "</h1>");
out.println("</body>");
out.println("</html>");
} finally {
out.close();
}
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
@Override
public String getServletInfo() {
return "Short description";
}
}
WARNING: StandardWrapperValve[ContactServlet]: PWC1406: Servlet.service() for servlet ContactServlet threw exception java.lang.NullPointerException
at com.student.controller.ContactServlet.processRequest(ContactServlet.java:50)
at com.student.controller.ContactServlet.doPost(ContactServlet.java:102)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:688)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:770)
Jsp ファイルは正しく、ユーザー入力は 1 つだけで、ID は emailadd です。
誰か助けてください。