Sunday, 19 May 2013

IS2 - JSP Pages and Servlet - Examples

Napomena!
JSP stranice zbog ustede na prostoru ubacicemo samo tag "body", jedan primjer zaglavlja i kod nece biti fino formatiran

Iz servleta cemo izbaciti import i dio generickog koda

Zaglavlje JSP stranica...
If you want to translate this code to HTML 5 you need to write Docture type like this <!DOCTYPE html> 

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1" %>
    <%@ page isELIgnored="false"  %>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>

ZADUZENJE CLANA JSP

 <body>
<c:if test="${!empty clan}">
<form action="/library/GetSlobodniPrimerciZaNaslov">
<table>
<tr><td>Clanski broj:</td><td>${clan.clanskiBroj}</td></tr>
<tr><td>Ime:</td><td>${clan.ime}</td></tr>
<tr><td>Prezime:</td><td>${clan.prezime}</td></tr>
<tr><td>Kategorija:</td><td>${clan.kategorija.nazivkategorije}</td></tr>
</table>
<br><br><br>
Naslov knjige za zaduzenje: <input name="naslovFind" type="text"> <input type="submit" value="Nadji">
</form>
<c:if test="${!empty primerci}">
<table>
<thead><td>Naslov</td><td>Autor</td><td>Godina izdanja</td><td>Inventarni broj</td><td>Zaduzi</td></thead>
<c:forEach var="primerak" items="${primerci}">
<tr><td>${primerak.knjiga.naslov}</td><td>${primerak.knjiga.autor}</td><td>${primerak.knjiga.godinaIzdanja}</td>
<td>${primerak.invBroj}</td><td><a href="/library/ZaduziClana?invBroj=${primerak.invBroj}">Zaduzi</a></td></tr>
</c:forEach </table> </c:if> </c:if> </body>

RAZDUZI CLANA JSP

<body>
<c:if test="${!empty clan}">
<table>
<tr><td>Clanski broj:</td><td>${clan.clanskiBroj}</td></tr>
<tr><td>Ime:</td><td>${clan.ime}</td></tr>
<tr><td>Prezime:</td><td>${clan.prezime}</td></tr>
<tr><td>Kategorija:</td><td>${clan.kategorija.nazivkategorije}</td></tr>
</table> <br> Nerazduzena zaduzenja <br><br>
<table border=1>
<thead><td>Datum zaduzenja</td><td>Inventarni broj</td><td>Naslov knjige</td></thead>
<c:forEach var="zaduzenje" items="${clan.zaduzenjes}" >
<c:if test="${empty zaduzenje.datumVracanja}">
<tr><td>${zaduzenje.datumZaduzenja}</td><td>${zaduzenje.primerak.invBroj}</td>
<td>${zaduzenje.primerak.knjiga.naslov}</td><td><a href="/library/RazduziClana?idZad=${zaduzenje.id}">Razduzi</a></td></tr>
</c:if> </c:forEach> </table> </c:if> </body>

FIND CLANA JSP

<body>
<form action="/library/ReturnClanForClanskiBroj?action=zaduzi" method="post">
Clanski broj: <input name="clanskiBroj" type="text">
<input type="submit">
</form> </body>

SHOW SVE KNJIGE JSP

<body>
<table border=1>
<thead><td>Naslov</td><td>Autor</td><td>Izdavac</td><td>Godina</td></thead>
<c:forEach var="knjiga" items="${sveKnjige}">
<tr><td>${knjiga.naslov}</td>
    <td>${knjiga.autor}</td>
    <td>${knjiga.izdavac}</td>
    <td>${knjiga.godinaIzdanja}</td></tr>
</c:forEach> </table> </body>

PRINT MESSAGE JSP

<html> <head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head> <body>
${poruka}
</body> </html>

SHOW ZADUZENJA JSP

<body> <table>
    <tr><td>ID Clana</td><td><input value="${clbroj}" name="id2" type="text"></td></tr>
    <tr><td>Ime</td><td><input value="${ime}" name="ime" type="text"></td></tr>
    <tr><td>Prezime</td><td><input value="${prz}" name="prezime" type="text"></td></tr>
