30分でJava Webプラットフォヌム

この蚘事は初心者を察象ずしおいるため、経隓のある開発者はこれ以䞊読むこずはできたせんが、私のアドレスに建蚭的な批刀を残したり、゚ラヌを指摘したりしおいただければ幞いです。



この蚘事では、初心者開発者に、最小限の劎力で゚ントリヌレベルのWebプラットフォヌムを䜜成する方法を䌝えたいず思いたす。



この蚘事では、膚倧なテクノロゞヌスタックを所有しなくおも、実質的にれロから、リモヌトクラりドに独自の居心地の良い小さなリ゜ヌスを展開する方法を説明したす。 それはあなたの個人的なブログ、興味深いサヌビス、たたはあなたが長い間倢芋おきた単なるリ゜ヌスです。 友人に自分のリ゜ヌスぞのリンクを送信し、いく぀かの興味深い点に぀いお䞀緒に議論したり、単に笑ったりするよりもいいこずはありたす。



起業家や新興ビゞネスマン、たたは任意のサむトの所有者にずっお、ビゞネスの開始時に「クヌルな」りェブサむトに倚くのお金を投資する必芁はなく、オヌプンラむブラリを䜿甚し、料金を支払うだけで十分であるこずがわかりたす。仮想サヌバヌをレンタルしたす。



この蚘事では、シンプルな機胜を備えたシンプルなサむトを䜜成する方法を瀺したす。 むしろ、これは䞀般的な抂念を正確に瀺し、Google、Facebook、Vkontakteなどの有名なリ゜ヌスがどのように䜜成されおいるかを初心者の開発者が正確に理解するのに圹立぀蚘事です。



すべおのむンタヌネットサヌビスが同じ原則に基づいお䜜成されおいるこずを理解する必芁がありたす。詳现ず䞀郚の䞀意で特定の事柄の実装のみが異なりたすが、本質は同じです。



興味のある方ぞ



準備する



必芁なものを蚭定する



Webサヌビスの最も䞀般的な蚀語ずしお、Javaでサヌビスを蚘述したす。



Javaの最新バヌゞョンがコンピュヌタヌにむンストヌルされおいるこずを確認しおください。珟圚はバヌゞョン8です。 これは、 Javaをチェックするこずで確認できたす 。 97の堎合、これは事実ですが、そうでない堎合は、このサむトの指瀺に埓っお、環境をむンストヌルしお蚭定するこずで簡単に修正できたす。



それにもかかわらず、これが成功しなかった堎合、私たちはすぐにあなたに同意したす、あなたがこれらのサむトの問題を解決しようずしおいる最初のもの





それでも解決しない堎合は、この蚘事を閉じおください。トレヌニングのレベルを䞋げるための資料が必芁です。



䞀般に、プログラミングの秘密を教えたす。すべおがあなたのために1回から機胜しおいたした。これは、䜕かが機胜しないずいう1぀のこずだけを意味したす。 これは議論の䜙地のない事実です。 倚数の゚ラヌ、バヌゞョンの非互換性、ラむブラリ内のクラスの欠劂など-これは正垞です。



あなたの謙虚な僕自身は、むンタヌネットの隅々たで登り、しばらくの間珟実ずの接觊を倱い、粟神病院に数ヶ月暪たわりたしたが、3週間゚ラヌを過ごしたしたが、これに぀いおは語りたせん...これは別の蚘事の話です。



だから、Javaはそれだけの䟡倀がありたす-すべおがうたくいきたす。



次に、ツヌルが必芁です。 はい、アむデアが必芁です。 ここからJetBrainsをダりンロヌドしおむンストヌルしたす。



Ultimateバヌゞョンが必芁なこずに泚意しおください。 単玔なバヌゞョンでは、Webアプリケヌションの開発は蚱可されたせん。 30日間の無料詊甚期間がありたすが、これは問題にならないでしょう。



そのため、Javaには開発環境がありたす。



始めたしょう



アむデアを打ち出したす。



䞀床に倚くの蚘事などを読み盎し、この蚘事では最倧の画像ず芖芚的なコンポヌネントを陀倖するこずを決定したした。通垞は気を散らすだけで、バヌゞョンやモゞュヌルの順序などが異なる堎合がありたす。



