Login form displayed by a servlet

 

 

Servlet writes log in status to session after looking into database.

 

public class Login extends HttpServlet {

 

  public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {

    Connection con = null;

    Statement stmt = null;

    ResultSet rs = null;

    response.setContentType("text/html");

     PrintWriter out = response.getWriter();

 out.println("  <html> <body>                        <form action='\'>        <tr><td>Enter your name :</td><td><input type ='text' name = 'username'></td>");

            out.println("</tr><br><tr><td>Enter your password :</td><td><input type = 'password' name = 'pw'></td>");

            out.println("    </tr><br>        <tr><td><input type = 'submit' name = 'submit'></td></tr></form></body></html>");

    try {

      // Load (and therefore register) the Oracle Driver

                                    String user ;

                                    String email ;//these were fields in a table I already had

            Class.forName("org.gjt.mm.mysql.Driver");

con = DriverManager.getConnection( "jdbc:mysql://localhost/test", "root", "");  // Get a Connection to the database

HttpSession session = request.getSession();

session.setAttribute("login","NOT LOGGED IN");// not logged in on arrival

Statement s=con.createStatement();

user=request.getParameter("username");

email=request.getParameter("pw");

if(user!=null&&email!=null){

if(s.execute("Select username,emailaddress from users where username='"+user+"'"))

  {rs=s.getResultSet();

      if(rs.next())

                   if(rs.getString("username")!=null){ session.setAttribute("login","LOGGED IN");

                                                                             out.println("set logged in session info");

                                                                             //send redirect or forward to order servlet here

                                                                              }

      else {out.println("not found");}

}//execute

}//user null

}//try

catch(ClassNotFoundException e) {

     out.println("Couldn't load database driver: " + e.getMessage());    }

catch(SQLException e) {      out.println("SQLException caught: " + e.getMessage());    }

finally {

      // Always close the database connection.

      try {        if (con != null) con.close();      }

      catch (SQLException ignored) { }

}//finally

}//method

 }//servlet

 

 

 

A simple servlet useful for checking session

import java.io.*;

import java.sql.*;

import javax.servlet.*;

 

import javax.servlet.http.*;

public class CheckLogin extends HttpServlet {

 

  public void doGet(HttpServletRequest req, HttpServletResponse res)throws ServletException, IOException {

 

    res.setContentType("text/html");

    PrintWriter out = res.getWriter();

 

HttpSession session = req.getSession();

 

    String status = (String)session.getAttribute("login");

 

 

 

      if(status==null||status.equals("NOT LOGGED IN"))out.println("login status: NOT LOGGED IN");

      else out.println("login status: LOGGED IN");

          }

 

          }

 

 

 

 

 

Servlet for placing order …empty basket was last selection… now show basket selected (1 of each item has been entered):

 

Next screen – show basket -  before submit for place order:

 

And after submit

 

 

Accompanying black screen shows session used for storing order… initially a new order is built but subsequently the order is retrieved from session.

public class OrderServlet extends HttpServlet {

CustomerOrder order;

  public void doGet(HttpServletRequest req, HttpServletResponse res)throws ServletException, IOException {

 

            doPost(req,res);}

 

 

 

 

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

          response.setContentType("text/html");

              PrintWriter out = response.getWriter();

          HttpSession session = request.getSession();

              String status = (String)session.getAttribute("login");

                if(status==null||status.equals("NOT LOGGED IN")){out.println("login status: NOT LOGGED IN");

System.out.println("not logged in");//trace on blackscreen

                response.sendRedirect("Login");//unregistered users are redirected

                }

                else out.println("login status: LOGGED IN");

                System.out.println("logged in");

                 order=(CustomerOrder) session.getAttribute("order");//get the order from session

                      if(order==null){order=new CustomerOrder();System.out.println("built new order");}//or build new

           else System.out.println("order from session");//trace

                String param=request.getParameter("action");

System.out.println("action is"+ param);

 

                out.println("<html><body><H1 ALIGN='CENTER'>Order form!!!</H1>");

 

                     out.println("<FORM ACTION='\'>");

                      out.println("<CENTER>  Coffee: $6/lb  <INPUT TYPE='TEXT' NAME='coffee'></CENTER><BR>");

                      out.println(" <INPUT TYPE='hidden' NAME='coffeeprice' Value='6.00'></CENTER><BR>");

                     out.println(" <CENTER>  Peanuts: $3/lb<INPUT TYPE=T'ext' NAME='peanuts'></CENTER><BR>");

                     out.println(" <INPUT TYPE='hidden' NAME='peanutprice' Value='3.00'></CENTER><BR>");

                     out.println(" <CENTER>  Oil: $5/qt<INPUT TYPE='Text' NAME='oil'></CENTER><BR>");