</table> ${poruka} <table>
    <tr><td>Inv. Broj</td><td>Naslov</td><td>Autor</td><td>Razduzi</td><tr>
    <c:forEach var="zad" items="${zaduzenja}">
    <tr><td><div>${zad.primerak.invBroj}</div></td><td><div>${zad.primerak.knjiga.naslov}</div></td><td><div>${zad.primerak.knjiga.autor}</div></td><td><a href="/library/RazduziClana?id=${zad.id}">Link</a></td><tr>
    </c:forEach> </table> </body>


SERVLET


GET SVE KNJIGE / GET BOOKS

@WebServlet("/GetSveKnjigeServlet")

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        KnjigaManager kmg = new KnjigaManager();
        List<Knjiga> sveKnjige = kmg.listKnjige();
        request.setAttribute("sveKnjige", sveKnjige);
        RequestDispatcher rd = getServletContext().getRequestDispatcher("/izvestaji/prikaziSveKnjige.jsp");
        rd.forward(request, response);       
    }
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }

RAZDUZI CLANA

@WebServlet("/RazduziClana")

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String idZaduzenja = request.getParameter("idZad");
        ZaduzenjeManager zm = new ZaduzenjeManager();
        Zaduzenje z = zm.getZaduzenjeForId(Integer.parseInt(idZaduzenja));       
        boolean ok = zm.razduziZaduzenje(z);
        ClanManager cmg = new ClanManager();
        Clan clan = cmg.getClanAndZaduzenjesForId(z.getClan().getClanskiBroj());
        request.setAttribute("clan", clan);
        RequestDispatcher rd = getServletContext().getRequestDispatcher("/zaduzenja/RazduzivanjeClana.jsp");
        rd.forward(request, response);
  }



SNIMANJE CLANA / SAVE CLAN (USER)

 @WebServlet("/SnimanjeClanaServlet")

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String clanskiBroj = request.getParameter("clanskiBroj");
        String ime = request.getParameter("ime");
        String prezime = request.getParameter("prezime");
        String adresa = request.getParameter("adresa");
        //datumi
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        String datumRodjenjaStr = request.getParameter("datumRodjenja");
        String datumUpisaStr = request.getParameter("datumUpisa");
        String idKategorije = request.getParameter("kategorija");
        KategorijaManager kmg = (KategorijaManager)request.getSession().getAttribute("kategorijaManager");
           String poruka;
            try {
            Date datumRodjenja = sdf.parse(datumRodjenjaStr);
            Date datumUpisa = sdf.parse(datumUpisaStr);
            ClanManager cmg = new ClanManager();
            Kategorija kat = kmg.getKategorijaForId(Integer.parseInt(idKategorije));
            boolean ok = cmg.saveClan(Integer.parseInt(clanskiBroj), ime, prezime, adresa, datumRodjenja, datumUpisa, kat);
            if(ok)
                poruka = "Clan je uspesno sacuvan.";
            else
                poruka = "Doslo je do greske. Clan nije sacuvan.";           
          } catch (ParseException e) {
            poruka="Clan nije sacuvan. Neispravan format datuma.";
        }catch(NumberFormatException ex){
            poruka = "Clan nije sacuvan. Neispravan format broja.";
        }
        request.setAttribute("poruka", poruka);
        RequestDispatcher rd = getServletContext().getRequestDispatcher("/unos/unosClana.jsp");
        rd.forward(request, response);
    }

SNIMANJE KNJIGE / SAVE BOOK IN DATABASE

@WebServlet("/SnimanjeKnjigeServlet")

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String idKnjige = request.getParameter("idKnjige");
        String naslov = request.getParameter("naslov");
        String autor = request.getParameter("autor");       
        String izdavac = request.getParameter("izdavac");
        String godinaIzdanja = request.getParameter("godinaIzdanja");
        KnjigaManager kmg = new KnjigaManager();
        Knjiga k = kmg.createAndStoreKnjiga(Integer.parseInt(idKnjige), naslov, autor, godinaIzdanja, izdavac);       
        String forwardPageURL= "/unos/unosKnjigeJSP.jsp";;
        if(k!=null){
            request.setAttribute("poruka", "Knjiga je uspesno sacuvana.");           
          }else{           
            request.setAttribute("poruka","Doslo je do greske, knjiga nije sacuvana.");
          }
         RequestDispatcher rd = getServletContext().getRequestDispatcher(forwardPageURL);
        rd.forward(request, response);   
        }

UNOS PRIMJERKA / INSERT NEW COPY OF SINGLE BOOK

