Цель сервлета - ответить на HTTP-запрос. Что вы должны сделать, это реорганизовать ваш код так, чтобы логика, которую вы хотите, была отделена от другого сервлета, и вы можете использовать ее независимо. Так, например, вы можете получить класс Mailman и MailServlet, который использует Mailman для своей работы. Нет смысла вызывать сервлет из другого сервлета.
Если после перехода на первую страницу вам нужно перейти на другую страницу, используйте перенаправление:
http://www.java -tips.org / Java-EE-советы / Java-сервлет / как к редирект-а-запроса с использованием-servlet.html
Edit:
Например, предположим, у вас есть такой сервлет:
public class MailServlet extends HttpServlet {
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException, IOException {
PrintWriter out=response.getWriter();
response.setContentType("text/html");
Message message =new MimeMessage(session1);
message.setFrom(new InternetAddress("someone@something.com"));
message.setRecipients(...);
message.doSomeOtherStuff();
Transport.send(message);
out.println("mail has been sent");
}
}
Вместо этого сделайте что-то вроде этого:
public class MailServlet extends HttpServlet {
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException, IOException {
PrintWriter out=response.getWriter();
response.setContentType("text/html");
new Mailer().sendMessage("someone@something.com", ...);
out.println("mail has been sent");
}
}
public class Mailer {
public void sendMessage(String from, ...) {
Message message =new MimeMessage(session1);
message.setFrom(new InternetAddress("someone@something.com"));
message.setRecipients(...);
message.doSomeOtherStuff();
Transport.send(message);
}
}