                      out.println("<INPUT TYPE='hidden' NAME='oilprice' Value='5.00'></CENTER><BR>");

                     out.println(" <CENTER>  Cheese: $5/lb<INPUT TYPE='Text' NAME='cheese'></CENTER><BR>");

                     out.println(" <INPUT TYPE='hidden' NAME='cheeseprice' Value='5.00'></CENTER><BR>");

                      out.println(" <CENTER><INPUT TYPE='radio' name='action' value='Place Order' checked>Place Order</CENTER>");

                     out.println("<CENTER><INPUT TYPE='radio' name='action' value='Empty Basket'>Empty Basket</CENTER>");

                     out.println("<CENTER><INPUT TYPE='radio' name='action' value='Show Basket'>Show Basket</CENTER>");

                     out.println("<CENTER><INPUT TYPE='Submit' name='submit' value='submit'></CENTER>");

                     out.println("</FORM>");

 

      if(param!=null&&!param.equals("")){

 

                String nuts=request.getParameter("peanuts");

                if(nuts!=null&&nuts!="")

                             {order.setNuts(order.getNuts()+Integer.parseInt(nuts));

                             System.out.println("peanuts is"+ nuts);}

                 String coffee=request.getParameter("coffee");

                if(coffee!=null&&coffee!=""){

                               order.setCoffee(order.getCoffee()+Integer.parseInt(coffee));

                               System.out.println("coffee is"+ coffee);}

                 String cheese=request.getParameter("cheese");

                if(cheese!=null&&cheese!=""){

                                   order.setCheese(order.getCheese()+Integer.parseInt(cheese));

                                   System.out.println("cheese is"+ cheese);}

                 String oil=request.getParameter("oil");

                if(oil!=null&&oil!=""){

                               order.setOil(order.getOil()+Integer.parseInt(oil));

              System.out.println("oil is"+ oil);}

         if (param.equals("Place Order")){

 

 out.println("your order");

                              out.println("peanuts.....\t"+order.getNuts()+"\t"+order.getNutCost());

             out.println("oil.........\t"+order.getOil()+"\t"+order.getOilCost());

             out.println("coffee......\t"+order.getCoffee()+"\t"+order.getCoffeeCost());

             out.println("cheese......\t"+order.getCheese()+"\t"+order.getCheeseCost());

 

                              String cost=order.orderTotal();

             out.println("total....$"+cost);

 

                              }

                    else if (param.equals("Empty Basket")){order=new CustomerOrder();

                                out.println("your basket has been emptied");

                                                 out.println("peanuts.....\t"+order.getNuts()+"\t"+order.getNutCost());

                                 out.println("oil.........\t"+order.getOil()+"\t"+order.getOilCost());

                                 out.println("coffee......\t"+order.getCoffee()+"\t"+order.getCoffeeCost());

                                 out.println("cheese......\t"+order.getCheese()+"\t"+order.getCheeseCost());

 

 

 

 

                    }

         else if (param.equals("Show Basket")){

                              out.println("your current order");

                              out.println("peanuts.....\t"+order.getNuts()+"\t"+order.getNutCost());

             out.println("oil.........\t"+order.getOil()+"\t"+order.getOilCost());

             out.println("coffee......\t"+order.getCoffee()+"\t"+order.getCoffeeCost());

             out.println("cheese......\t"+order.getCheese()+"\t"+order.getCheeseCost());

                              }

 out.println("</BODY></HTML>");

session.setAttribute("order",order);//save the order in the session

}//else there is order to process

          }

 

class CustomerOrder{//inner customer order class gets put into the session

          NumberFormat n ;

          int coffee,peanuts,oil,cheese;

          public CustomerOrder(){

                   NumberFormat n = NumberFormat.getCurrencyInstance(Locale.US);

                   coffee=peanuts=cheese=oil=0;

}

void setNuts(int x){peanuts=x;}

void setCoffee(int x){coffee=x;}

void setCheese(int x){cheese=x;}

void setOil(int x){oil=x;}

 

int getNuts(){return peanuts;}

int getOil(){return oil;}

int getCoffee(){return coffee;}

int getCheese(){return cheese;}

String getNutCost(){Double n=new Double( getNuts()*3.0);//n.format(getNuts()*3.0)

return "$"+n.toString();}

String  getOilCost(){Double n=new Double( getOil()*5.0);return "$"+n.toString();}

String  getCoffeeCost(){Double n=new Double( getCoffee()*6.0);return "$"+n.toString();}

String  getCheeseCost(){Double n=new Double(getCheese()*5.0);return "$"+n.toString();}

String orderTotal()

{double val=peanuts*3+coffee*6+oil*5+cheese*5;

  NumberFormat n = NumberFormat.getCurrencyInstance(Locale.US);

  return n.format(val); }

 

}//inner

 

}//class