NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: J2EE Calculator

V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Elena Sl
Člen
Avatar
Elena Sl:6.6.2016 10:42

Zdravím všechny, potřebovala bych pomoct s vytvořením kalkulačky v J2EE. Měla by obsahovat EJB třídu, servlet a JSP stránku. Budu moc vděčná když mi někdo pomůže.

 
Odpovědět
6.6.2016 10:42
Avatar
Martin Skalík
Tvůrce
Avatar
Martin Skalík:6.6.2016 16:41

Ahoj, prosím upřesni co potřebuješ.

 
Nahoru Odpovědět
6.6.2016 16:41
Avatar
Elena Sl
Člen
Avatar
Odpovídá na Martin Skalík
Elena Sl:7.6.2016 9:14

Ahoj, potřebuji naprogramovat kalkulačku která bude moct sčítat, odečitát, násobit a dělit čisla tipu float. Aplikace má být webova, tzv. má fungovat přes servlet. Pak má obsahovat třidu beanu - EJB ve které bude logika programu. JSP stránka musí sloužit pro ten vzhled. Respektive - 3 soubory - javovskou trídu(bean), servlet který bude vykonávat kalkulaci, a jsp stránka. :)

 
Nahoru Odpovědět
7.6.2016 9:14
Avatar
Lako
Člen
Avatar
Odpovídá na Elena Sl
Lako:7.6.2016 9:28

Ok, možná by se ještě hodilo zmínit cenu, za kterou chceš aby ti ten domácí úkol udělal někdo místo tebe...

 
Nahoru Odpovědět
7.6.2016 9:28
Avatar
Elena Sl
Člen
Avatar
Odpovídá na Lako
Elena Sl:7.6.2016 9:38

Děkuji za připomenutí ale myslím že tvoje odpověd tu není vhodná. "Chytré" lidi potkávám každý den v reálném životě a nemám za potřeby s nima komunikovat i tady. Přeji hezký den

 
Nahoru Odpovědět
7.6.2016 9:38
Avatar
Odpovídá na Elena Sl
Patrik Valkovič:7.6.2016 9:56

Tak proč píšeš na toto fórum? Jestli byl nějaký jiný záměr, než aby ti tito "chytří" lidé pomohli a vyřešili tvůj úkol, tak sem s ním.
Co očekáváš? Že ti to někdo udělá jen tak, z nudy? Notabene domácí úkol?
Také potkávám líné držgrešle každý den (a nejsem tady jedinný) a nemám potřebu se s nimi bavit, tak proč předpokládáš, že by ti měl někdo odpovědět?

Nahoru Odpovědět
7.6.2016 9:56
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Elena Sl
Člen
Avatar
Odpovídá na Patrik Valkovič
Elena Sl:7.6.2016 10:25

Hele já jsem se nezeptala protože jsem líná ani abych se tady dohadovala...to je můj kod a pokud někdo chce at mi pomůže, pokud ne at je zdráv.

 
Nahoru Odpovědět
7.6.2016 10:25
Avatar
Elena Sl
Člen
Avatar
Elena Sl:7.6.2016 10:25

package ejb;

import javax.ejb.Local­Bean;
import javax.ejb.Sta­teless;

/**
*
* @author Slavchevska
*/
@Stateless(map­pedName = "Firstcalc")
@LocalBean
public class Calculator {

public float add(float n1, float n2) {
return n1 + n2;
}

public float subtract(float n1, float n2) {
return n1 - n2;
}

public float multiply(float n1, float n2) {
return n1 * n2;
}

public float divide(float n1, float n2) {
try{
return n1 / n2;
} catch (Exception e) {
System.out.prin­tln("Error: Division by zero!");
return 0;
}
}
}

 
Nahoru Odpovědět
7.6.2016 10:25
Avatar
Elena Sl
Člen
Avatar
Elena Sl:7.6.2016 10:27

package web;

import ejb.Calculator;
import java.io.IOExcep­tion;
import java.io.PrintWri­ter;
import java.util.log­ging.Level;
import java.util.log­ging.Logger;
import javax.naming.Con­text;
import javax.naming.I­nitialContext;
import javax.naming.Na­mingException;
import javax.servlet­.RequestDispat­cher;
import javax.servlet­.ServletExcep­tion;
import javax.servlet­.annotation.Web­Servlet;
import javax.servlet­.http.HttpSer­vlet;
import javax.servlet­.http.HttpSer­vletRequest;
import javax.servlet­.http.HttpSer­vletResponse;
import javax.servlet­.http.HttpSes­sion;