倚くの堎合、SpringやHibernatehttps://spring.io/、hibernate.orgなどの興味深いこずに぀いお初心者からの質問がありたす。 96のケヌスでは、ただ必芁ではありたせん。適切な準備ずスキルの「問題解決」がなければ、非垞に長い間立ち埀生し、元に戻るのは非垞に困難です。



最初は母校です-これらは2぀の技術です





これらのこずに぀いお少なくずも䞀般的な考えを持っおいる必芁がありたす。そうでなければ、先ぞ進むこずはほずんど䞍可胜です。



「アプリケヌションサヌバヌ」。 これは䜕ですか そしお、これがアプリケヌションサヌバヌです。



したがっお、このサヌバヌが必芁です。Tomcatを䜿甚したす 。 必芁なものをダりンロヌドしたが、ごみをダりンロヌドした可胜性が高い堎合は、ダりンロヌドしお、アヌカむブの名前が「apache-tomcat-7.0.67.zip」であるかどうかを確認し、解凍したす。 開梱した堎所を忘れないでください。再び䟿利になりたす。



Webリ゜ヌスの抂念



䞀番䞋の行はサヌバヌです。 サヌバヌずは䜕ですか これは、システム内で「ルヌプ」し、ポヌトでリッスンするプログラムコヌドです。 これは別の議論のトピックです。 しかし、䞀般に、サヌバヌが䞀般的にできるこずに぀いお2぀のオプションを怜蚎したす。デヌタを䞎えるGETこずができたす-数字、ペヌゞ、たたは神が䜕を知っおいるかを返すだけです。 しかし、POSTもありたす。デヌタも返したすが、その前にクラむアントからも受け取りたす。



䜕も明確でない堎合は、 here.wikipedia.org/wiki/RESTをお読みください 。



蚘事が倧きくなり始めたす。 ここで、もっず簡単に曞いおみたす。



私のリポゞトリに行きたす 。 私たちは、バヌゞョン管理システムが䜕であるかを人がたったく理解しおいないず想定しおいるので、アマチュアに行くず、ボタンがありたす「ZIPをダりンロヌド」-ダりンロヌドしお解凍したす。



アむデアのりェルカムりィンドりに「プロゞェクトのむンポヌト」ボタンがありたす-クリックしたす。 ダりンロヌドしお解凍したプロゞェクトを遞択したす。



私たちは、プロゞェクトが開くたで、さらに抌し続けたす。



最初の困難



プロゞェクトは開いおいたすが、サヌバヌを起動せず、サむトを開くこずができたせん。 なんで なぜなら、このアむデアは䜕をすべきかわからないため、賢いのですが、そうではありたせん。



これを行う方法の説明は、数ペヌゞかかり、あなたに損害を䞎えたす。 最初の困難は最初の困難です。 これがあなたの「火の掗瀌」です。 プログラミング-オヌブンパむではありたせん。 䞊蚘のリンクが圹立ちたす。 これに1-2時間を費やすのは正垞です。 私は数日間座っおいたが、サヌバヌを正しく起動できなかった優秀な経隓豊富なプログラマヌを知っおいたす。 それは圌らを尊重したせん-しかし、事実-は事実です。 進む。 実行-読み取りに戻りたす。



tomcatを䜿甚しおいるこずを忘れないでください方法は䞊郚のリンクに答えがありたす。



ロヌカルサヌビステスト



次のようなものが埗られるはずです。







しかし、問題がありたす-それは動䜜したせん たあ、それは予想されるこずでした。 デヌタベヌスにテヌブルを䜜成しおいたせん。 プロゞェクトでは、 SQLiteデヌタベヌスを䜿甚したす



0でどうなるかを説明するのは簡単ではありたせん。 専門のリ゜ヌスでそれに぀いお読んでみおください。



www.codecademy.com Java、SQL、Git、JavaScript、その他の非垞に䟿利なサヌビスがありたすの良いサヌビスをアドバむスできたすので、お願いしたす。



その結果、テヌブルを䜜成する必芁がありたす。次のようにしたす。



cd Path/apache-tomcat-7.0.64/bin/ sqlite3 SimpleDatabse
      
      





 CREATE TABLE NAMES( ID INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, NAME TEXT NOT NULL );
      
      





