JavaRush /Blog Jawa /Random-JV /Nggawe aplikasi web prasaja nggunakake servlets lan jsp (...

Nggawe aplikasi web prasaja nggunakake servlets lan jsp (bagean 2)

Diterbitake ing grup
Nggawe aplikasi web prasaja nggunakake servlets lan jsp (bagean 1) Tingkat kawruh sing dibutuhake kanggo mangerteni artikel: sampeyan wis kurang luwih ngerti Java Core lan pengin ndeleng teknologi JavaEE lan program web. Iku ndadekake pangertèn sing paling apik yen sampeyan lagi sinau nggoleki Java Collections, sing nyakup topik sing cedhak karo artikel kasebut.
Nggawe aplikasi web prasaja nggunakake servlets lan jsp (bagean 2) - 1

Nggawe Entitas

Ing paket entitas , kita bakal nggawe pangguna kelas , lan ing kono bakal ana rong variabel string pribadi jeneng lan sandhi . Ayo nggawe konstruktor (standar lan siji sing bakal nampa loro nilai), getters / setters, override toString () cara mung ing kasus, uga witjaksono () lan hashCode () cara . Yaiku, kita bakal nindakake kabeh sing ditindakake dening pangembang Jawa sing prayoga nalika nggawe kelas.
public class User {
    private String name;
    private String password;

    public User() {
    }

    public User(String name, String password) {
        this.name = name;
        this.password = password;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                ", password='" + password + '\'' +
                '}';
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        User user = (User) o;

        if (name != null ? !name.equals(user.name) : user.name != null) return false;
        return password != null ? password.equals(user.password) : user.password == null;

    }

    @Override
    public int hashCode() {
        int result = name != null ? name.hashCode() : 0;
        result = 31 * result + (password != null ? password.hashCode() : 0);
        return result;
    }
}
Saiki kita bisa miwiti nggawe dhaptar pangguna. Kita bakal nambah pangguna, lan saka ngendi kita bakal nuduhake. Nanging, ana siji masalah. Kita ora nggawe obyek servlet, Tomcat nindakake kanggo kita . Cara sing kita timpa uga wis ditetepake kanggo kita, lan kita ora bisa nambah parameter. Kepiye carane bisa nggawe dhaptar bareng sing katon ing loro servlet kita? Yen kita mung nggawe obyek dhaptar dhewe ing saben servlet, bakal katon manawa kita bakal nambah pangguna menyang siji dhaptar, lan nampilake dhaptar pangguna nggunakake servlet ListServlet menyang liyane. Pranyata metu sing kita kudu obyek sing bakal umum kanggo loro servlets. Umumé, kita butuh obyek sing umum kanggo kabeh kelas ing program kita; obyek mung kanggo kabeh program. Muga-muga sampeyan wis krungu babagan pola desain. Lan, mbok menawa, kanggo sawetara iki minangka kabutuhan nyata pisanan nggunakake pola Singleton ing program kasebut. Sampeyan bisa njaluk perverted lan nggawe sawetara Singleton kelangan karo mriksa pindho lan sinkronisasi (ya, kita duwe aplikasi multi-threaded, wiwit Tomcat mbukak servlets ing Utas beda), nanging aku bakal nggunakake pilihan karo initialization awal, amarga iku cukup cocok kene cukup lan cocog karo tujuan kita.

Nggawe model

Ayo nggawe kelas (lan ngleksanakake pola Singleton ing ) ing paket model lan nyebataken bab mboten umum. Ayo ngomong Model . Ayo nggawe obyek dhaptar pangguna pribadi ing kelas kita, lan ngleksanakake rong cara: siji supaya bisa nambah pangguna, lan liya kanggo ngasilake dhaptar string (jeneng pangguna). Wiwit obyek panganggo kita kasusun saka jeneng lan sandhi, lan kita ora pengin "ngumumke" sandhi pangguna, kita mung bakal duwe dhaptar jeneng.
public class Model {
    private static Model instance = new Model();

    private List<User> model;

    public static Model getInstance() {
        return instance;
    }

    private Model() {
        model = new ArrayList<>();
    }

    public void add(User user) {
        model.add(user);
    }

    public List<String> list() {
        return model.stream()
                .map(User::getName)
                .collect(Collectors.toList());
    }
}

A sethitik babagan mvc

Awit sampeyan wis krungu bab singleton , banjur sampeyan mbokmenawa wis krungu bab pola desain liyane - MVC (model-view-controller, ing Rusia model-view-controller, utawa kaya ing Inggris model-view-controller). Intine yaiku misahake logika bisnis saka presentasi. Yaiku, misahake kode sing nemtokake apa sing kudu ditindakake saka kode sing nemtokake cara nampilake. Tampilan (deleng utawa mung tampilan) tanggung jawab kanggo formulir sing ditampilake sawetara data. Ing kasus kita, tampilan minangka kaca JSP kita. Mulane aku sijine ing folder disebut views . Model minangka data nyata sing digunakake program kasebut. Ing kasus kita, iki minangka pangguna (dhaptar pangguna). Inggih, pengontrol minangka penghubung ing antarane. Padha njupuk data saka model lan pass menyang views (utawa nampa sawetara data saka Tomcat, proses lan pass menyang model). Logika bisnis (apa persis sing kudu ditindakake program) kudu diterangake ing dheweke, lan ora ing model utawa ing tampilan. Dadi, saben wong nindakake pakaryane dhewe:
  • model nyimpen data;
  • views tarik perwakilan ayu saka data;
  • pengontrol nangani pangolahan data.
Iki ngidini program dadi cukup prasaja lan maintainable, tinimbang mbucal monstrous kabeh kode ing siji kelas. MVC cocok ora mung kanggo program web, nanging ing wilayah iki asring ditemokake (meh tansah). Ing kasus kita, servlet bakal dadi pengontrol. Iki minangka gambaran banget lan ringkes babagan pola kasebut, nanging MVC dudu topik utama artikel iki. Sapa sing pengin ngerti luwih akeh - Google kanggo ngluwari! Nggawe formulir kanggo nambah pangguna Ayo ditambahake menyang file add.jsp wangun sing dumadi saka rong kolom input teks (siji biasa, liyane sandhi) lan tombol kanggo ngirim data menyang server.
<form method="post">
    <label>Name:
        <input type="text" name="name"><br />
    </label>

    <label>Password:
        <input type="password" name="pass"><br />
    </label>
    <button type="submit">Submit</button>
</form>
Ing kene formulir kasebut nduweni atribut metode kanthi kiriman nilai . Iki tegese data saka formulir iki bakal dikirim menyang server ing wangun request POST. Atribut tumindak ora ditemtokake, tegese panyuwunan bakal dikirim menyang alamat sing padha ing ngendi kita menyang kaca iki ( / add ). Mangkono, servlet kita, kaiket ing alamat iki, nalika nampa panjalukan GET, ngasilake jsp iki kanthi formulir kanggo nambah pangguna, lan yen nampa panjalukan POST, tegese formulir kasebut ngirim data ing kana (sing bakal ditarik saka request obyek ing doPost () Wigati dicathet yen kolom input duwe parameter jeneng (kanggo kolom kanthi jeneng nduweni jeneng nilai, lan kanggo kolom kanthi sandhi nduweni nilai pass ). Iki minangka titik sing penting banget. Wiwit kanggo entuk data iki (jeneng lan sandhi sing bakal dilebokake) saka panyuwunan (wis ana ing servlet), kita bakal nggunakake jeneng kasebut lan pass . Nanging luwih ing mengko. Tombol kanggo ngirim data dhewe maneh digawe ing wangun tombol , lan ora minangka lapangan output, kaya biasane. Aku ora ngerti carane universal pilihan iki, nanging bisa kanggo kula (browser Chrome).

Ngolah panjalukan POST nganggo servlet

Ayo bali menyang servlet AddServlet . Ayo kula ngelingake sampeyan: supaya servlet kita bisa "nyekel" panjalukan GET, kita overridden doGet () cara saka kelas HttpServlet . Kanggo ngajari servlet uga nyekel panjalukan POST, kita uga kudu ngilangi metode doPost () . Nampa panjalukan lan obyek respon sing padha saka Tomcat , sing bakal ditindakake. Pisanan, ayo extract saka panjalukan jeneng lan pass paramèter sing dikirim formulir (yen sampeyan jenenge beda ing formulir, banjur jeneng sing sampeyan tulis). Sawise iki, kita bakal nggawe obyek pangguna nggunakake data sing ditampa. Banjur kita bakal entuk obyek model lan nambah pangguna sing digawe menyang model kasebut.
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    String name = req.getParameter("name");
    String password = req.getParameter("pass");
    User user = new User(name, password);
    Model model = Model.getInstance();
    model.add(user);
}

Nglewati data kanggo ndeleng

Ayo pindhah menyang servlet ListServlet . Cara doGet () wis diterapake ing kene , sing mung nransfer kontrol menyang tampilan list.jsp . Yen sampeyan durung duwe iki, nindakaken kanthi analogi karo cara sing padha saka AddServlet servlet . Saiki bakal luwih apik kanggo entuk dhaptar jeneng pangguna saka model lan ngirim menyang tampilan, sing bakal nampa lan nampilake kanthi apik. Kanggo nindakake iki, kita bakal nggunakake maneh obyek panjalukan sing ditampa saka Tomcat . Kita bisa nambah atribut kanggo obyek iki, menehi sawetara jeneng, lan, nyatane, obyek kasebut dhewe, sing pengin ditransfer kanggo ndeleng . Amarga kasunyatan manawa nalika nransfer proses eksekusi saka servlet menyang tampilan, kita ngliwati panjalukan lan obyek respon sing padha sing ditampa dening servlet kasebut, banjur kanthi nambahake dhaptar jeneng menyang obyek panyuwunan, banjur bisa saka panyuwunan iki. obyek ing tampilan nggawe dhaptar jeneng pangguna lan entuk. Kita wis rampung karo ListServlet class , dadi iki kode kanggo kabeh kelas:
package app.servlets;

import app.model.Model;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;

public class ListServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        Model model = Model.getInstance();
        List<String> names = model.list();
        req.setAttribute("userNames", names);

        RequestDispatcher requestDispatcher = req.getRequestDispatcher("views/list.jsp");
        requestDispatcher.forward(req, resp);
    }
}