@WebServlet(name = "calculatorSer­vlet", urlPatterns = {"/calculator­Servlet"})
public class calculatorServlet extends HttpServlet {

/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code>
* methods.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
/
protected void processReques­t(HttpServlet­Request request, HttpServletResponse response)
throws ServletException, IOException {
response.setCon­tentType("tex­t/html;charset=UTF-8");
try (PrintWriter out = response.getWri­ter()) {
/
TODO output your page here. You may use following sample code. */
out.println("<!DOC­TYPE html>");
out.println("<html>"­);
out.println("<he­ad>");
out.println("<ti­tle>Servlet calculatorSer­vlet</title>");
out.println("</he­ad>");
out.println("<bo­dy>");
out.println("<h1>Ser­vlet calculatorServlet at " + request.getAt­tribute("resul­t") + "</h1>");

out.println("</bo­dy>");
out.println("</html>­");
}
}

// <editor-fold defaultstate="co­llapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
/
@Override
protected void doGet(HttpSer­vletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processReques­t(request, response);
HttpSession session = request.getSes­sion(true);
RequestDispatcher rd = this.getServlet­Context().get­RequestDispat­cher("/index.jsp");
float a = Float.parseFlo­at(request.get­Parameter("n1"));
float b = Float.parseFlo­at(request.get­Parameter("n2"));
char oper = request.getPa­rameter("oper")­.charAt(0);
float result = 0;
try {
Context ctx = new InitialContext();
Calculator cl = (Calculator) ctx.lookup("Fir­stcalc");
switch (oper) {
case '+':
result = cl.add(a, b);
break;
case '-':
result = cl.subtract(a, b);
break;
case '
':
result = cl.multiply(a, b);
break;
case '/':
result = cl.divide(a, b);
break;
}
session.setAt­tribute("resul­t", result);
request.setAt­tribute("a", a);
request.setAt­tribute("b", b);
} catch (Exception e) {
session.setAt­tribute("Error: ", e.getMessage());
}
rd.forward(request, response);
}

/**
* Handles the HTTP <code>POST</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpSer­vletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processReques­t(request, response);
}

/**
* Returns a short description of the servlet.
*
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>

}

 
Nahoru Odpovědět
7.6.2016 10:27
Avatar
Elena Sl
Člen
Avatar
Elena Sl:7.6.2016 10:28

<%@page contentType="tex­t/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<h2> <b> Calculator </b> </h2>
<%
float a = 0;
float b = 0;
if (request.getAt­tribute("a")!=nu­ll)
a=Float.parse­Float(request­.getAttribute("a")­.toString());
if( request.getAt­tribute("b")!=nu­ll)
b=Float.parse­Float(request­.getAttribute("b")­.toString());
%>
<form method="post" action="calcu­latorServlet">
<b>Number 1:</b><input type='text' name='n1' value="<%=a%>" /> <br/>
<b>Number 2:</b><input type='text' name='n2' value="<%=b%>" /> <br/>
<u><b>Options:</b></u> <br/>
<ul>
<li><b>+</b><input type='radio' name="oper" value='+' checked /></li>
<li><b>-</b><input type='radio' name="oper" value='-' /></li>
<li><b></b><input type='radio' name="oper" value='' /></li>
<li><b>/</b><input type='radio' name="oper" value='/' /></li> </ul>
<b>-------------------------------------------</b> <br/>
<input type="submit" value="Executer" /> </form>
<font color='blue'><b>Re­sult is: </b> <%=session.ge­tAttribute("re­sult")%> </font> <br/>
<font color='red' >Error: <%=session.ge­tAttribute("E­rror")%></fon­t>
</body>
</html>

 
Nahoru Odpovědět
7.6.2016 10:28
Avatar
Atrament
Člen IT Redactor Gang
Avatar
Odpovídá na Elena Sl
Atrament:7.6.2016 12:35

Ale pořád jsi nenapsala, s čím konkrétně potřebuješ pomoct, co ti není jasné nebo co ti na tom nefunguje! Nemůžeš čekat, že někdo bude louskat kompletní zdrojáky ve snaze vyvěštit s čím potřebuješ pomoct, obvzláště, když jsi je postnula tak jak jsi je postnula, jako prostý text, bez uzavření do code tagu, takže se to nedá číst.

Správně by ten dotaz měl vypadat nějak takto: Mám tohle napsané:

package ejb;

import javax.ejb.LocalBean;
import javax.ejb.Stateless;

/**
 *
 * @author Slavchevska
 */
@Stateless(mappedName = "Firstcalc")
@LocalBean
public class Calculator {