@WebServlet("/UnesiPrimjerak")

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String broj = request.getParameter("broj");
        int idK = (int) request.getSession().getAttribute("idKnjige");
        int br = Integer.parseInt(broj);
        KnjigaManager k = new KnjigaManager();
        List p = k.addPrimeraks(idK, br);
        String poruka = "";
        if (p.size() > 0) {
            poruka = "Success...";
        }
        else {
            poruka = "Error";
        }
        request.setAttribute("poruka", poruka);
        request.setAttribute("lista", p);
        request.setAttribute("brojInv", p.size());
        RequestDispatcher rd = getServletContext().getRequestDispatcher("/UnosPodataka/Izvjestaj.jsp");
        rd.forward(request, response);
    }



NOVI KOD


 JavaBEAN - Vraca sve kategorije / GET ALL CATEGORIES

public class SveKategorijeBean  {
    private List<Kategorija> sveKategorije = null;
    public SveKategorijeBean() {
        try {
            Session session = HibernateUtil.getSessionFactory().getCurrentSession();
            session.beginTransaction();
            sveKategorije = session.createQuery("from Kategorija").list();
            session.getTransaction().commit();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }    public List<Kategorija> getSveKategorije() {
        return sveKategorije;
    } public void setSveKategorije(List<Kategorija> sveKategorije) {
        this.sveKategorije = sveKategorije;
    }
}

PRIMJER HTML - 5 Komponenta za DATUM ujedno i UNOS CLANA JSP stranica, Poziv SveKateforijeBEAN klasa koju smo napravili da bi njenim pozivom vec iz baze izvadili sve kategorije...
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Unos Clana</title>
</head>
<jsp:useBean id="sveKategorije" class="rs.ac.uns.dmi.is2.managers.SveKategorijeBean" scope="session"></jsp:useBean>
<body>
<form action="../SnimajClana" method="post">
<table>
    <tr><td>Ime</td><td><input name="ime" type="text"></td></tr>
    <tr><td>Prezime</td><td><input name="prezime" type="text"></td></tr>
    <tr><td>Adresa</td><td><input name="adresa" type="text"></td></tr>
    <tr><td>Kategorija</td>
        <td><select name="Kategorije">
        <c:forEach items="${sveKategorije.sveKategorije}" var="kat">
        <option value="${kat.idkategorije}">${kat.nazivkategorije} </option>
        </c:forEach>
        </select></td></tr>
    <tr><td>Datum upisa</td><td><input type="date" name="datumUpisa"></input> </td></tr>
    <tr><td>Datum rodjenja</td><td><input type="date" name="datumRodjenja"></input> </td></tr>
</table>
<input type="submit" value="Sacuvaj">
</form> ${poruka} </body> </html>


 INSERT NEW BOOK JSP

<body>
<form action="../SnimanjeKnjige" method="post">
    <table> <tr>
    <td>Naslov</td><td><input name="naslov" type="text"></td></tr>
    <tr><td>Autor</td><td><input name="autor" type="text"></td></tr>
    <tr><td>Izdavac</td><td><input name="izdavac" type="text"></td></tr>
    <tr><td>Godina Izdanja</td><td><input name="godinaIzdanja" type="text"></td></tr>
    </table>    <input type="submit" value="Sacuvaj">
</form> </body>

 SERVLET

AZURIRAJ CLANA Servlet

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String idString = request.getParameter("id");
        int id = Integer.parseInt(idString);
        ClanManager cr = new ClanManager();
        Clan c = cr.getClan(id);
        request.setAttribute("clbroj", id);
        request.setAttribute("clan", c);
        RequestDispatcher rd = getServletContext().getRequestDispatcher("/UnosPodataka/AzurirajClana.jsp");
        rd.forward(request, response);
    }

Example using SESSION! // EXAMPLE HOW TO USE SESSION

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String idString = request.getParameter("id");
        int clBr = Integer.parseInt(idString);
        ClanManager cm = new ClanManager();
        List<Zaduzenje> lista = cm.getNerazduzenaZaClanskiBroj(clBr);
        Clan c = cm.getClan(clBr);
        request.getSession().setAttribute("clbroj", clBr);
        request.getSession().setAttribute("ime", c.getIme());
        request.getSession().setAttribute("prz", c.getPrezime());   
        request.setAttribute("zaduzenja", lista);
        RequestDispatcher rd = getServletContext().getRequestDispatcher("/UnosPodataka/PrikazZaduzenja.jsp");
        rd.forward(request, response);     
    }