Ngeksekusi kode java ing file jsp

Wektu kanggo miwiti nggarap file list.jsp . Iki mung bakal dieksekusi nalika ListServlet ngliwati proses eksekusi ing kene. Kajaba iku, ing servlet kasebut, kita wis nyiapake dhaptar jeneng pangguna saka model kasebut lan mlebu ing obyek panyuwunan. Amarga kita duwe dhaptar jeneng, kita bisa ngubengi lan nyithak saben jeneng. Kaya sing wis dakkandhakake, file jsp bisa nglakokake kode java (sing ndadekake beda karo kaca html statis). Kanggo nindakake sawetara kode, cukup kanggo nyelehake konstruksi ing ngisor iki ing papan sing dibutuhake:
<!-- html code -->
<%
    // java code
%>
<!-- html code -->
Ing konstruk iki, kita duwe akses menyang sawetara variabel:
  • request minangka obyek panyuwunan kita, sing kita liwati saka servlet, ing ngendi iku mung disebut req ;
  • responce - obyek respon, disebut resp ing servlet ;
  • metu minangka obyek saka jinis JspWriter (diwarisake saka Writer biasanipun ), kanthi bantuan kita bisa "nulis" soko langsung menyang kaca html dhewe. Entri out.println("Hello world!") meh padha karo entri System.out.println("Hello world!") , nanging aja bingung loro!
    out.println () "nulis" kanggo kaca html, lan System.out.println nulis kanggo output sistem. Yen sampeyan nelpon cara jsp System.out.println () nang bagean karo kode Jawa , sampeyan bakal weruh asil ing Tomcat console , lan ora ing kaca.