    public float add(float n1, float n2) {
        return n1 + n2;
    }

    public float subtract(float n1, float n2) {
        return n1 - n2;
    }

    public float multiply(float n1, float n2) {
        return n1 * n2;
    }

    public float divide(float n1, float n2) {
        try {
            return n1 / n2;
        } catch (Exception e) {
            System.out.println("Error: Division by zero!");
            return 0;
        }
    }
}

... a tak dále

a když to spustím, tak mi to vyhodí chybu tu a tu na řádku tom a tom, nevím proč. Nebo něco na ten způsob.

 
Nahoru Odpovědět
7.6.2016 12:35
Avatar
Martin Skalík
Tvůrce
Avatar
Martin Skalík:7.6.2016 13:39

Kdybych věděl, že si jen líná se naučit tak tu nic nepíšu! Já myslel, že jen ti něco nejde .

 
Nahoru Odpovědět
7.6.2016 13:39
Avatar
Elena Sl
Člen
Avatar
Elena Sl:7.6.2016 16:02

Omlouvám se všem ale jsem tu nová a nevěděla jsem jakým způsobem tu mezi Vás probíha komunikace. Už to mám vyřešení. Kalkulačka fungovala ale neukládala ten výsledek.Ale už to mám. A děkuji všem za ochotu a celodenní útok.

 
Nahoru Odpovědět
7.6.2016 16:02
Avatar
Elena Sl
Člen
Avatar
Odpovídá na Martin Skalík
Elena Sl:7.6.2016 16:05

Jo přesně tak, jen něco mi nešlo.A nevím kde jsi si přečetl že jsem lína.

 
Nahoru Odpovědět
7.6.2016 16:05
Avatar
Martin Skalík
Tvůrce
Avatar
Odpovídá na Elena Sl
Martin Skalík:8.6.2016 15:20

A pak nekecej odkuď jsem zjistil že jsi líná! (podívej se na co odpovídám) Nechápu proč se ptáš na celou kalkulačku, když už máš dost kódu!

Editováno 8.6.2016 15:22
 
Nahoru Odpovědět
8.6.2016 15:20
Avatar
Odpovídá na Martin Skalík
Neaktivní uživatel:8.6.2016 15:51

Speciálně pro tebe má ITN skvělou fíčkurku - Když nemáš chuť konstruktivně radit zmáčnkeš Ctrl + W a voila, to protivný vlákno, co by ti nedalo spát zmizne.

Ne takhle to tady fakt nechodí, nikdo tě neprosí o sdílení tvého názoru na kvalitu profesní produktivity zdejších členů, nech si ho pro sebe, jen tím otravuješ vzduch! Kdyby se takhle lidi chovali ke každýmu začátečníkovi, fakt nevím jakej význam by tahle síť měla.

Nehledě na drzej tón a slovník, rozdíl mezi: "Na síti si tykáme." a "Na síti se drze osočujeme." je myslím znát i žákovi prvního stupně. Proto ve vlastním zájmu příště nejdřív zvaž, jestli ti druhá strana dala důvod chovat se jako drzák.

Nahoru Odpovědět
8.6.2016 15:51
Neaktivní uživatelský účet
Avatar
Elena Sl
Člen
Avatar
Elena Sl:9.6.2016 10:15

Jediný co jsem zjistila jen tak pro sebe je že se tady už asi na nic nezeptám. Vypadá to tak že začátečníci jsou dost pod vaší uroven natož aby jste jim pomohli a vůbec aby jste se s nimi bavili. Ale je zapotřebí aby člověk občas spadl na zem a pamatoval si že také prošel tou samou cestou, protože nikdo z nebe naučení nespadl. Mějte se tady hezky a možná se za pár let potkáme zase když už budu na úrovni na které se budu moct s vámi podle vás bavit.

 
Nahoru Odpovědět
9.6.2016 10:15
Avatar
Atrament
Člen IT Redactor Gang
Avatar
Odpovídá na Elena Sl
Atrament:9.6.2016 11:19

Vypadá to tak že začátečníci jsou dost pod vaší uroven natož aby jste jim pomohli a vůbec aby jste se s nimi bavili.

Tak proti tomu, se musím ohradit, chodí se sem ptát docela dost začátečníků, a řekl bych, že ve valné většině případů se dočkají ochotné pomoci. Pokládání dotazů do fór má prostě svoje pravidla, pokud je ignoruješ a na kritiku hned reaguješ emotivními výlevy, tak se pak nediv.

 
Nahoru Odpovědět
9.6.2016 11:19
Avatar
Odpovídá na Atrament
Neaktivní uživatel:9.6.2016 11:44

Ano s tím musím souhlasit. Souhra náhod tomu chtěla a tazatelka vypadala jako jen další člověk co nic nemá a nic nechce umět, na druhou stranu, je nás tu pár tisíc, aktivních sice trochu míň, ale soudit všechny, i ty zde zúčastněné, podle jednoho zážitku je ukvapené Elena Sl dej tomu ještě jednu šanci, věř mi, že tolik kolik se můžeš naučit tady, se v češtině nikde jinde na netu nenaučíš a taky bych to s tou kritikou nebral tak hořce, někteří jsou prostě citlivější na jedince, kteří sem přijdou a předhodí zadání domácího úkolu a "Vyřešte mě to!" a že je jich dost. Na začátku to vypadalo jako tvůj případ, samozřejmě je super, že to tak nebylo. Když se po síti podíváš dál a nebudeš soudit jen podle tohoto vlákna, uvidíš spoustu práce a dobrých reakcí na začátečníky. Co ty na to?

Nahoru Odpovědět
9.6.2016 11:44
Neaktivní uživatelský účet
Avatar
Elena Sl
Člen
Avatar
Elena Sl:9.6.2016 11:47

Aha, tak to jsem nevěděla že jsou tu stanovené pravidla na pokládání dotazů :) Můžu se na ti pravidla někde podívat nebo si je přečíst, abych pro příště věděla?A nic proti tomu (beru cizí mínění v úvahu) ale emotivní výlevy v mích odpovědích jsem nezaznamenala.

 
Nahoru Odpovědět
9.6.2016 11:47
Avatar
Elena Sl
Člen
Avatar
Odpovídá na Neaktivní uživatel
Elena Sl:9.6.2016 11:53

