Diskuze: J2EE Calculator
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 25 zpráv z 25.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
Ahoj, prosím upřesni co potřebuješ.
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.
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...
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
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?
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.
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;
}
}
}
package web;
import ejb.Calculator;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@WebServlet(name = "calculatorServlet", urlPatterns =
{"/calculatorServlet"})
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 processRequest(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
try (PrintWriter out = response.getWriter()) {
/ TODO output your page here. You may use following sample code. */
out.println("<!DOCTYPE html>");
out.println("<html>");
out.println("<head>");
out.println("<title>Servlet calculatorServlet</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Servlet calculatorServlet at " +
request.getAttribute("result") + "</h1>");
out.println("</body>");
out.println("</html>");
}
}
// <editor-fold defaultstate="collapsed" 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(HttpServletRequest request, HttpServletResponse
response)
throws ServletException, IOException {
processRequest(request, response);
HttpSession session = request.getSession(true);
RequestDispatcher rd =
this.getServletContext().getRequestDispatcher("/index.jsp");
float a = Float.parseFloat(request.getParameter("n1"));
float b = Float.parseFloat(request.getParameter("n2"));
char oper = request.getParameter("oper").charAt(0);
float result = 0;
try {
Context ctx = new InitialContext();
Calculator cl = (Calculator) ctx.lookup("Firstcalc");
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.setAttribute("result", result);
request.setAttribute("a", a);
request.setAttribute("b", b);
} catch (Exception e) {
session.setAttribute("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(HttpServletRequest request, HttpServletResponse
response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Returns a short description of the servlet.
*
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
<%@page contentType="text/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.getAttribute("a")!=null)
a=Float.parseFloat(request.getAttribute("a").toString());
if( request.getAttribute("b")!=null)
b=Float.parseFloat(request.getAttribute("b").toString());
%>
<form method="post" action="calculatorServlet">
<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>Result is: </b>
<%=session.getAttribute("result")%> </font> <br/>
<font color='red' >Error:
<%=session.getAttribute("Error")%></font>
</body>
</html>
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.
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 .
Jo přesně tak, jen něco mi nešlo.A nevím kde jsi si přečetl že jsem lína.
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!
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.
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.
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.
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?
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.
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.
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ě.
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.
A pravopis se učí taky celý život že? (Máš tam alespoň jednu chybu).
Zobrazeno 25 zpráv z 25.