Sampeyan bisa nggoleki obyek liyane sing kasedhiya ing jsp kene . Nggunakake obyek panyuwunan , kita bisa entuk dhaptar jeneng sing diwarisake saka servlet (kita masang atribut sing cocog karo obyek iki), lan nggunakake obyek metu , kita bisa nampilake jeneng kasebut. Ayo iki (saiki mung ing wangun dhaptar html):
<ul>
    <%
        List<String> names = (List<String>) request.getAttribute("userNames");

        if (names != null && !names.isEmpty()) {
            for (String s : names) {
                out.println("<li>" + s + "</li>");
            }
        }
    %>
</ul>
Yen sampeyan kudu nampilake dhaptar mung yen ana pangguna, lan nuduhake bebaya yen durung ana pangguna, kita bisa nulis maneh bagean iki:
<%
    List<String> names = (List<String>) request.getAttribute("userNames");

    if (names != null && !names.isEmpty()) {
        out.println("<ui>");
        for (String s : names) {
            out.println("<li>" + s + "</li>");
        }
        out.println("</ui>");
    } else out.println("<p>There are no users yet!</p>");
%>
Saiki kita bisa ngirim data saka servlets menyang tampilan, kita bisa rada nambah AddServlet supaya kabar ditampilake nalika pangguna wis kasil ditambahake. Kanggo nindakake iki, ing doPost () cara , sawise nambah pangguna anyar kanggo model, kita bisa nambah jeneng pangguna iki kanggo kawicaksanan obyek req lan pass kontrol bali menyang tampilan add.jsp . Lan ing kono wis nggawe bagean karo kode Jawa sing mriksa kanggo ndeleng apa atribut kasebut ana ing panyuwunan, lan yen mangkono, banjur metu pesen sing nyatakake pangguna wis kasil ditambahake. Sawise owah-owahan kasebut, kode servlet AddServlet lengkap bakal katon kaya iki:
package app.servlets;

