import java.io.IOException; import java.io.PrintWriter; import java.util.*; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.sql.*; import java.sql.SQLException; public class Servlet1 extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{ response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); out.println(""); out.println("

Welcome to SIP's Registration Page

"); out.println(""); out.println("

Registration Form

"); out.println("
"); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println(""); out.println("
"); out.println(""); out.println("Personal information
UserName
"); out.println("enter your UserName"); out.println("
Password
"); out.println("enter your Password"); out.println("
First Name
"); out.println("enter your First Name"); out.println("
Last Name
"); out.println("enter your Last Name"); out.println("
email
"); out.println("enter your email"); out.println("
Address
"); out.println("enter your Address(Road/Roadnumber/city/Postalcode)"); out.println("
Country
"); out.println("enter the name of the country you live"); out.println("
Forward
"); out.println("enter the UserName of the person you want to be forwarded to"); out.println("
Blocking
"); out.println("enter the name of the persons you wish to block (separated by semicolon)"); out.println("
Choice"); out.println(""); out.println("Make a new registration
"); out.println(""); out.println("Update my personal information - using my current UserName. Please type all your personal information except from forwarding " + "and blocking preferences. Those last are udated by choosing the specific radio button
"); out.println(""); out.println("Update my blocking preferences (need to type only your UserName and password)
"); out.println(""); out.println("Update my forward preferences (need to type only your UserName and password)
"); out.println(""); out.println("Check my account (need to type only your UserName and password)
"); out.println(""); out.println("
"); out.println("
"); out.println("
"); out.println(""); out.println(""); out.close(); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); int noError=1; Connection C=null; PrintWriter out = response.getWriter(); String choice=null; if(!(request.getParameter("choice")).equals("")){choice=request.getParameter("choice");} out.println(""); out.println(""); out.println("Registration/Update process"); out.println(""); out.println(""); out.println("

Here are the results of your registration/update



"); if(choice.equals("update_infos")){ if ((request.getParameter("userName")==null)|(request.getParameter("password")==null)) { noError=0; out.println("

An error occured while processing your data. Please try again!

"); out.println(""); out.println(""); out.close();} else { try { Class.forName("com.mysql.jdbc.Driver"); System.out.println("MySQL Driver Load Ok!"); } catch (ClassNotFoundException e) { System.err.println(e); } try { String url1 = "jdbc:mysql://localhost/sip"; C = DriverManager.getConnection (url1,"root",""); System.out.println("MySQL Connection Ok!"); } catch (SQLException e) { System.err.println(e); } String userName=request.getParameter("userName"); String password=request.getParameter("password"); String firstName=request.getParameter("firstName"); String lastName=request.getParameter("lastName"); String email=request.getParameter("email"); String address=request.getParameter("address"); String country=request.getParameter("country"); String forward=request.getParameter("forward"); String blocking=request.getParameter("blocking"); ResultSet rs1=null; PreparedStatement ps9=null; String sql1 = "SELECT * FROM USERS WHERE UserName=?"; try { ps9=C.prepareStatement(sql1); ps9.setString(1,userName); rs1=ps9.executeQuery(); } catch(Exception ex){ noError=0; out.println("

SQL Error 3


"); out.println(ex.getMessage()); out.println(""); out.println(""); out.close(); } try { if(!rs1.next()){ noError=0; out.println("

SQL Error


"); out.println("

This UserName you've given does not exist. Please try another.

"); try { C.close(); } catch (SQLException exit) { exit.printStackTrace(); } out.println(""); out.println(""); out.close(); } else{ rs1.close(); ResultSet rs=null; PreparedStatement ps6=null; String sql = "SELECT * FROM USERS WHERE password=?"; try { ps6=C.prepareStatement(sql); ps6.setString(1,password); rs=ps6.executeQuery(); } catch(Exception ex){ noError=0; out.println("

SQL Error 3


"); out.println(ex.getMessage()); out.println(""); out.println(""); out.close(); } try { if(rs.next()){ String onoma=rs.getString("UserName"); String pass=rs.getString("Password"); if(!((onoma.equals(userName))&&pass.equals(password))){ noError=0; out.println("

SQL Error 4


"); out.println("

This password belongs to another user. Please try another.

"); try { C.close(); } catch (SQLException exit) { exit.printStackTrace(); } out.println(""); out.println(""); out.close();} } else{ rs.close(); //Create the needed parameters for the Sql statement String sql2; PreparedStatement ps1=null; PreparedStatement ps2=null; sql2 = "UPDATE USERS set Password= ?, FirstName=?, LastName=?, Email=?, Address=?, Country=? WHERE UserName=?"; try { ps1=C.prepareStatement(sql2); ps1.setString(1,password); ps1.setString(2,firstName); ps1.setString(3,lastName); ps1.setString(4,email); ps1.setString(5,address); ps1.setString(6,country); ps1.setString(7,userName); ps1.executeUpdate();} catch(Exception ex){ noError=0; out.println("

SQL Error


"); out.println(ex.getMessage()); try { C.close(); } catch (SQLException exit) { exit.printStackTrace(); } out.println(""); out.println(""); out.close();} try { C.close(); } catch (SQLException ex) { ex.printStackTrace(); } //if(!forward.equals("")){ //////Idia diadikasia opws kai parakatw///////////////// ///////O xrhsths an thelei na kanei update sto forwarding prepei na epileksei to radio button/// // } // if (!blocking.equals("")){ //////Idia diadikasia opws kai parakatw///////////////// ///////O xrhsths an thelei na kanei update sto blocking prepei na epileksei to radio button/// // } } } catch (SQLException ex) { ex.printStackTrace(); } } } catch (SQLException ex) { ex.printStackTrace(); } } } else if(choice.equals("update_blocking")) { if ((request.getParameter("userName")==null)|(request.getParameter("password")==null)){ noError=0; out.println("

An error occured while processing your data. Please try again!

"); out.println(""); out.println(""); out.close();} else { String userName=request.getParameter("userName"); String password=request.getParameter("password"); String blocking=request.getParameter("blocking"); try { Class.forName("com.mysql.jdbc.Driver"); System.out.println("MySQL Driver Load Ok!"); } catch (ClassNotFoundException e) { System.err.println(e); } try { String url1 = "jdbc:mysql://localhost/sip"; C = DriverManager.getConnection (url1,"root",""); System.out.println("MySQL Connection Ok!"); } catch (SQLException e) { System.err.println(e); } ResultSet rs = null; PreparedStatement ps3=null; String sql = "SELECT * FROM USERS WHERE UserName=? and Password=?"; try { ps3=C.prepareStatement(sql); ps3.setString(1,userName); ps3.setString(2,password); rs=ps3.executeQuery();} catch(Exception ex){ noError=0; out.println("

SQL Error.Please try again.


"); out.println(ex.getMessage()); try { C.close(); } catch (SQLException exit) { exit.printStackTrace(); } out.println(""); out.println(""); out.close();} try { if(rs.next()){ PreparedStatement ps1=null; String sql1 = "DELETE FROM BLOCKING WHERE Blocker=?"; try { ps1=C.prepareStatement(sql1); ps1.setString(1,userName); ps1.executeUpdate();} catch(Exception ex){ noError=0; out.println("

SQL Error


"); out.println(ex.getMessage()); out.println(""); out.println(""); out.close();} try { rs.close(); } catch (SQLException ex) { ex.printStackTrace(); } if(blocking!=""){ StringTokenizer tk = new StringTokenizer(blocking,";"); String tokens[] = new String[tk.countTokens()]; for (int i = 0; i < tokens.length; i++) { tokens[i] = tk.nextToken();} for (int j = 0; j < tokens.length; j++) { if(tokens[j]!=null){ ResultSet rs7 = null; PreparedStatement ps7=null; String sql7 = "SELECT * FROM USERS WHERE UserName=?"; try { ps7=C.prepareStatement(sql7); ps7.setString(1,tokens[j]); rs7=ps7.executeQuery();} catch(Exception ex){ noError=0; out.println("

SQL Error 1


"); out.println(ex.getMessage()); try { C.close(); } catch (SQLException exit) { exit.printStackTrace(); } out.println(""); out.println(""); out.close();} try { if(!rs7.next()){ noError=0; out.println("

SQL Error 2


"); out.println("

This UserName you choosed to block does not exist. Please try another.

"); try { C.close(); } catch (SQLException exit) { exit.printStackTrace(); } out.println(""); out.println(""); out.close();} else{ rs7.close(); PreparedStatement ps2=null; String sql2 = "INSERT INTO BLOCKING(Blocker,Blocked) VALUES (? , ?)"; try { ps2=C.prepareStatement(sql2); ps2.setString(1,userName); ps2.setString(2,tokens[j]); ps2.executeUpdate();} catch(Exception ex){ noError=0; out.println("

SQL Error


"); out.println(ex.getMessage()); try { C.close(); } catch (SQLException exit) { exit.printStackTrace(); } out.println(""); out.println(""); out.close();} } } catch (SQLException ex) { ex.printStackTrace(); } } } } else{ out.println("**Blocking preferences deleted

");} } else { noError=0; out.println("

Error


"); out.println("Not a valid user or missing value.Please subscribe first or try again!"); out.println(""); out.println(""); out.close(); } } catch (SQLException ex) { ex.printStackTrace(); } try { C.close(); } catch (SQLException ex) { ex.printStackTrace();} } } else if(choice.equals("update_forwarding")) { if ((request.getParameter("userName")==null)|(request.getParameter("password")==null)) { noError=0; out.println("

Please enter both username and password

"); out.println(""); out.println(""); out.close(); } else { String userName=request.getParameter("userName"); String password=request.getParameter("password"); String forward=request.getParameter("forward"); try { Class.forName("com.mysql.jdbc.Driver"); System.out.println("MySQL Driver Load Ok!"); } catch (ClassNotFoundException e) { System.err.println(e); } try { String url1 = "jdbc:mysql://localhost/sip"; C = DriverManager.getConnection (url1,"root",""); System.out.println("MySQL Connection Ok!"); } catch (SQLException e) { System.err.println(e); } PreparedStatement ps3=null; ResultSet rs=null; String sql = "SELECT * FROM USERS WHERE UserName=? and Password=?"; try { ps3=C.prepareStatement(sql); ps3.setString(1,userName); ps3.setString(2,password); rs=ps3.executeQuery();} catch(Exception ex) { noError=0; out.println("

SQL Error.Please try again.


"); out.println(ex.getMessage()); try { C.close(); } catch (SQLException exit) { exit.printStackTrace(); } out.println(""); out.println(""); out.close(); } try { if(rs.next()) { if(forward.equals("")) { PreparedStatement ps1=null; String sql1 = "DELETE FROM FORWARDING WHERE Forwarder=?"; try { ps1=C.prepareStatement(sql1); ps1.setString(1,userName); ps1.executeUpdate();} catch(Exception ex) { noError=0; out.println("

SQL Error


"); out.println(ex.getMessage()); out.println(""); out.println(""); out.close(); } } else { ResultSet rs7 = null; PreparedStatement ps7=null; String sql7 = "SELECT * FROM USERS WHERE UserName=?"; try { ps7=C.prepareStatement(sql7); ps7.setString(1,forward); rs7=ps7.executeQuery(); } catch(Exception ex) { noError=0; out.println("

SQL Error 1


"); out.println(ex.getMessage()); try { C.close(); } catch (SQLException exit) { exit.printStackTrace(); } out.println(""); out.println(""); out.close(); } if(!rs7.next()) { noError=0; out.println("

SQL Error 2


"); out.println("

This UserName you choosed to forward to does not exist. Please try another.

"); try { C.close(); } catch (SQLException exit) { exit.printStackTrace(); } out.println(""); out.println(""); out.close(); } else { ////////////////////Start check circle///////////////////////////////// String currentFor=forward; ArrayList fChain=new ArrayList(); fChain.add(0,userName); fChain.add(1,forward); boolean noCycle=true,continueFlag=true; while(continueFlag && noCycle) { ResultSet rsCycle=null; PreparedStatement psCycle=null; String sqlCycle = "SELECT FORWARDED FROM FORWARDING WHERE FORWARDER=?"; try { psCycle=C.prepareStatement(sqlCycle); psCycle.setString(1,currentFor); rsCycle=psCycle.executeQuery(); } catch(Exception ex) { noError=0; out.println("

SQL Error 3


"); out.println(ex.getMessage()); out.println(""); out.println(""); out.close(); } if (!rsCycle.next()) continueFlag=false; else { String res=rsCycle.getString("FORWARDED"); for (int i=0; iSQL Error 1
"); out.println(ex.getMessage()); try { C.close(); } catch (SQLException exit) { exit.printStackTrace(); } out.println(""); out.println(""); out.close(); } if ((!rs7.next())&& noCycle) { PreparedStatement ps1=null; String sql1 = "INSERT INTO FORWARDING (Forwarded,Forwarder) VALUES(?,?)"; try { ps1=C.prepareStatement(sql1); ps1.setString(1,forward); ps1.setString(2,userName); ps1.executeUpdate(); } catch(Exception ex) { noError=0; out.println("

SQL Error


"); out.println(ex.getMessage()); out.println(""); out.println(""); out.close(); } } else if (noCycle) { PreparedStatement ps1=null; String sql1 = "UPDATE FORWARDING SET Forwarded=? WHERE Forwader=?"; try { ps1=C.prepareStatement(sql1); ps1.setString(1,forward); ps1.setString(2,userName); ps1.executeUpdate();} catch(Exception ex) { noError=0; out.println("

SQL Error


"); out.println(ex.getMessage()); out.println(""); out.println(""); out.close(); } } else { noError=0; out.println("Sorry,you cannot forward to "+ forward+".
Forward circle detected
"); out.println(""); out.println(""); out.close(); } } } } else { noError=0; out.println("

Error


"); out.println("Not a valid user or missing value.Please subscribe first or try again!"); out.println(""); out.println(""); out.close(); } } catch (SQLException ex) { ex.printStackTrace(); } try { rs.close(); C.close(); } catch (SQLException ex) { ex.printStackTrace(); } } } else if(choice.equals("new_registration")) { String userName=request.getParameter("userName"); String password=request.getParameter("password"); String firstName=request.getParameter("firstName"); String lastName=request.getParameter("lastName"); String email=request.getParameter("email"); String address=request.getParameter("address"); String country=request.getParameter("country"); String forward=request.getParameter("forward"); String blocking=request.getParameter("blocking"); String tokens[]=null; int ok=0; if(userName.equals("")|password.equals("")|firstName.equals("")|lastName.equals("")|address.equals("")|country.equals("")){ out.println("

You have not given all the information required.Please try again

"); noError=0; out.println(""); out.println(""); out.close(); } else{ try { Class.forName("com.mysql.jdbc.Driver"); System.out.println("MySQL Driver Load Ok!"); } catch (ClassNotFoundException e) { System.err.println(e); } try { String url1 = "jdbc:mysql://localhost/sip"; C = DriverManager.getConnection (url1,"root",""); System.out.println("MySQL Connection Ok!"); } catch (SQLException e) { System.err.println(e); } if(blocking!=""){ StringTokenizer tk = new StringTokenizer(blocking,";"); tokens = new String[tk.countTokens()]; for (int i = 0; i < tokens.length; i++) { tokens[i] = tk.nextToken(); } } ResultSet rs = null; PreparedStatement ps3=null; String sql = "SELECT * FROM USERS WHERE UserName=?"; try { ps3=C.prepareStatement(sql); ps3.setString(1,userName); rs=ps3.executeQuery();} catch(Exception ex){ noError=0; out.println("

SQL Error 1


"); out.println(ex.getMessage()); try { C.close(); } catch (SQLException exit) { exit.printStackTrace(); } out.println(""); out.println(""); out.close(); } try { if(rs.next()){ noError=0; out.println("

SQL Error 2


"); out.println("

This UserName belongs to another user. Please try another.

"); try { C.close(); } catch (SQLException exit) { exit.printStackTrace(); } out.println(""); out.println(""); out.close(); } else{ rs.close(); PreparedStatement ps6=null; sql = "SELECT * FROM USERS WHERE password=?"; try { //out.print(sql); ps6=C.prepareStatement(sql); ps6.setString(1,password); rs=ps6.executeQuery();} catch(Exception ex){ noError=0; out.println("

SQL Error 3


"); out.println(ex.getMessage()); out.println(""); out.println(""); out.close(); } try { if(rs.next()){ noError=0; out.println("

SQL Error 4


"); out.println("

This password belongs to another user. Please try another.

"); try { C.close(); } catch (SQLException exit) { exit.printStackTrace(); } out.println(""); out.println(""); out.close(); } else {ok=1;} } catch (SQLException ex) { ex.printStackTrace(); } } } catch (SQLException ex) { ex.printStackTrace(); } if(ok==1){ ps3=null; sql = "INSERT INTO USERS (UserName,Password,FirstName,LastName,Email,Address,Country) VALUES (? , ?, ?, ?, ?, ?, ?)"; try { ps3=C.prepareStatement(sql); ps3.setString(1,userName); ps3.setString(2,password); ps3.setString(3,firstName); ps3.setString(4,lastName); ps3.setString(5,email); ps3.setString(6,address); ps3.setString(7,country); ps3.executeUpdate();} catch(Exception ex){ noError=0; out.println("

SQL Error 5


"); out.println(ex.getMessage()); out.println(""); out.println(""); out.close(); } if(!forward.equals("")){ ResultSet rs6 = null; ps3=null; sql = "SELECT * FROM USERS WHERE UserName=?"; try { ps3=C.prepareStatement(sql); ps3.setString(1,forward); rs6=ps3.executeQuery();} catch(Exception ex){ noError=0; out.println("

SQL Error 6


"); out.println(ex.getMessage()); try { C.close(); } catch (SQLException exit) { exit.printStackTrace(); } out.println(""); out.println(""); out.close(); } try { if(!rs6.next()) { out.println("

Error


"); out.println("

The person you have chosen for forward does not exist.Please try another.

"); } else { rs6.close(); PreparedStatement ps4=null; sql = "INSERT INTO FORWARDING(Forwarder,Forwarded) VALUES (? , ?)"; try { ps4=C.prepareStatement(sql); ps4.setString(1,userName); ps4.setString(2,forward); ps4.executeUpdate();} catch(Exception ex){ noError=0; out.println("

SQL Error


"); out.println(ex.getMessage()); try { C.close(); } catch (SQLException exit) { exit.printStackTrace(); } out.println(""); out.println(""); out.close(); } } } catch (SQLException ex) { ex.printStackTrace(); } } if(!blocking.equals("")){ ps3=null; rs = null; for (int j = 0; j < tokens.length; j++) { if(tokens[j]!=""){ ps3=null; sql = "SELECT * FROM USERS WHERE UserName=?"; try { ps3=C.prepareStatement(sql); ps3.setString(1,tokens[j]); rs=ps3.executeQuery();} catch(Exception ex){ noError=0; out.println("

SQL Error 7


"); out.println(ex.getMessage()); out.println(""); out.println(""); out.close(); } try { if(!rs.next()) { out.println(""); out.println("

Error


"); out.println("

The person "+tokens[j]+" you have chosen to block does not exist.

"); } else { PreparedStatement ps4=null; sql = "INSERT INTO BLOCKING(Blocker,Blocked) VALUES (? , ?)"; try { ps4=C.prepareStatement(sql); ps4.setString(1,userName); ps4.setString(2,tokens[j]); ps4.executeUpdate();} catch(Exception ex){ noError=0; out.println("

SQL Error


"); out.println(ex.getMessage()); try { C.close(); } catch (SQLException exit) { exit.printStackTrace(); } out.println(""); out.println(""); out.close(); } } } catch (SQLException ex) { ex.printStackTrace(); } } } } } try { C.close(); } catch (SQLException ex) { ex.printStackTrace(); } } } else { noError=1;} if(noError==1|choice.equals("my_account")){ ///////////Tsekarisma twn newn dedomenwn//////////////////////// String userName=request.getParameter("userName"); String password=request.getParameter("password"); try { Class.forName("com.mysql.jdbc.Driver"); System.out.println("MySQL Driver Load Ok!"); } catch (ClassNotFoundException e) { System.err.println(e); } try { String url1 = "jdbc:mysql://localhost/sip"; C = DriverManager.getConnection (url1,"root",""); System.out.println("MySQL Connection Ok!"); } catch (SQLException e) { System.err.println(e); } ResultSet rs = null; PreparedStatement ps5=null; String sql0 = "SELECT * FROM USERS WHERE UserName=? and Password=?"; try { ps5=C.prepareStatement(sql0); ps5.setString(1,userName); ps5.setString(2,password); rs=ps5.executeQuery();} catch(Exception ex){ noError=0; out.println("

SQL Error.Invalid entries!


"); out.println(ex.getMessage()); try { C.close(); } catch (SQLException exit) { exit.printStackTrace(); } out.println(""); out.println(""); out.close(); } try { if(rs.next()){ out.println("UserName: "+rs.getString("UserName")+"
"); out.println("Password: "+rs.getString("Password")+"
"); out.println("FirstName: "+rs.getString("FirstName")+"
"); out.println("LastName: "+rs.getString("LastName")+"
"); out.println("Email: "+rs.getString("Email")+"
"); out.println("Address: "+rs.getString("Address")+"
"); out.println("Country: "+rs.getString("Country")+"
"); out.println("Blocking and Forwarding Preferences for this user
"); ResultSet rs8 = null; PreparedStatement ps6=null; String sql9 = "SELECT * FROM BLOCKING WHERE Blocker=?"; try { ps6=C.prepareStatement(sql9); ps6.setString(1,userName); rs8=ps6.executeQuery();} catch(Exception ex){ noError=0; out.println("

SQL Error


"); out.println(ex.getMessage()); try { C.close(); } catch (SQLException exit) { exit.printStackTrace(); } out.println(""); out.println(""); out.close(); } while(rs8.next()){ out.println("*Blocked: "+rs8.getString("Blocked")+"
"); } rs8.close(); ResultSet rs7 = null; PreparedStatement ps7=null; String sql10 = "SELECT * FROM FORWARDING WHERE Forwarder=?"; try { ps7=C.prepareStatement(sql10); ps7.setString(1,userName); rs7=ps7.executeQuery();} catch(Exception ex){ noError=0; out.println("

SQL Error 9


"); out.println(ex.getMessage()); try { C.close(); } catch (SQLException exit) { exit.printStackTrace(); } out.println(""); out.println(""); out.close(); } while(rs7.next()){ out.println("*Forwarded to: "+rs7.getString("Forwarded")+"
"); } rs7.close(); C.close(); out.println("
In case you wish to change your blocking or forwarding preferences press here:"+ "Change blocking or forwarding"+ " preferences"); } else {out.println("There is no user with that Username or/and Password.Some error occured.Please try again");} } catch (SQLException ex) { ex.printStackTrace(); } try { C.close(); } catch (SQLException exit) { exit.printStackTrace(); } out.println(""); out.println(""); out.close(); } } }