From bf0edd9a699e5b6374468cc8d5c36b4e22842e24 Mon Sep 17 00:00:00 2001 From: Ognjen Cirkovic Date: Thu, 22 Dec 2022 02:18:05 +0100 Subject: Dodat dependency za jstl. Omogucen logout. Prikaz liste pokemona korisnika. Omoguceno da korisnim moze da izabere pokemona. --- src/main/java/database/Database.java | 41 +++++++++++++++ src/main/java/pokemon/IService.java | 2 + src/main/java/pokemon/Service.java | 13 +++++ src/main/webapp/WEB-INF/lib/jstl-1.2.jar | Bin 0 -> 414240 bytes src/main/webapp/index.jsp | 3 +- src/main/webapp/pages/choosePokemon.jsp | 14 +++++ src/main/webapp/pages/logout.jsp | 6 +++ src/main/webapp/pages/userIndex.jsp | 86 +++++++++++++++++++++++++++++++ 8 files changed, 163 insertions(+), 2 deletions(-) create mode 100644 src/main/webapp/WEB-INF/lib/jstl-1.2.jar create mode 100644 src/main/webapp/pages/choosePokemon.jsp create mode 100644 src/main/webapp/pages/logout.jsp (limited to 'src') diff --git a/src/main/java/database/Database.java b/src/main/java/database/Database.java index 6488a5a..80307db 100644 --- a/src/main/java/database/Database.java +++ b/src/main/java/database/Database.java @@ -159,5 +159,46 @@ public class Database { } return monsters; } + public Monster getUserMonster(String username) { + Monster monster=null; + String sql="SELECT * FROM monster m JOIN user u ON u.username=? AND u.pokemonId=m.id"; + try { + PreparedStatement statement = conn.prepareStatement(sql); + statement.setString(1, username); + ResultSet res=statement.executeQuery(); + if(res.next()) { + monster=new Monster(); + monster.setId(res.getLong("m.id")); + monster.setName(res.getString("m.name")); + monster.setDescription(res.getString("m.description")); + monster.setHp(res.getInt("m.hp")); + monster.setBase64Image(res.getString("m.base64Image")); + } + + } catch (SQLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + + return monster; + + } + public void addMonsterToUser(long id,long monsterId) { + + String sql="UPDATE user set pokemonId=? where id=?;"; + + try { + PreparedStatement ps=conn.prepareStatement(sql); + ps=conn.prepareStatement(sql); + ps.setLong(1,monsterId); + ps.setLong(2, id); + ps.executeUpdate(); + } catch (SQLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + } } diff --git a/src/main/java/pokemon/IService.java b/src/main/java/pokemon/IService.java index c99271c..172c392 100644 --- a/src/main/java/pokemon/IService.java +++ b/src/main/java/pokemon/IService.java @@ -14,5 +14,7 @@ public interface IService extends Remote { public long addMonster(Monster monster)throws RemoteException; public boolean addAbility(Ability ability)throws RemoteException; public ArrayList getMonsters()throws RemoteException; + public Monster getUserMonster(String username) throws RemoteException; + public void addMonsterToUser(long id,long monsterId)throws RemoteException; } diff --git a/src/main/java/pokemon/Service.java b/src/main/java/pokemon/Service.java index 0931a0f..579a0c4 100644 --- a/src/main/java/pokemon/Service.java +++ b/src/main/java/pokemon/Service.java @@ -44,6 +44,19 @@ public class Service extends UnicastRemoteObject implements IService { Database db=Database.getInstance(); return db.getMonsters(); } + + @Override + public Monster getUserMonster(String username) throws RemoteException { + Database db=Database.getInstance(); + return db.getUserMonster(username); + } + + @Override + public void addMonsterToUser(long id, long monsterId) throws RemoteException { + Database db=Database.getInstance(); + db.addMonsterToUser(id, monsterId); + + } } diff --git a/src/main/webapp/WEB-INF/lib/jstl-1.2.jar b/src/main/webapp/WEB-INF/lib/jstl-1.2.jar new file mode 100644 index 0000000..0fd275e Binary files /dev/null and b/src/main/webapp/WEB-INF/lib/jstl-1.2.jar differ diff --git a/src/main/webapp/index.jsp b/src/main/webapp/index.jsp index 2086f22..8be1d49 100644 --- a/src/main/webapp/index.jsp +++ b/src/main/webapp/index.jsp @@ -40,8 +40,7 @@ -

-

Lista korisnika

+ diff --git a/src/main/webapp/pages/choosePokemon.jsp b/src/main/webapp/pages/choosePokemon.jsp new file mode 100644 index 0000000..797c89f --- /dev/null +++ b/src/main/webapp/pages/choosePokemon.jsp @@ -0,0 +1,14 @@ +<%@page import="models.CONSTS"%> +<%@page import="java.rmi.Naming"%> +<%@page import="pokemon.IService"%> +<% + +IService service=(IService)Naming.lookup(CONSTS.rmiUrl); +out.print(session.getAttribute("id")); +long userId=(Long)session.getAttribute("id"); +long monsterId=Long.parseLong(request.getParameter("monsterId")); + +service.addMonsterToUser(userId, monsterId); + +response.sendRedirect("userIndex.jsp"); +%> \ No newline at end of file diff --git a/src/main/webapp/pages/logout.jsp b/src/main/webapp/pages/logout.jsp new file mode 100644 index 0000000..97e684b --- /dev/null +++ b/src/main/webapp/pages/logout.jsp @@ -0,0 +1,6 @@ +<% + session.removeAttribute("id"); + session.removeAttribute("username"); + session.removeAttribute("admin"); + response.sendRedirect("../index.jsp"); +%> \ No newline at end of file diff --git a/src/main/webapp/pages/userIndex.jsp b/src/main/webapp/pages/userIndex.jsp index 6379107..5bf5320 100644 --- a/src/main/webapp/pages/userIndex.jsp +++ b/src/main/webapp/pages/userIndex.jsp @@ -1,12 +1,98 @@ +<%@page import="models.Monster"%> +<%@page import="java.util.ArrayList"%> +<%@page import="models.CONSTS"%> +<%@page import="java.rmi.Naming"%> +<%@page import="pokemon.IService"%> <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> +<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> + User + + + + +

Izaberi pokemona

+
+<% + IService service=(IService)Naming.lookup(CONSTS.rmiUrl); + ArrayList monsters=service.getMonsters(); + String username=(String)session.getAttribute("username"); + request.setAttribute("monsters", monsters); + Monster myMonster=service.getUserMonster(username); + request.setAttribute("myMonster", myMonster); +%> +Trenutno izabran pokemon: +<% + if(myMonster==null) + { + %> +

Nemate trenutno izabranog pokemon. Morate izabrati pokemona da bi mogli da igrate igru

+ <% + } + else{ + %> + + + + + + + + + + + + + +
ImeOpisHpSlika
+ <% + } +%> +


+ + + + + + + + + + + + + + + + + + +
ImeOpisHpSlika
+ + + + + + + + + + + +
\ No newline at end of file -- cgit v1.2.3