在两个servlet之间传递值时,请告诉我在使用request.setAttribute()时出错的地方

时间:2015-03-28 18:22:14

标签: java

我在这里做错了什么?

//BillServlet
public class BillServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) 
            throws ServletException, IOException {

        //general settings
        PrintWriter pw = response.getWriter() ;
        response.setContentType("text/html");

        // read form data

        String name = request.getParameter("t1") ;
        Float price = Float.parseFloat(request.getParameter("t2")) ;
        Float qty = Float.parseFloat(request.getParameter("t3")) ;

        //calculate bill amount
        Float bamt = price * qty ;


        //setting request attribute
        request.setAttribute("attr1", bamt);
        request.setAttribute("attr2", name);

        if (bamt >= 50000){
            RequestDispatcher rd = request.getRequestDispatcher("/discounturl") ;
            rd.forward(request, response);

    }

        else{

            pw.println("<br>item name :" +name + "price : " +price + "qty :" +qty +"<br>bill amount :" +bamt);

        }

        //close stream 
        pw.close();
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) 
            throws ServletException, IOException {


        doGet (request,response) ;
    }

}


//DiscountServlet

public class DiscountServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

                //general settings
                PrintWriter pw = response.getWriter() ;
                response.setContentType("text/html");

                //read attribute
                float amt = (Float)request.getAttribute("attr1") ;
                String name = (String)request.getAttribute("attr2") ;

                //calculate discount

                float discount = amt * 0.3f ;
                float finalamt = amt - discount ;

                //display details 
                pw.println("<br> item name :" +name );
                pw.println("<br> bill amount :" +amt);
                pw.println("<br> discount : " +discount);
                pw.println("<br> final amount : " +finalamt);




    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) 
            throws ServletException, IOException {

       doGet (request ,response) ;

    }

}

它给了我这个错误:

ype Exception report

message

description The server encountered an internal error that prevented it from fulfilling this request.

exception

    java.lang.NullPointerException
        com.ds.DiscountServlet.doGet(DiscountServlet.java:20)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:618)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
        org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    note The full stack trace of the root cause is available in the Apache Tomcat/8.0.9 logs.

0 个答案:

没有答案