Problem with jsp / servlet page

I want to create a simple JSP page. I have an EJB, this has a bean session. I have a JSP page and a servlet, but I have a strange situation.

When I click "execute" on my page, it turns into a white page and does not give me a result. I am posting my code here, you can help me.

Servlet:

package web;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import java.io.IOException;
import javax.naming.*;
import javax.servlet.*;
import javax.servlet.*;
import javax.servlet.http.*;

import ejb.calc;
/**
 * Servlet implementation class calcServlet
 */
public class calcServlet extends HttpServlet {
 private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public calcServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

 /**
  * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
  */
 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

  HttpSession session=request.getSession(true); 
  RequestDispatcher rd=this.getServletContext().getRequestDispatcher("/index.jsp"); 

  float a=Float.parseFloat(request.getParameter("n1"));
  float b=Float.parseFloat(request.getParameter("n2"));
  char oper=request.getParameter("oper").charAt(0);
  float result=0;

  try {
   Context ctx=new InitialContext();
  // call the calcImpl class of the SimpleCalculator EJB with the mappedName
   calc cl=(calc) ctx.lookup("Firstcalc");
   switch(oper){

   case '+': result=cl.sum(a, b); break;

   case '-': result =cl.minus(a, b); break;

   case '*': result =cl.mult(a, b); break;

   case '/': result =cl.div(a, b); break;
  }
   session.setAttribute("result",result);
   request.setAttribute("a", a);

   request.setAttribute("b", b);
  }
  catch(NamingException e)
  {session.setAttribute("erreur: ",e.getMessage());
  }rd.forward(request,response);
 }

 /**
  * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
  */
 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  // TODO Auto-generated method stub
 }

}

JSP:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Insert title here</title>
    </head>
    <body>
    <h2> <b> Hello World To The Simple Calculator </b> </h2> <% float a=2,b=1; if (request.getAttribute("a")!=null) a=Float.parseFloat(request.getAttribute("a").toString()); if( request.getAttribute("b")!=null) b=Float.parseFloat(request.getAttribute("b").toString()); %> <form method="post" action="calcServlet"> <b>Number 1:</b><input type='text' name='n1' value="<%=a%>" /> <br/>
    <b>Number 2:</b><input type='text' name='n2' value="<%=b%>" /> <br/>
    <u><b>Options:</b></u> <br/>
    <ul>
    <li><b>+</b><input type='radio' name="oper" value='+' checked /></li>
    <li><b>&nbsp;-</b><input type='radio' name="oper" value='-' /></li>
    <li><b>*</b><input type='radio' name="oper" value='*' /></li>
    <li>&nbsp; <b>/</b><input type='radio' name="oper" value='/' /></li> </ul>
    <b>-------------------------------------------</b> <br/>
    <input type="submit" value="Executer" /> </form>
    <font color='blue'><b>Result is: </b> <%=session.getAttribute("result")%> </font> <br/> <font color='red' >Error: <%=session.getAttribute("error")%></font>
    </body>
    </html>
0
source share
1 answer

JSP , ( <% %> ), , . , . HTML (HTML, JSP, , ). .


, . . EL ( ${} ). . .

<input type="text" name="n1" value="${param.n1}" />

( : JSTL fn:escapeXml() XSS)

. ( / , ).

request.setAttribute("result", result);

EL : /// :

<b>Result is: </b> ${result}

:

+2

Source: https://habr.com/ru/post/1784140/


All Articles