зачем использовать бины без сохранения состояния и состояния внутри сервлета? - PullRequest
0 голосов
/ 30 июня 2019

Код представляет собой HttpServlet, который использует bean-компоненты Stateless и Statefull для вывода значения, взятого в качестве ввода из формы.Фактически метод 'bounce' возвращает строку, которую я передаю ему.Почему Stateless beans используется для возврата значения на html-страницу?Разве это не то же самое, что написать программу без использования bean-компонентов?

 @EJB
    private StatelessSessionBean sless;

    @EJB//(name="StatefulSession", beanInterface=StatefulSession.class)
    private StatefulSessionBean sful;

    @Override
    public void service(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {

        resp.setContentType("text/html");
        PrintWriter out = resp.getWriter();

        try {

            out.println("<HTML> <HEAD> <TITLE> Servlet & Stateless/StatefulEJBs</TITLE> </HEAD> <BODY BGCOLOR=white>");
            out.println("<CENTER> <FONT size=+1> Servlet2EJBs: Please enter a message </FONT> </CENTER> <p> ");
            out.println("<form method=\"POST\">");
            out.println("<TABLE>");
            out.println("<tr><td>Message for the stateless EJB: </td>");
            out.println("<td><input type=\"text\" name=\"sl_msg\"> </td>");
            out.println("</tr><tr><td></td>");
            out.println("<td><input type=\"submit\" name=\"sub1\"> </td>");
            out.println("</tr>");
            out.println("</TABLE>");
            out.println("</form>");

            out.println("<form method=\"POST\">");
            out.println("<TABLE>");
            out.println("<tr><td>Message for the stateful EJB: </td>");
            out.println("<td><input type=\"text\" name=\"sf_msg\"> </td>");
            out.println("</tr><tr><td></td>");
            out.println("<td><input type=\"submit\" name=\"sub2\"> </td>");
            out.println("</tr>");
            out.println("</TABLE>");
            out.println("</form>");

            String val = req.getParameter("sl_msg");  
            if ((val != null) && (val.trim().length() > 0)) {
                out.println("<FONT size=+1 color=red> Message back from StatelessSessionBean: </FONT>"
                            + HTMLFilter.filter(sless.bounce(val)) + "<br>");
            }
            else {
                val = req.getParameter("sf_msg");

                if ((val != null) && (val.trim().length() > 0)) {
                    out.println("<FONT size=+1 color=red> Message(s) back from StatefulSessionBean: </FONT>"
                                + "<br>"+HTMLFilter.filter(sful.addAndRead(val)).replace("\n", "<br>") + "<br>");
                }
            }
            out.println("</BODY> </HTML> ");

        } catch (Exception ex) {
            ex.printStackTrace();
            System.out.println("webclient servlet test failed");
            throw new ServletException(ex);
        }
    }
}
...