UPDATA CLANA // UPDATE USER

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String cl = request.getParameter("id2");
        int clanskiBroj = Integer.parseInt(cl);
        String Ime = request.getParameter("ime");
        String Prezime = request.getParameter("prezime");
        String Adresa = request.getParameter("adresa");
        String kat = request.getParameter("Kategorije");
        int br = Integer.parseInt(kat);
        String datumcic = request.getParameter("datumRodjenja");
        System.out.println(datumcic);
        Date datum1 = null;
        try {
            datum1 = sdf.parse(datumcic);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        ClanManager cc = new ClanManager();
        Kategorija kategorija = cc.getKategorija(br);
        int rez = cc.updateClan(clanskiBroj, Ime, Prezime, Adresa, kategorija, datum1);
        String poruka = "";
        if (rez == 0) {
            poruka = "Clan nije updejtovan";
        }
        else {
            poruka = "Clan je updejtovan!";
        }
        request.setAttribute("poruka", poruka);
        RequestDispatcher rd = getServletContext().getRequestDispatcher("/UnosPodataka/AzurirajClana.jsp");
        rd.forward(request, response);
    }


COMBO BOX!!! Profesorica je rekla da moze da dodje nesto da moramo da stavimo npr. da je nesto oznaceno u Combo Box-u i evo jedan primjer JSP stranice koja to radi...
Pitamo da li je to sto nama treba ako jeste postavi ga na selected.

<body>
<form action="/library/AzurirajClana" method="post">
<table>
<tr><td>ID Clana</td><td><input name="id" type="text"></td></tr>
</table>
<input type="submit" value="Uzmi Clana">
</form>
<form action="/library/UpdateClana" method="post">
<table>
    <tr><td>ID Clana</td><td><input value="${clbroj}" name="id2" type="text"></td></tr>
    <tr><td>Ime</td><td><input value="${clan.ime }" name="ime" type="text"></td></tr>
    <tr><td>Prezime</td><td><input value="${clan.prezime }" name="prezime" type="text"></td></tr>
    <tr><td>Adresa</td><td><input value="${clan.adresa }" name="adresa" type="text"></td></tr>
    <tr><td>Kategorija</td>
        <td><select name="Kategorije">
        <c:forEach items="${sveKategorije.sveKategorije}" var="kat">
        <c:choose>
              <c:when test="${clan.kategorija.idkategorije == kat.idkategorije}">
                <option selected="selected" value="${kat.idkategorije}">${kat.nazivkategorije} </option>
              </c:when>
              <c:otherwise>
                  <option value="${kat.idkategorije}">${kat.nazivkategorije} </option>
              </c:otherwise>
        </c:choose>
        </c:forEach>
        </select></td></tr>

    <tr><td>Datum upisa</td><td><input value="${clan.datumUpisa}" type="date" name="datumUpisa"></input> </td></tr>
    <tr><td>Datum rodjenja</td><td><input value="${clan.datumRodjenja}" type="date" name="datumRodjenja"></input> </td></tr>
</table>
<input type="submit" value="Sacuvajte Clana">
</form>
${poruka}
</body>




Novi DIO



<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1" isELIgnored="false"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<form action="/library/GetZaduzenje?by=invBroj">
<input type="text" name="invBroj">
<input type="submit" value="Ucitaj">
</form>
<c:if test="${!empty zaduzenja}">
<table border=1>
<thead><td>Datum zaduzenja</td><td>Inventarni broj</td><td>Naslov</td><td>Ime i prezime</td></thead>
<c:forEach var="zad" items="${zaduzenja}">
<tr><td>${zad.datumZaduzenja}</td><td>${zad.primerak.invBroj}</td><td>${zad.primerak.knjiga.naslov}</td>
<td>${zad.clan.ime} ${zad.clan.prezime}</td></tr>
</c:forEach>
</table>
<br><br>
<form action="/library/RazduziZaduzenja">
<input type="text" name="datumRazduzenja" value='<fmt:formatDate pattern="yyyy-MM-dd" value="<%= new java.util.Date() %>"/>'>
<input type="submit" value="Razduzi">
</form>
</c:if>
</body>
</html>


JOS JEDAN


