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