Jo s tím souhlasím že je spoustu dobrých reakcí, protože nejdřív jsem se podívala na pár ostatních vláken a až potom jsem svůj dotaz položila, pač jsem si říkala že mi někdo pomůže ale neměla jsem se vůbec ptát. Možná se zeptám za pár let až budu schopna se zdejšími členi komunikovat protože ted jsem tak nějak hodně pod uroven. :)

 
Nahoru Odpovědět
9.6.2016 11:53
Avatar
Odpovídá na Elena Sl
Neaktivní uživatel:9.6.2016 12:02

Jestli pár let nebudeš potřebovat odpovědi, tak pak to asi bude dávat smysl. Tady byl problém jak říká Atrament ve způsobu jak ses zeptala, pravděpodobně to mělo vypadat takto: O tohle se snažím ... , tohle už mám .... , dělá to něco co nechci a to konkrétně toto.... Víte jak se zbavit chybi?

Kód se obaluje do tagu pro kód, pokud je zdroják dlouhej, je tu link, Máš dlouhý zdroják?

Z tvého dotazu nebylo jasné na co se vlastně ptáš, to nejspíš vyvolalo dojem, že vůbec nic nemáš a jen hledáš někoho, kdo ti vypracuje domácí úkol.

Jeden moudrý muž kdysi řekl, selžeš-li, bež a selži znovu. A já ti radím, ptej se dál, bez chyb není učenosti. Za pár let už bude pozdě.

Nahoru Odpovědět
9.6.2016 12:02
Neaktivní uživatelský účet
Avatar
Elena Sl
Člen
Avatar
Odpovídá na Neaktivní uživatel
Elena Sl:9.6.2016 12:22

Děkuji za radu.Ráda se ptám, ptám se každý den v práci,mimo práci a td. A jelikož jsem v tom oboru před nedávnem začala i pracovat tak možná ptát se za pár let nebude pozdě. Člověk se ptá a učí celí život. Když se přestane ptát a myslí si že všechno ví, je to mnohem horší. :) Ano, to je pravda že jsem svou otázku položila blbě ale nemůžu souhlasit s tím že vypálit pak 10 odpovědí každá negativnější než ta předešlá je správné. A mám pocit že jsme to tu obrátili na pokec o morálce tak s tím přestávám. Přeji ti hezký zbytek dne.

 
Nahoru Odpovědět
9.6.2016 12:22
Avatar
Martin Skalík
Tvůrce
Avatar
Odpovídá na Elena Sl
Martin Skalík:10.6.2016 14:40

A pravopis se učí taky celý život že? :D (Máš tam alespoň jednu chybu).

 
Nahoru Odpovědět
10.6.2016 14:40
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 25 zpráv z 25.