テヌブルが䜜成されたす。 システムの動䜜を確認できたす。 いく぀かの名前を远加し、ベヌス自䜓からどのように返されるかを確認したす。



コヌド解析



コヌドにあるものを芋おみたしょう



Javaでは、すべおの構成がxmlファむルで蚘述されおいるため、䟋倖はありたせん。web.xmlファむルは、どのサヌブレットが䜕を担圓するかを制埡したす。 コヌドをよく芋お、リンクたたはサヌブレットの名前を倉曎しおみおください。



アプリケヌションは単玔なので、2぀のクラスSQLiteClassずMainServletのみがありたす。



明らかに、1぀目はデヌタベヌスの操䜜を担圓し、2぀目は悪名高いサヌブレットだず思いたす。



たた、䞊蚘のPOSTおよびGETリク゚ストは次のずおりです。これらの関数はハンドラであり、クラむアントからのリク゚ストに応じおサヌブレットの動䜜を蚭定したす。 䞀番䞋の行は、デヌタが来お、デヌタがなくなったこずです。 耇雑なこずは䜕もありたせん。 メ゜ッドをいじっおみおください。



 protected void doGet(HttpServletRequest request, HttpServletResponse response)
      
      





 protected void doPost(HttpServletRequest request, HttpServletResponse response)
      
      





JDBCを実装するクラスに枡したす。



 public static void addName(String name)
      
      





 public static ArrayList<String> getAllNames()
      
      





ここでもすべおが単玔で、同じSQLク゚リはJavaコヌドでのみラップされおいたす。 簡単なヒント-アドオンやフレヌムワヌクに泚意しおください。 数癟䞇のレコヌドず耇雑なトランザクション操䜜がある倧芏暡プロゞェクトでのみ有効です。 ただし、シリアル化などのこずなく手動でリク゚ストを䜜成する堎合にのみ、実際の制埡を取埗できたす特に最初はずっず簡単です。



すべおがサヌバヌ郚分で行われたす。 ここに座っお、特別な蚘事やマニュアルを読んでください。 ここには実際の緎習はありたせん。



クラむアント郚



そのため、ブラりザでクラむアントに䜕が起こっおいるのかを芋おみたしょう。 しかし、超自然的なものは䜕もありたせん。 しかし、盎接お䌝えしたすが、もちろんすべおはプロゞェクトに䟝存したすが、通垞、クラむアント偎はサヌバヌ偎よりも実装がはるかに困難です。 そしお、それは䞻にJavaScriptによるものです。 非垞に迅速に、クラむアントコヌドは䞀連の「シヌト」、パッチ、ハヌドコヌド、およびその他の楜しみに倉わりたす。 JavaScriptは過酷で無慈悲です。 それを曞くのはずおも難しいです。 したがっお、 jQueryを䜿甚したす。 他にも倚くのフレヌムワヌクやその他の䜜成物がありたすが、ここでは觊れたせん。 任意の単語に名前を付けるずいう栌蚀があり、これはJSフレヌムワヌクの名前になりたす。 モカのフレヌムワヌクは狭い範囲で知られおいたす。名前を思い぀いたずきにその人がどんな考えを思い぀いたのか想像できたせん。もちろん、そうです。



それで、私たちはクラむアントず䜕を埗たしたか



繰り返したすが、玠晎らしいリ゜ヌスwww.codecademy.comぞのリンクを提䟛したす。 そこのフロント゚ンドは非垞によく分解されおおり、初心者に必芁な基盀を提䟛したす。



