Hirdetés
- Milyen egeret válasszak?
- Milyen videókártyát?
- ZIDOO médialejátszók
- Vezeték nélküli fülhallgatók
- Milyen nyomtatót vegyek?
- CES 2026: újraértelmezte a billentyűzet fogalmát a HP
- Apple asztali gépek
- Nem elég a RAM-ok, NAND-ok és VGA-k áremelkedése
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Milyen monitort vegyek?
Új hozzászólás Aktív témák
-
btotyi
tag
Milyen szervert használsz ? Az alkalmazás szerverek általában tudnak autentikációt kezelni.
Ez ugyan geronimo de kiindulásnak jó lehet.
A lényeg az, hogy az index.jsp-d a védett területen (security-realm)-on kívül helyezkedik el és vagy linkkel vagy forward-al átírányít a védett területre. Erre a szerver bejelentkezteti a usert ha az ok továbbdobja a kívánt oldalra, ha nem akkor elutasítja. A védett területen belül vagy sütivel vagy url rewrite-al ellenőrzi, hogy az adott felhasználó már bejelentkezett-e ?
-
btotyi
tag
Nem igazán értem mért akarod a visszatérési értéket kezelni. Ha az insert sikeresen lefut akkor úgyis a következő sorra (update) lép. Ha nem (pl kulcs megsértés vagy null érték not null-os mezőbe) kivétel keletkezik akkor pedig rollback így az insertben felvitt rekordo(ka)t eldobja.
Ha szüksége van az insert utáni értékre pld. a kapott id-t tovább kell vinni, akkor vagy tárolt eljárás vagy generator/sequence használata javaslott, természetesen egy tranzakció belül.
-
btotyi
tag
A ps1.execute csak akkor add vissza true-t ha a visszatérési objektum resultset. Mivel az insert nem azt ad vissza igy persze, hogy false.
Setterek: A preparedstatement leküldi az SQL-t a szervernek előkészítésre. Az lefordítja, felkészül. A setterek beállítják a paramétereket, az execute pedig végrehajtja. A korábban említett előnyök mellett nagy hasznát veheted kötegelt adattöltésnél. Ilyenkor query egyszer előkészít, sokszor végrehajt, nagyon gyorsan.
Erre szolgál a tranzakció.
try {
// Disable auto commit
connection.setAutoCommit(false);
// Do SQL updates...
// Commit updates
connection.commit();
} catch (SQLException e) {
// Rollback update
connection.rollback();
} -
btotyi
tag
A getInt-nél mi a kivétel:
Én így szoktam
ResultSet ers = plm.executeQuery();
while (ers.next()) {
V_Elem lm = new V_Elem();
lm.setId(ers.getLong("ID"));
}Egy elemnél pedig simán
if (rs.next()) {
}Használd a SET SCHEMA=WHUSER utasítást. Vagy tedd az adataidat az APP sémába (Az a Derby alapértelmezett sémája).
A Insert/Update queryknél használj parametrizált queryt. Átláthatóbb, véd az SQL injekcion ellen.
pld.
PreparedStatement ps = conn.prepareStatement("update akarmi set nev=? where id=?");
ps.setString(1,"Az új név");
ps.setLong(2, 12); // az adott ID
ps.execute(); -
btotyi
tag
Ha jobban megnézed a példát az elején egyszerűen létrehoz egy Thread leszármazottat Szal néven. A thread nek van egy start, stop, terminate és ami neked fontos egy run metódusa. Ebben aztán azt valósítasz meg ami neked tetszik. Persze erőforrásokhoz való hozzáféréskor észnél kell lenni mert könnyű deadlock-ot előidézni, de ha csak számolgatod a páros/páratlan számokat akkor nincs baj. Tehát csinálhatsz két(n) thread leszármazottat és a run metódusukban elvégzed a kívánt feladatot. Persze futtatáshoz a megfelelő típusút kell létrehozni.
[Szerkesztve] -
btotyi
tag
Egyszerűen semmi különös.A példában simán visszakapsz egy Complex osztályt. Igazából egy Complex osztályt pontosabban egy IComplex interfészt implementáló osztályt. Ha Complex típusú lenne a változó akkor csak Complex típusú példányt adhatnál át, IComplex-ként viszont bármilyen olyan osztályt ami implementálja az IComplex interfészt. Ennek fényében a második fele a kérdésednek egyértelmű.
Egy kis magyarázat :[link] -
btotyi
tag
Például így :
package test;
class Szal extends java.lang.Thread {
volatile static boolean Stop = false;
// Primordial thread executes main()
public static void main(String args[]) throws InterruptedException {
// Create and start 2 threads
Szal thread1 = new Szal();
thread1.setPriority(1); // 1st thread at 1th non-RT priority
Szal thread2 = new Szal();
thread2.setPriority(1); // 2nd thread at 1th non-RT priority
thread1.start(); // start 1st thread to execute run()
thread2.start(); // start 2nd thread to execute run()
// Sleep for 10 seconds, then tell the threads to terminate
Thread.sleep(10 * 1000);
Stop = true;
}
public void run() { // Created threads execute this method
System.out.println(''Created thread'');
int count = 0;
for (; Stop != true;) { // continue until asked to stop
count++;
Thread.yield(); // yield to other thread
}
System.out.println(''Thread terminates. Loop count is '' + count);
}
}
forrás:[link] -
btotyi
tag
válasz
Corvin84
#665
üzenetére
Mintha egy kicsit kapkodnál

