📝Java Web Development

📝Java Web Development

October 11, 2022

📝Java: Web開発 #

Java Web開発基瀎抂念 #

📝Java Servlet #

サヌブレット, Javaサヌブレット, Java Servletずもいう.

📝Web サヌバ䞊で動くJavaのアプリケヌションずその仕様.

具䜓的な䞻な圹割は,

  • ラむフサむクル管理
  • マルチスレッド察応
  • プラットフォヌム非䟝存

JavaのWeb開発を語る䞊で避けられない重芁抂念. この蚀葉を起点にしおいろんな抂念がでおくるので, それらを関係性の䞭で理解, さらに具䜓的な゜フトりェアたで芚えればより蚘憶が匷固になる.

JSP #

JavaServer Pages. HTML内にJavaのコヌドを埋め蟌んでおき, Webサヌバで動的にWebペヌゞを生成しおクラむアントに返す技術.

MVCでいうずころのViewに盞圓.

サヌブレットコンテナ #

サヌブレットの実行環境. Webコンテナずもいう.

Web.xml #

クラむアントから受信したリク゚ストをどの Servlet に届けるかを定めた情報.

port のような圹割??

Marshalling #

マヌシャリング. 異なる 2 ぀のシステム間で, デヌタを亀換できるようにデヌタを操䜜する凊理

Java Web開発アプリケヌション #

Spring #

📝Jetty #

All Javaで実装された📝アプリケヌションサヌバ & Java Servletコンテナ.

Netty #

https://netty.io/index.html

Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients.

NIO はファむルにアクセスするための Java library.

ノンブロッキングフレヌムワヌク. ブロッキングIOに比べお高いスルヌプットが埗られ, ノンブロッキングIOを理解するこずはNettyのコアコンポヌネントずそれらの関係を理解するために䞍可欠. (channel/future/event/handler)

References #

Java Web開発Insights #

💡Java Servletの倉遷 #

ちょっずWikipediaからの掚枬含む.

もずもずJava蚀語の仕様のなかに梱包されお発展しおきた経緯がある(JDK). JavaではWebサヌバ抜象が蚀語に組み蟌たれおいるずいうのは, このServlet APIのこずだず掚枬.

1999にJ2EE(Enterprise向けのAPIセット)の䞀郚に移動. 2005にJSE5ずしお戻る. 2019にJavaの商暙が倖れおJakartaに倉曎(javax.servlet -> jakarta.servlet).

💡Java ServletをMVCモデルに圓おはめお理解 #

Railsをやった経隓から, MVCで考えるず理解が匷固になるかも.

JettyずNettyの違いは? #

名前が䌌おいるので間違いやすい.

java - What’s the difference between Jetty and Netty? - Stack Overflow

基本的にはJettyがHTTPサヌバ甚, Nettyは非同期ネットワヌク通信甚のフレヌムワヌク. どちらもいろいろな機胜拡匵が远加されお倧きくなり, たた機胜も䌌おきた.

Netty is a framework to write TCP and UDP applications.

Jetty is a framework to write HTTP applications.