ここでは関数のみを考慮したす



 function serverConnectFunc(serverUrl, jsonData) { $.ajax({ url: serverUrl + "/", type: 'POST', data: jsonData, dataType: 'json', async: true, success: function (event) { //do somehting }, error: function (xhr, status, error) { alert(error); } }); }
      
      





圌女は䜕をしおいるの そうです、同じPOST芁求を送信し、応答を解析したす。 簡単です。デヌタを提䟛し、サヌバヌから受信したした。 ロシア語では、サヌバヌに「デヌタベヌス内の党員の名前を教えお」たたは「この名前をデヌタベヌスに入れお」名前を付けたす。



これがクラむアント郚分党䜓です。



珟実䞖界にリ゜ヌスを送りたす



ご芧のずおり、私たちのサヌビスはロヌカルホスト䞊でスピンしおいたす。 蚀い換えれば、私たち自身のコンピュヌタヌで。 それを修正する時が来たした。



ここでは、このアクションの䞀般的な原則のみを説明したす。 これは䜕らかの方法でサヌバヌ䞊であなたからお金を必芁ずするので、特にプログラミングパスの最初の段階で誰もが実際にこれを行うこずはほずんどありたせん。 ただし、ここで䞀般的な抂念を理解する必芁がありたす。 誰かが決めた堎合-あなたはよくやった知っおいる、それはあなたが良い感芚を埗るこずができる可胜性がありたす。



そしお䌝統により、䞀床にいく぀かのリンク



nginx

珟実䞖界のTomcat

nginx config

Ssh



そこに曞かれおいるものを読み、プログラマヌずリモヌトサヌバヌがどのように盞互䜜甚するかの䞀般的な抂念を頭の䞭に圢䜜りたす。



サヌバヌ自䜓は、amazoneで賌入できたす。 広告は、自分で怜玢できるので、リンクは䞎えたせん。難しくありたせん。 無料の詊甚期間がありたす。 しかし 非垞に泚意しおください、あなたの謙虚な䜿甚人自身が、システム自䜓が暩力を買うこずができるので、所有者の知識なしで口座から䜕千ドルが匕き萜ずされるかずいう話を聞いた。 捕たっおはいけない、私自身は理解できないサヌビスのためにすでに数回支払いたした、すべおは英語です。 自分が䜕をしおいるのかわからない堎合は、うたくやらないでください。



手順は次のずおりです。



  1. クラりドをレンタルする
  2. SSH経由で接続する
  3. 必芁なパッケヌゞをむンストヌルし、システムを構成したす
  4. 戊争パッケヌゞを収集しおサヌバヌに展開する
  5. たくさんの間違いや問題を解決しおください。


ナニットに初めお可胜になったずき、私はすぐに蚀わなければなりたせん。 むンストヌル、実行、たたは䜜業を望たない䜕かが垞に存圚したす。 これは正垞です。 遅かれ早かれ、74.125.224.72のような矎しいip-shnikが䜜成され、サヌバヌがむンタヌネットで利甚可胜になりたす。 これを行うには数ヶ月かかりたしたが、もっず速くできたすか そうだず思いたす。 その埌、自分で矎しいドメむンを賌入し、友人や知人にリンクを䞎えるこずを忘れないでください。 すべおがうたくいった堎合-おめでずうございたす、あなたはプロになるための䞀歩に近づいおいたす。



念のため、これらのリンクをここに残したす。突然、誰かが停止し、蚘事の䞀番䞋に行くこずにしたした。



maven.apache.org

git-scm.com



おわりに



それで、ここでJavaずWeb開発に関する議論のクラむマックスに達したした。 難しいですか はい 面癜い はい 数十億のむンデックスを備えた怜玢゚ンゞン、数癟䞇のストリヌムチャンネルを備えたビデオサヌビスなど、すべお、たったくすべおのサヌビスがすべお同じ原理に基づいおいたす。 䞎える-デヌタを取埗したす。 この抂念を理解するず、任意のシステム、サヌビス、たたはプラットフォヌムを䜜成できたす。



芪愛なる読者の皆さんには、私はあなたを欺きたせん。 2週間か3週間でスヌパヌプロフェッショナルになり、コヌドを自由に曞くこずができるようになるこずはたずありたせん。 これは、埌の長い倜にしか孊べたせん。 荒野に登るほど、あなたはあたり知らないこずに気づくでしょう。 道路は前進するこずによっお圧倒されたす、先に進みたす。



進む。 行動する時です。 老いおいるデュロフずブリンは匕退するはずです、圌らの栄光の時はすでに過ぎたした、それは歎史本ずForbsリストを曎新する時です。 そしお、この蚘事は、Google、Facebookなどの巚倧䌁業を凌ぐ優れたプラットフォヌムを䞀床に䜜成する人が読むかもしれたせん。 最埌たで読んでくれおありがずう。



All Articles