Diskuze: J2EE Calculator

Java Java J2EE Calculator

Avatar
Elena Sl
Člen
Avatar
Elena Sl:

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  -1 6. června 10:42
Avatar
polemes
Redaktor
Avatar
polemes:

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

Nahoru Odpovědět 6. června 16:41
5 + 5 = 1010
Avatar
Elena Sl
Člen
Avatar
Odpovídá na polemes
Elena Sl:

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  -1 7. června 9:14
Avatar
Lako
Člen
Avatar
Odpovídá na Elena Sl
Lako:

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  +3 7. června 9:28
Avatar
Elena Sl
Člen
Avatar
Odpovídá na Lako
Elena Sl:

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  -4 7. června 9:38
Avatar
patrik.valkovic
Šéfredaktor
Avatar
Odpovídá na Elena Sl
patrik.valkovic:

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  +2 7. června 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.valkovic
Elena Sl:

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  -2 7. června 10:25
Avatar
Elena Sl
Člen
Avatar
Elena Sl:

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. června 10:25
Avatar
Elena Sl
Člen
Avatar
Elena Sl:

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 GET and POST
* 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 GET 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 POST 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. června 10:27
Avatar
Elena Sl
Člen
Avatar
Elena Sl:

<%@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> Calculator </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">
Number 1:<input type='text' name='n1' value="<%=a%>" />

Number 2:<input type='text' name='n2' value="<%=b%>" />

<u>Options:</u>

<ul>
<li>+<input type='radio' name="oper" value='+' checked /></li>
<li>-<input type='radio' name="oper" value='-' /></li>
<li><input type='radio' name="oper" value='' /></li>
<li>/<input type='radio' name="oper" value='/' /></li> </ul>
-------------------------------------------

<input type="submit" value="Executer" /> </form>
<font color='blue'>Re­sult is: <%=session.ge­tAttribute("re­sult")%> </font>

<font color='red' >Error: <%=session.ge­tAttribute("E­rror")%></fon­t>
</body>
</html>

 
Nahoru Odpovědět 7. června 10:28
Avatar
Atrament
Člen
Avatar
Odpovídá na Elena Sl
Atrament:

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  +3 7. června 12:35
Avatar
polemes
Redaktor
Avatar
polemes:

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  +2 7. června 13:39
5 + 5 = 1010
Avatar
Elena Sl
Člen
Avatar
Elena Sl:

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. června 16:02
Avatar
Elena Sl
Člen
Avatar
Odpovídá na polemes
Elena Sl:

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  -1 7. června 16:05
Avatar
polemes
Redaktor
Avatar
Odpovídá na Elena Sl
polemes:

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. června 15:22
Nahoru Odpovědět  +1 8. června 15:20
5 + 5 = 1010
Avatar
Taskkill
Redaktor
Avatar
Odpovídá na polemes
Taskkill:

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  +2 8. června 15:51
Avatar
polemes
Redaktor
Avatar
Nahoru Odpovědět 8. června 16:00
5 + 5 = 1010
Avatar
Elena Sl
Člen
Avatar
Elena Sl:

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. června 10:15
Avatar
Atrament
Člen
Avatar
Odpovídá na Elena Sl
Atrament:

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. června 11:19
Avatar
Taskkill
Redaktor
Avatar
Odpovídá na Atrament
Taskkill:

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. června 11:44
Avatar
Elena Sl
Člen
Avatar
Elena Sl:

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. června 11:47
Avatar
Elena Sl
Člen
Avatar
Odpovídá na Taskkill
Elena Sl:

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. června 11:53
Avatar
Taskkill
Redaktor
Avatar
Odpovídá na Elena Sl
Taskkill:

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  +3 9. června 12:02
Avatar
Elena Sl
Člen
Avatar
Odpovídá na Taskkill
Elena Sl:

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  +1 9. června 12:22
Avatar
polemes
Redaktor
Avatar
Odpovídá na Elena Sl
polemes:

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

Nahoru Odpovědět 10. června 14:40
5 + 5 = 1010
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.