import app.entities.User;
import app.model.Model;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class AddServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        RequestDispatcher requestDispatcher = req.getRequestDispatcher("views/add.jsp");
        requestDispatcher.forward(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String name = req.getParameter("name");
        String password = req.getParameter("pass");
        User user = new User(name, password);
        Model model = Model.getInstance();
        model.add(user);

        req.setAttribute("userName", name);
        doGet(req, resp);
    }
}
Kene, ing mburi doPost () cara , kita nyetel atribut karo jeneng pangguna sing ditambahake ing model, sawise kang kita nelpon doGet () cara , sing kita pass panjalukan lan respon saiki. Lan doGet () cara wis nransfer kontrol kanggo tampilan, ngendi iku ngirim obyek request karo jeneng pangguna ditambahaké ditempelake minangka atribut. Kabeh sing isih ana yaiku mbenerake add.jsp supaya bisa nampilake kabar yen ana atribut kasebut. Add.jsp pungkasan yaiku :
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
    <head>
        <title>Add new user</title>
    </head>

    <body>
        <div>
            <h1>Super app!</h1>
        </div>

        <div>
            <%
                if (request.getAttribute("userName") != null) {
                    out.println("<p>User '" + request.getAttribute("userName") + "' added!</p>");
                }
            %>
            <div>
                <div>
                    <h2>Add user</h2>
                </div>

                <form method="post">
                    <label>Name:
                        <input type="text" name="name"><br />
                    </label>
                    <label>Password:
                        <input type="password" name="pass"><br />
                    </label>
                    <button type="submit">Submit</button>
                </form>
            </div>
        </div>

        <div>
            <button onclick="location.href='/'">Back to main</button>
        </div>
    </body>
</html>
Badan kaca kasebut kalebu:
  • div-a kanthi header;
  • wadhah div kanggo konten, mriksa manawa ana atribut karo jeneng pangguna;
  • div karo formulir kanggo nambah pangguna;
  • lan ing pungkasan ana footer karo tombol kanggo bali menyang kaca utama.
