Java 从servlet安全地向EJB传递参数?
将多个HTTP参数从servlet传递到EJB的安全规范方法是什么?该应用程序是一个基于web的SMTP客户端,它采用以下参数:Java 从servlet安全地向EJB传递参数?,java,ejb,parameter-passing,Java,Ejb,Parameter Passing,将多个HTTP参数从servlet传递到EJB的安全规范方法是什么?该应用程序是一个基于web的SMTP客户端,它采用以下参数: 从 到 密件抄送 抄送 主题 身体 为了将模型(EJB)与视图(JSP)和控制器(servlet)分开,我想避免将一个HttpServletRequest直接传递给EJB 我应该使用会话变量吗 我应该传递6个参数吗?要传递这6个参数,我必须在控制层中执行业务逻辑 代码: 有什么建议吗? 我希望避免将HttpServletRequest直接传递给EJB 很好。H
- 从
- 到
- 密件抄送
- 抄送
- 主题
- 身体
EJB
)与视图(JSP
)和控制器(servlet
)分开,我想避免将一个HttpServletRequest
直接传递给EJB
- 我应该使用
变量吗会话
- 我应该传递6个参数吗?要传递这6个参数,我必须在控制层中执行业务逻辑
将其视为将一种表示形式适应于另一种表示形式——这不是业务逻辑。BL是直接受到你的要求的影响,你在这里做的只是架构。我不想破坏性,但是如果你正在学习JSP,你应该认为这是一个贬低的技术,有利于JSF过渡到现代技术不是一个选择,不幸的是,所以,我应该创建一个POJO来解析HTTPServletRequest?还是应该在servlet中解析HTTPServletRequest?创建一个POJO或一个辅助EJB来解析6个参数似乎也太过分了;如果它很复杂,我可能会创建一个transformer类来实现这一点。我的意思是创建一个POJO将六个参数从servlet传递到EJB,而不是解析它们(请在google上搜索“transfer object”或“value object”EJB设计模式)。
public String send_message(HttpServletRequest request) {
try {
Properties properties = System.getProperties();
properties.put("mail.smtp.host", SMTP_HOST);
Session session = Session.getInstance(properties, null);
String from = request.getParameter("from");
String to = request.getParameter("to");
String cc = request.getParameter("cc");
String bcc = request.getParameter("bcc");
String subject = request.getParameter("subject");
String body = request.getParameter("body");
MimeMessage message = new MimeMessage(session);
Address sender = new InternetAddress(from);
message.setFrom(sender);
Address[] toAddresses = InternetAddress.parse(to);
message.setRecipients(Message.RecipientType.TO, toAddresses);
Address[] ccAddresses = InternetAddress.parse(cc);
message.setRecipients(Message.RecipientType.CC, ccAddresses);
Address[] bccAddresses = InternetAddress.parse(bcc);
message.setRecipients(Message.RecipientType.BCC, bccAddresses);
message.setSubject(subject);
message.setText(body);
Transport.send(message);
return "Your message was sent successfully!";
} catch (AddressException AE){
return "Oops! There was an error parsing the addresses!";
} catch (SendFailedException SFE){
return "Oops! There was an error sending the message!";
} catch (MessagingException ME){
return "Oops! There was an error sending the message!";
}
}