/** @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String result = HttpUtil.handleRequest(request); System.out.println("GetFriendsServlet:" + result); try { JSONObject jsonObject = new JSONObject(result); String phone = jsonObject.getString("phone"); List<User> friends = new Database().getFriends(phone); JSONArray jsonArray = new JSONArray(); for (User friend : friends) { String friendName = friend.getName(); String friendPhone = friend.getPhone(); JSONObject friendObj = new JSONObject(); friendObj.put("phone", friendPhone); friendObj.put("name", friendName); jsonArray.put(friendObj); } System.out.println("GetFriendsServlet:" + jsonArray.toString()); HttpUtil.handleResponse(response, jsonArray.toString()); } catch (JSONException e) { e.printStackTrace(); } }
/** menu login */ private void menu() { int option = 0; Scanner read = new Scanner(System.in); while (true) { try { String email = ""; System.out.println( "\n -----< MyBet-and-Win >-----\n\nSelect an Option: \n" + "(1)-Register;\n(2)-Login;\n(3)-Exit;\n\n>"); // lê opção do teclado // --------------------------- InputStreamReader input0 = new InputStreamReader(System.in); BufferedReader reader0 = new BufferedReader(input0); String op; op = reader0.readLine(); option = Integer.parseInt(op); switch (option) { // PASSWORD case 1: System.out.println("=================|Registo|==================="); System.out.println("Introduza o username a registar:\n> "); String username = reader0.readLine(); System.out.println("Password: \n> "); String password = reader0.readLine(); System.out.println("Email: \n> "); email = reader0.readLine(); Register reg = new Register(username, password, email); server.register(reg); break; case 2: System.out.println("=================|Login|==================="); System.out.println("Introduza o username para fazer o Login:\n> "); String user = reader0.readLine(); System.out.println("Password: \n> "); String pass = reader0.readLine(); Login log = new Login(user, pass); User player = new User(user, pass); player.setCredit(100); if (server.login(log, player, (ClientInterface) this)) { this.init((ClientInterface) this, user); showMenu(user, pass, player); } else System.out.println( "Falhou autenticação. User já logado ou Username e/ou passowrd incorrectas introduza os dados novamente:"); break; } } catch (IOException ex) { Logger.getLogger(ClientRMI.class.getName()).log(Level.SEVERE, null, ex); } } }
/** * menu principal onde são evocados todos os métodos * * @param user * @param pass */ private void showMenu(String user, String pass, User Player) { String op = null; int option = 0; User player = new User("", "", "", 0); player.setUsername(user); player.setPassword(pass); while (true) { // uma vez logado e até fazer logout, cada vez que faz uma chamada de método, no // final // retorna aqui, onde o menu é de novo impresso try { // uma vez logado e até fazer logout, cada vez que faz uma chamada de método, no final // retorna aqui, onde o menu é de novo impresso synchronized (System.out) { System.out.println("###############################################"); System.out.println(" --------< MyBet-and-Win>-----------------------"); System.out.println("(1) Credit: shows the current credit of the user."); System.out.println( "(2) Reset: userʼs credit should default to a certain number of credits (e.g. 100cr)."); System.out.println("(3) View Current Matches"); System.out.println("(4) Bet"); System.out.println("(5) Online Users: shows a list of users who are logged in."); System.out.println("(6) Message User: sends a message to a specific user."); System.out.println("(7) Message All: sends a message to all the users."); System.out.println("(8) Logout.\n>"); } // lê opção do teclado // lê opção do teclado // --------------------------- InputStreamReader input1 = new InputStreamReader(System.in); BufferedReader reader1 = new BufferedReader(input1); op = reader1.readLine(); option = Integer.parseInt(op); System.out.println("Hi " + player.getUserName() + ". Here are the result of your call"); switch (option) { case 1: System.out.println("------ (1) - CREDITS------------------------------------------"); int receive = server.credits(player); System.out.println("[Server]>" + receive + " créditos."); System.out.println("-----------------------------------------------------------------"); break; case 2: System.out.println( "--------(2) - RESET-------------------------------------------------"); String receive1 = server.reset(player); System.out.println("[Server]" + receive1 + " créditos."); System.out.println("-----------------------------------------------------------------"); break; case 3: System.out.println( "-----------(3) - VIEW MATCH-----------------------------------------"); server.view(player, this); System.out.println("-----------------------------------------------------------------"); break; case 4: int Crs = Player.getCredit(); System.out.println("Os seus creditos:" + Crs); System.out.println( "--------------- (4) - BET ------------------------------------------"); // tenho de preencher objecto do tpo betmatch (String username, int id, int resul, int // valor) System.out.println( "Para fazer uma aposta, seleccione o jogo através do [id] e utilize o sistema 1 2 3."); System.out.println("Insira o id do jogo em que pretende apostar\n>"); String idJogo = reader1.readLine(); System.out.println("Insira o número de créditos que pretende apostar\n>"); String val = reader1.readLine(); System.out.println( "Insira a sua aposta para o jogo. (1). Vitória da equipa da casa; (2).Vitória da equipa Visitante; (3).Empate;\n>"); String res = reader1.readLine(); // -------------------------------------------------------------- // gets: String userN = Player.getUserName(); // parseints: int id = Integer.parseInt(idJogo); int result = Integer.parseInt(res); int valor = Integer.parseInt(val); /*TCP««««« * BetMatch opt2 = new BetMatch(); opt2.setCrs(value); opt2.setId(cod); opt2.setResul(resul); opt2.setType(1); opt2.setValor(value); opt2.setEmissor(user_name); out.writeObject(opt2); */ BetMatch bM = new BetMatch(); bM.setType(2); bM.setId(id); bM.setEmissor(userN); bM.setResul(result); bM.setValor(valor); bM.setCrs(Crs); // objecto: public BetMatch(String username, int id, int resul, int valor, int crs) { // ENVIO---> username| id do jogo | resultado do jogo| valor a apostar| // BetMatch bM = new BetMatch(userN, id, result, valor, Crs); // chamada em callback // equivalente à de tcp server.betGame(userN, bM, this); // ja estou a enviar dados da aposta // preciso de receber // String receive3 = server.betGame(player); // System.out.println("[Server]" + receive3); System.out.println("-----------------------------------------------------------------"); break; case 5: System.out.println( "----------- (5) - Online -------------------------------------------"); ArrayList<String> temp = server.viewOnline(player); for (int i = 0; i < temp.size(); i++) { System.out.println(temp.get(i)); } System.out.println("-----------------------------------------------------------------"); break; case 6: System.out.println( "----------(6)- SEND MESSAGE to user ---------------------------------------------"); System.out.println("Insira a mensagem\n>"); String msg = reader1.readLine(); System.out.println("Insira o destinatário"); String receptor = reader1.readLine(); // chama message User com mensagem (string) a enviar e receptor que é o destinatario server.messageS(msg, receptor, player); System.out.println("-----------------------------------------------------------------"); break; case 7: System.out.println( "-----------(7)- SEND MESSAGE TO ALL -----------------------------------------------"); System.out.println("Insira a mensagem\n>"); String msg1 = reader1.readLine(); server.messageA(msg1, player); System.out.println("-----------------------------------------------------------------"); break; case 8: System.out.println("--------(8)- Logout----------------------------------------------"); server.lOut(player); menu(); break; } } catch (IOException ex) { Logger.getLogger(ClientRMI.class.getName()).log(Level.SEVERE, null, ex); } } }