Koyone kaya akeh banget div, nanging kita bakal nggunakake mengko yen kita nambah gaya. List.jsp pungkasan yaiku:
<%@ page import="java.util.List" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
    <head>
        <title>Users</title>
    </head>

    <body>
        <div>
            <h1>Super app!</h1>
        </div>

        <div>
            <div>
                <div>
                    <h2>Users</h2>
                </div>
                <%
                    List<String> names = (List<String>) request.getAttribute("userNames");

                    if (names != null && !names.isEmpty()) {
                        out.println("<ui>");
                        for (String s : names) {
                            out.println("<li>" + s + "</li>");
                        }
                        out.println("</ui>");
                    } else out.println("<p>There are no users yet!</p>");
                %>
            </div>
        </div>

        <div>
            <button onclick="location.href='/'">Back to main</button>
        </div>
    </body>
</html>
Dadi, kita duwe aplikasi web sing bisa digunakake kanthi lengkap sing bisa nyimpen lan nambah pangguna, uga nampilake dhaptar jenenge. Kabeh sing isih ana yaiku kanggo nghias ... :)

Nambah gaya. Kita nggunakake framework W3.CSS

Ing wayahe aplikasi kita digunakake, nanging pancen edan. Mula, kita bakal nambah latar mburi, warna teks lan tombol, dhaptar gaya, nggawe alignment, nambah indent, lan liya-liyane. Yen sampeyan nulis gaya kanthi manual, bisa njupuk akeh wektu lan saraf. Mulane, aku suggest nggunakake framework W3.CSS CSS. Wis duwe kelas sing wis siap karo gaya; sing isih ana yaiku nyelehake kelas CSS sing pengin ditrapake ing papan sing pas. Kanggo nambah menyang kaca kita, pisanan kita bakal kalebu file karo gaya. Iki bisa ditindakake kanthi rong cara:
  1. pindhah liwat kaca kita lan ing bagean sirah masang link langsung menyang file karo gaya

    <link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">

    Opsi iki cocok yen sampeyan duwe sambungan Internet sing tetep. Banjur, nalika sampeyan mbukak kaca ing server lokal, gaya bakal ditarik saka Internet.


  2. Yen sampeyan pengin duwe kabeh gaya lokal lan ora gumantung ing sambungan Internet, download file kanthi gaya lan selehake nang endi wae ing folder web (contone, web/styles/w3.css ), banjur bukak kabeh kita kaca ( index.html, add.jsp, list.jsp ) lan ketik pranala menyang berkas iki kanthi gaya ing bagean sirah

    <link rel="stylesheet" href="styles/w3.css">

    Sawise iku, bukak tag lan tambahake gaya sing disenengi. Aku ora bakal manggon ing rinci, nanging bakal langsung menehi versi siap-digawe saka telung file karo kelas gaya diatur.

index.html

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Super app!</title>
        <link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">
    </head>

    <body class="w3-light-grey">
        <div class="w3-container w3-blue-grey w3-opacity w3-right-align">
            <h1>Super app!</h1>
        </div>

        <div class="w3-container w3-center">
            <div class="w3-bar w3-padding-large w3-padding-24">
                <button class="w3-btn w3-hover-light-blue w3-round-large" onclick="location.href='/list'">List users</button>
                <button class="w3-btn w3-hover-green w3-round-large" onclick="location.href='/add'">Add user</button>
            </div>
        </div>
    </body>
</html>