<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1" isELIgnored="false"%>
 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
 <jsp:useBean id="kategorijaManager" class="rs.ac.uns.dmi.is2.manager.KategorijaManager" scope="session"/>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<form action="/library/ReturnClanForClanskiBroj?action=promenaKategorije" method="post">
Clanski broj: <input name="clanskiBroj" type="text">
<input type="submit" value="Nadji clana">
</form>
Selektovani clanovi: <br><br>
<table border=1>
<thead><td>Ime</td><td>Prezime</td><td>Kategorija</td></thead>
<c:forEach var="clan" items="${clanovi}">
<tr><td>${clan.ime}</td><td>${clan.prezime}</td><td>${clan.kategorija.nazivkategorije}</td></tr>
</c:forEach>
</table>
<br>
Nova kategorija: <br>
<form action="/library/PromenaKategorija">
<select name="kategorija">
<c:forEach var="kat" items="${kategorijaManager.sveKategorije}">
<option value="${kat.idkategorije}" >${kat.nazivkategorije}</option>
</c:forEach>
</select>
<input type="submit" value="Promeni">
</form>

</body>
</html>


JOS JEDAN


<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>  
<%@ page isELIgnored="false" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Sve knjige</title>
</head>
<body>
<table border=1>
<thead><td>Naslov</td><td>Autor</td><td>Izdavac</td><td>Godina</td></thead>
<c:forEach var="knjiga" items="${sveKnjige}">
<tr><td>${knjiga.naslov}</td>
<td>${knjiga.autor}</td>
<td>${knjiga.izdavac}</td>
<td>${knjiga.godinaIzdanja}</td></tr>
</c:forEach>
</table>
</body>
</html>

NOVI


<%@ page isELIgnored="false" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<body>
Primerci:<br>
<c:forEach var="primerak" items="${knjiga.primeraks}">
${primerak.invBroj}<br>

</c:forEach>

</body>
</html>

UNOS PRIMJERKA


<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@ page isELIgnored="false" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Unos primeraka knjige</title>
</head>
<body>
${message}
<table>
<tr><td>Naslov:</td><td>${knjiga.naslov}</td></tr>
<tr><td>Autor:</td><td>${knjiga.autor}</td></tr>
<tr><td>Izdavanje:</td><td>${knjiga.izdavac} (${knjiga.godinaIzdanja})</td></tr>
</table>
<br>

<form action="/library/DodajPrimerakKnjiga" method="post">
Dodaj primerak <br><br>
Inventarni broj <input name="invBroj" type="text">
<input type="submit" value="Dodaj">
</form>
<br><br>
<%@ include file="../izvestaji/prikaziPrimerkeKnjige.jsp" %>
</body>
</html>

NADJI CLANA



<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1" isELIgnored="false"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<form action="/library/ReturnClanForClanskiBroj?action=${param.action}" method="post">
Clanski broj: <input name="clanskiBroj" type="text">
<input type="submit">
</form>

</body>
</html>


Servlet for Jasper reports!

// This is a list of values that I want to send to servlet
List<Radnik> radnici = RadnikManager.getSviRadnici();
        HashMap<String, Object> params = new HashMap<String, Object>();
        ServletContext context = this.getServletContext();       
        String reportsDirectory = context.getRealPath("/") + "/WEB-INF/classes/reports/";
        String jasperFile = reportsDirectory+"SviRadnici.jasper";
        JasperPrint jasperPrint = null;
        try{
        if(radnici.size()==0){ // ask is list have nothing inside
            JREmptyDataSource dataSource = new JREmptyDataSource();
            jasperPrint = JasperFillManager.fillReport(jasperFile,params, dataSource);
        }else{ // create a repoert
            JRDataSource dataSource = new JRBeanCollectionDataSource(radnici);
            jasperPrint = JasperFillManager.fillReport(jasperFile,params, dataSource);
        }
        ServletOutputStream servletOutputStream = response.getOutputStream();
// this will create pdf report
        JRPdfExporter pdfExporter = new JRPdfExporter();
           
        pdfExporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
        pdfExporter.setParameter(JRExporterParameter.OUTPUT_STREAM,servletOutputStream);
           
           
        pdfExporter.exportReport();
           
            response.setContentType("application/pdf");
           
            servletOutputStream.flush();
            servletOutputStream.close();
        }catch(Exception e){
            e.printStackTrace();
        }