A tömbös megoldásnál foglalsz helyet a tömbnek ? Ráadásul mindig a 100 elem helyére akarsz írni.
A Vector objektumokat tud index szerint tárolni .
Erősen ajánlott a help és valami alapszintű java könyv olvasgatása.
Az első példa tömbt tölt, a második egy vectort tölt/listáz ki.
int[] tomb = new int[100];
for (int i = 0; i < 10; i++) {
tomb[i] = i * 2;
}
Vector v = new Vector(100);
for (int i = 0; i < 10; i++) {
v.add(i, new Integer(i * 2));
}
for (int i = 0; i < 10; i++) {
System.out.println(v.get(i));
}
[Szerkesztve] -
btotyi
tag
válasz
Corvin84
#661
üzenetére
Kicsit fáradt vagyok, hogy jobban átnézzem. Lehetne optimálisabb és szebb kódot írni de most csak ennyire futja. Helyenként kicsit elbonyolítod a dolgot. Boolean értéket nem vizsgálunk true vagy false értékre mert önmagában kiértékelhető. A bemeneti értékek ellnőrzése szükséges mert első lefutáskor nem tartalmaz a kérés paramétert.
<%@ page language=''java'' pageEncoding=''ISO-8859-1''%>
<!DOCTYPE HTML PUBLIC ''-//W3C//DTD HTML 4.01 Transitional//EN''>
<html>
<head>
<title>My JSP 'prim3.jsp' starting page</title>
</head>
<body bgcolor=''white''>
<h1>
Prímszám generálás
</h1>
<form action=''prim3.jsp'' method=''post''>
<input type=''text'' name=''kezdet''>
-tól
<br>
<input type=''text'' name=''veg''>
-ig
<br>
<input type=''submit'' value=''elkuld''>
</form>
<hr>
<%
String ks = request.getParameter(''kezdet'');
String vs = request.getParameter(''veg'');
if (ks != null && vs != null) {
int k = Integer.parseInt(ks);
int v = Integer.parseInt(vs);
for (int i = k; i < v; i++) {
boolean nemprim = false;
for (int j = 2; j < (i - 1); j++) {
if ((i % j) == 0) {
nemprim = true;
break;
}
}
if (!nemprim) {
out.println(i + ''. primszam'' + ''<br>'');
}
}
}
%>
</body>
</html>
[Szerkesztve]
Új hozzászólás Aktív témák
Hirdetés
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Lenovo IdeaPad B50-80, 15,6" HD, i3-5005 CPU, 8GB DDR3, 128GB SSD, W11, Számla, 1 év garancia ( ol
- HP EliteBook 840 G3, 14" HD, i5-6300U CPU, 8GB DDR4, 128GB M.2 SSD, W11, Számla, 1 év garancia ( o
- HP EliteBook 840 G2, 14" HD, i5-5300U CPU, 8GB DDR3, 128GB SSD, W11, Számla, 1 év garancia ( olvas
- Dell Vostro 5481, 14" FHD, i5-8250U CPU, 8GB DDR4, 256GB NVMe SSD, W11, Számla, 1 év garancia ( ol
- Samsung Galaxy S23 8/128GB fehér
- Új Asus TUF Gaming 15.6 FHD 144Hz Ryzen9 AI 8945H 16GB 512GB Nvidia RTX 4060 8GB 140W Win11 Garancia
- magyar billentyűzet - 171 - Lenovo Legion Pro 7 (16IAX10H) - Intel Core U9 275HX, RTX 5080
- Bomba ár! HP Zbook 15u G5 - i7-8GEN I 16GB I 256-512SSD I 15,6" FHD I Cam I W11 I Garancia!
- 188 - Lenovo LOQ (15IRX10) - Intel Core i5-13450HX, RTX 5060
- Eladó Pegatron R7 240 4GB videokártya
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest

vagy nem értem ????