nambah.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
    <head>
        <title>Add new user</title>
        <link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">
    </head>

    <body class="w3-light-grey">
        <div class="w3-container w3-blue-grey w3-opacity w3-right-align">
            <h1>Super app!</h1>
        </div>

        <div class="w3-container w3-padding">
            <%
                if (request.getAttribute("userName") != null) {
                    out.println("<div class=\"w3-panel w3-green w3-display-container w3-card-4 w3-round\">\n" +
                            "   <span onclick=\"this.parentElement.style.display='none'\"\n" +
                            "   class=\"w3-button w3-margin-right w3-display-right w3-round-large w3-hover-green w3-border w3-border-green w3-hover-border-grey\">×</span>\n" +
                            "   <h5>User '" + request.getAttribute("userName") + "' added!</h5>\n" +
                            "</div>");
                }
            %>
            <div class="w3-card-4">
                <div class="w3-container w3-center w3-green">
                    <h2>Add user</h2>
                </div>
                <form method="post" class="w3-selection w3-light-grey w3-padding">
                    <label>Name:
                        <input type="text" name="name" class="w3-input w3-animate-input w3-border w3-round-large" style="width: 30%"><br />
                    </label>
                    <label>Password:
                        <input type="password" name="pass" class="w3-input w3-animate-input w3-border w3-round-large" style="width: 30%"><br />
                    </label>
                    <button type="submit" class="w3-btn w3-green w3-round-large w3-margin-bottom">Submit</button>
                </form>
            </div>
        </div>

        <div class="w3-container w3-grey w3-opacity w3-right-align w3-padding">
            <button class="w3-btn w3-round-large" onclick="location.href='/'">Back to main</button>
        </div>
    </body>
</html>

daftar.jsp

<%@ page import="java.util.List" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
    <head>
        <title>Users list</title>
        <link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">
    </head>

    <body class="w3-light-grey">
        <div class="w3-container w3-blue-grey w3-opacity w3-right-align">
            <h1>Super app!</h1>
        </div>

        <div class="w3-container w3-center w3-margin-bottom w3-padding">
            <div class="w3-card-4">
                <div class="w3-container w3-light-blue">
                    <h2>Users</h2>
                </div>
                <%
                    List<String> names = (List<String>) request.getAttribute("userNames");

                    if (names != null && !names.isEmpty()) {
                        out.println("<ul class=\"w3-ul\">");
                        for (String s : names) {
                            out.println("<li class=\"w3-hover-sand\">" + s + "</li>");
                        }
                        out.println("</ul>");

                    } else out.println("<div class=\"w3-panel w3-red w3-display-container w3-card-4 w3-round\">\n"
+
                            "   <span onclick=\"this.parentElement.style.display='none'\"\n" +
                            "   class=\"w3-button w3-margin-right w3-display-right w3-round-large w3-hover-red w3-border w3-border-red w3-hover-border-grey\">×</span>\n" +
                            "   <h5>There are no users yet!</h5>\n" +
                            "</div>");
                %>
            </div>
        </div>

        <div class="w3-container w3-grey w3-opacity w3-right-align w3-padding">
            <button class="w3-btn w3-round-large" onclick="location.href='/'">Back to main</button>
        </div>
    </body>
</html>
Iku kabeh :) Yen sampeyan isih duwe pitakon utawa duwe komentar, utawa kosok balene, ana sing ora bisa ditindakake - tinggalake komentar. UPD: yen sampeyan duwe masalah karo kesalahan 404 nalika ngeklik tombol, sanajan kabeh wis rampung bener, mbok menawa sampeyan kudu mbenerake konfigurasi penyebaran ing idea. Kanggo nindakake iki, sampeyan kudu pindhah menyang Owahi konfigurasi (ing sisih ndhuwur cedhak tombol wiwitan), pindhah menyang tab Panyebaran ing sisih tengen jendhela lan priksa manawa ing konteks Aplikasi mung dituduhake / Ya, aku ' Bakal masang sawetara gambar saka apa sing metu saka kabeh iki.
Nggawe aplikasi web prasaja nggunakake servlets lan jsp (bagean 2) - 2
Nggawe aplikasi web prasaja nggunakake servlets lan jsp (bagean 2) - 3
Nggawe aplikasi web prasaja nggunakake servlets lan jsp (bagean 2) - 4
Lan pungkasane , yen sampeyan pengin latihan karo proyek iki, sampeyan bisa nyoba:
  • nggawe servlet lan jsp kanggo mbusak pangguna lan saperangan liyane kanggo ngganti / ngowahi pangguna sing wis ana. Sampeyan bakal entuk aplikasi web CrUD nyata :) ing servlets));
  • ngganti dhaptar (Dhaptar) karo nggarap database supaya pangguna sing ditambahake ora ilang sawise miwiti maneh server :)
Sugeng enjang!
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION