Tahap pengetahuan yang diperlukan untuk memahami artikel: anda sudah lebih kurang memahami Java Core dan ingin melihat teknologi JavaEE dan pengaturcaraan web. Ia paling masuk akal jika anda sedang mengkaji pencarian Java Collections, yang merangkumi topik yang hampir dengan artikel.
Saya sedang menggunakan IntelliJ IDEA Enterprise Edition (ini ialah versi lanjutan berbayar IDE, ia biasanya digunakan dalam pembangunan profesional -
nota editor ). Lebih mudah untuk bekerja dengan projek web daripada Edisi Komuniti percuma. Jadi, dalam Edisi Perusahaan, secara literal dengan satu klik tetikus, projek itu dipasang, dituangkan ke dalam bekas servlet, pelayan bermula, dan juga halaman dengan projek yang sedang berjalan dibuka dalam penyemak imbas. Dalam versi percuma idea, kebanyakan perkara ini perlu dilakukan secara bebas, boleh dikatakan, "dengan tangan." Saya menggunakan Apache Maven untuk membina projek dan mengurus kitaran hayatnya. Dalam hal ini saya hanya menggunakan sebahagian kecil daripada keupayaannya (pengurusan pakej/pergantungan). Saya memilih Apache Tomcat versi 9.0.0.M4 sebagai bekas servlet/pelayan Aplikasi. Saya tahu bahawa sudah ada versi yang lebih baru, tetapi ini adalah yang saya telah pasang.
Mari kita mulakan
Mula-mula, mari buka IntelliJ IDEA dan buat projek Maven kosong.
Di sini di sebelah kiri kami memilih Maven, semak bahawa JDK untuk projek itu ditunjukkan di bahagian atas. Jika tiada, pilih yang anda perlukan daripada senarai, atau klik Baharu... dan pilih terus daripada komputer anda. Di tengah-tengah tetingkap saya mempunyai animasi memuatkan senarai archetypes. Kami tidak memerlukannya, jadi tanpa menunggu muat turun, sila klik Seterusnya di bahagian bawah tetingkap.
Dalam tetingkap ini anda perlu menentukan
GroupId dan ArtifactId . GroupId merujuk kepada pengecam unik syarikat yang menghasilkan projek. Adalah menjadi amalan biasa untuk menggunakan nama domain syarikat, tetapi dalam susunan terbalik. Bukan dalam erti kata cermin, tetapi jika, sebagai contoh, nama domain syarikat
ialah maven.apache.org , maka GroupIdnya ialah
org.apache.maven . Iaitu, mula-mula kita menulis domain peringkat pertama, memisahkannya dengan titik, menulis nama domain peringkat kedua, dan seterusnya. Ini adalah pendekatan yang diterima umum. Sekiranya anda "memotong" projek sendiri, dan bukan sebagai sebahagian daripada syarikat, tulis nama domain peribadi anda di sini (juga dalam susunan terbalik!). Jika anda memilikinya, sudah tentu :). Jika tidak, jangan susah hati. Malah, anda boleh menulis
apa sahaja di sini .
Untuk syarikat dengan nama domain vasya.pupkin.org, GroupId ialah org.pupkin.vasya. Pendekatan kepada nama ini diperlukan untuk memisahkan projek dengan nama yang sama, tetapi yang dikeluarkan oleh syarikat yang berbeza. |
Dalam contoh ini, saya akan menggunakan nama domain rekaan
fatfaggy.info.javarush.ru . Oleh itu, saya memasukkan
ru.javarush.info.fatfaggy dalam medan GroupId .
ArtefactId hanyalah nama projek kami. Anda boleh menggunakan huruf dan beberapa simbol (sempang, contohnya) untuk memisahkan perkataan. "Artifak" kami akan dipanggil tepat seperti yang kami tulis di sini. Dalam contoh ini, saya menulis
my-super-project . Kami tidak menyentuh medan versi buat masa ini, kami membiarkannya seperti sedia ada.
Nah, tetingkap IDEA standard semasa membuat projek baharu.
Mari kita panggil projek super saya mengikut tradisi .
Projek telah dibuat!
Fail pom.xml segera dibuka di hadapan kami. Ini ialah fail dengan tetapan Maven. Jika kami ingin "memberitahu" Maven apa dan bagaimana untuk dilakukan atau dari mana untuk mendapatkan sesuatu, kami menerangkan semua ini dalam fail pom.xml ini. Ia terletak di akar projek. |
Kami melihat bahawa ia kini mengandungi betul-betul data yang kami masukkan semasa membuat projek Maven:
groupId ,
artifactId dan
versi (kami tidak menyentuh yang terakhir).
Struktur projek kami
Projek Maven ini mempunyai struktur tertentu.
Seperti yang dapat kita lihat, pada dasarnya terletak:
- direktori .idea , yang mengandungi tetapan idea untuk projek semasa;
- direktori src di mana kami mencipta sumber kami;
- my-super-project.iml file , fail projek yang dicipta oleh IDEA;
- pom.xml fail , fail projek Maven yang sama yang saya bincangkan di atas, yang kini kami buka. Jika saya menyebut pom.xml atau "pom" di suatu tempat, saya akan maksudkan fail khusus ini.
Folder
src pula mengandungi dua subfolder:
- utama - untuk kod kami;
- ujian - untuk ujian untuk kod kami.
Kedua-dua
utama dan
ujian mempunyai folder
java . Pertimbangkan bahawa ini adalah folder yang sama, hanya yang
utama adalah untuk kod sumber, dan yang dalam
ujian adalah untuk kod ujian, masing-masing. Kami tidak memerlukan folder
sumber sama sekali buat masa ini, kami tidak akan menggunakannya. Tetapi biarkan dia berbaring.
Berubah menjadi projek web
Sudah tiba masanya untuk kami menukar projek Maven kami kepada projek web. Untuk melakukan ini, klik kanan pada nama projek dalam pokok ini dan pilih
Tambah sokongan rangka kerja...
Tetingkap akan dibuka di mana kami boleh menambah sokongan untuk semua jenis rangka kerja yang berbeza untuk projek kami. Tetapi kami hanya memerlukan satu:
Aplikasi Web . Kita pilih dia.
Kami menyemak bahawa terdapat tanda semak di sebelah
Aplikasi Web , dan di bahagian utama tetingkap diperhatikan bahawa kami mahu fail
web.xml dibuat untuk kami dengan segera (saya cadangkan tandakan kotak jika tiada) . Selepas ini, kami akan melihat bahawa struktur projek kami telah ditambah dengan folder
web .
Ini adalah punca projek web kami di
/ . Iaitu, jika kita memasukkan alamat localhost dalam penyemak imbas (apabila kita melancarkannya, sudah tentu), maka ia akan diakses tepat di sini, ke akar projek web. Jika kita memasukkan
localhost/addUser , maka folder
web akan mencari sumber yang dipanggil
addUser .
Perkara utama ialah memahami bahawa folder web adalah punca projek kami apabila kami memuat naiknya ke Tomcat. Sekarang kita mempunyai struktur folder tertentu, tetapi dalam projek siap yang akan kita muat naik, ia akan sedikit berbeza, dan folder web akan menjadi akar di sana. |
Dalam
web terdapat folder yang diperlukan dipanggil
WEB-INF , di mana fail
web.xml terletak , yang kami minta untuk dibuat pada langkah sebelumnya. Jom bukak.
Seperti yang anda lihat, belum ada apa-apa yang menarik di dalamnya, hanya "topi". Ngomong-ngomong, jika kami tidak meminta untuk menciptanya, kami mungkin terpaksa menciptanya secara manual, iaitu, taip keseluruhan "pengepala" ini dengan tangan, atau, dalam kes yang melampau, cari versi siap sedia di Internet . Apakah
web.xml untuk ? Untuk pemetaan. Di sini kami akan memberitahu Tomcat URL mana yang diminta untuk dihantar ke servlet mana. Tetapi itu sahaja kemudian, buat masa ini kami akan membiarkannya kosong. Terdapat juga fail yang dipanggil
index.jsp dalam folder
web . Jom bukak.
Ini ialah fail yang akan dilaksanakan secara lalai, boleh dikatakan. Iaitu, apabila kita melancarkan projek, inilah yang kita akan lihat. Pada dasarnya,
jsp ialah fail html biasa, dengan perbezaan bahawa anda boleh melaksanakan kod java di dalamnya.
Sedikit tentang kandungan statik dan dinamik
Kandungan statik ialah kandungan yang tidak berubah dari semasa ke semasa. Semua yang kami tulis dalam fail html akan dipaparkan tanpa perubahan. Jika kita menulis hello world, maka inskripsi ini akan dipaparkan sebaik sahaja kita membuka halaman, dan dalam 5 minit, dan esok, dan dalam seminggu, dan dalam setahun. Dia tidak akan berubah. Tetapi bagaimana jika kita mahu memaparkan tarikh semasa pada halaman? Jika kita hanya menulis "27 Oktober 2017," maka esok kita akan melihat tarikh yang sama, dan dalam seminggu, dan dalam setahun. Tetapi saya mahu tarikh ini masih relevan. Di sinilah keupayaan untuk melaksanakan beberapa kod terus di dalam halaman membantu kami. Kita boleh mendapatkan objek tarikh, menukarnya kepada bentuk yang kita perlukan dan memaparkannya pada halaman. Kemudian setiap hari, setiap kali kita membuka halaman, tarikh itu akan sentiasa relevan. Jika kami hanya memerlukan kandungan statik, maka pelayan web biasa dan fail html sudah memadai untuk kami. Kami tidak memerlukan Java, Maven, atau Tomcat. Tetapi jika kita ingin menggunakan kandungan dinamik, di sinilah semua ini berguna. Tetapi buat masa ini mari kembali ke
index.jsp kami . Mari kita nyatakan sesuatu yang kita sendiri dan bukannya pengepala standard, contohnya, "Apl web super saya!", dan dalam badan kita akan menulis, contohnya, "Saya masih hidup!" Kami hampir bersedia untuk melancarkan projek kami! Tetapi, malangnya, segitiga hijau biasa untuk melancarkan program tidak aktif.
Mari klik pada butang di sebelah kirinya (ditunjukkan pada skrin dengan anak panah merah) dan pilih
Edit konfigurasi... Tetingkap akan dibuka di mana kita diminta untuk mengklik pada tanda tambah hijau untuk menambah beberapa jenis konfigurasi. Klik padanya, ia terletak di sudut kiri atas tetingkap.
Pilih item
Pelayan Tomcat dan
sub-item Setempat. Tetingkap akan dibuka dengan banyak parameter yang berbeza, tetapi kami berpuas hati dengan hampir semua perkara dan yang lalai.
Kami boleh menamakan konfigurasi kami dengan baik dan bukannya standard
Unnamed (di bahagian paling atas).
Ia juga perlu untuk menyemak sama ada idea itu berjaya menemui Tomcat dalam sistem kami (anda telah memuat turun dan memasangnya sebelum ini , bukan?). Jika anda tidak menemuinya (yang tidak mungkin), klik anak panah ke bawah dan pilih tempat kami memasangnya, atau versi lain jika anda mempunyai beberapa daripadanya. Saya mempunyai satu dan ia sudah dipasang, jadi semuanya kelihatan seperti pada tangkapan skrin. Dan di bahagian paling bawah tetingkap kita melihat bahawa terdapat amaran bahawa tidak ada satu artifak yang dimaksudkan untuk digunakan ke pelayan. Dan di sebelah kanan inskripsi ini terdapat butang yang menawarkan untuk membetulkan kecacatan ini. Kami mengklik padanya dan melihat bahawa idea itu sendiri menemui segala-galanya, mencipta segala-galanya sendiri, apa yang hilang, dan membuat semua tetapan itu sendiri.
Kami melihat bahawa kami telah dipindahkan dari tab
Pelayan ke tab Deployment , dalam bahagian
Deploy at the server startup kami sudah mempunyai artifak yang perlu digunakan, dan di bawahnya ditunjukkan bahawa artifak ini akan dibina sebelum penggunaan.
Mohon, Ok. Dan kami melihat bahawa pertama sekali, di bahagian bawah tetingkap telah muncul bahagian dengan pelayan Tomcat tempatan kami, di mana artifak kami akan diletakkan. Anda boleh meruntuhkan bahagian ini dengan mengklik pada butang yang sepadan di sebelah kanan tetingkap.
Kami juga melihat bahawa segitiga hijau untuk pelancaran sudah aktif. Bagi mereka yang ingin menyemak segala-galanya, anda boleh mengklik pada butang dengan tetapan projek (di sebelah kanan butang pelancaran, ditandakan dengan anak panah merah), pergi ke bahagian
Artifak dan pastikan artifak itu benar-benar telah dibuat. Ia tidak ada sehingga kami menekan butang
Betulkan itu , tetapi kini semuanya ok. Dan konfigurasi ini sangat sesuai dengan kami. Secara ringkasnya, perbezaan antara
my-super-project:war dan
my-super-project:war meletup ialah
my-super-project:war akan mencipta hanya satu fail
perang (yang hanya arkib), dan pilihan dengan
meletup hanyalah
perang yang "terbongkar" . Dan pilihan ini secara peribadi lebih mudah untuk saya, kerana ia membolehkan saya dengan cepat menggunakan perubahan kecil pada pelayan. Sebenarnya, artifak itu adalah projek kami, hanya telah disusun, dan di mana struktur folder telah diubah supaya ia boleh dimuat naik terus ke Tomcat. Ia akan kelihatan seperti ini:
Nah, kini semuanya bersedia untuk melancarkan projek kami.
Kami menekan butang mula hijau yang diidamkan dan nikmati hasilnya! :)
GO TO FULL VERSION