いくつかの可能性があります。
ソケット
マゾヒスト向けですが、追加のライブラリやコンテナなしでJVMで動作します。
final ServerSocket serverSocket = new ServerSocket(8080);
while(true) {
final Socket accept = serverSocket.accept();
final OutputStream outputStream = accept.getOutputStream();
final PrintWriter printWriter = new PrintWriter(outputStream);
printWriter.println("HTTP/1.1 200 OK");
printWriter.println();
printWriter.println("Hello, World!");
printWriter.close();
}
以下のすべてのソリューションには、 tomcatのようなサーブレットコンテナが必要であり、アプリケーションをwarファイルにパックするか、ディレクトリにデプロイする必要があります。
サーブレット
低レベルで作業していますが、便利な抽象化を使用しています。
@WebServlet(urlPatterns = "/*")
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.getWriter().println("Hello, World!");
}
}
JSP
jspは、HTMLマークアップとJavaコードを混在させることができるシンプルなテクノロジーです。phpに似ています。index.jsp
ファイル:
<HTML>
<BODY>
Hello, world!
</BODY>
</HTML>
Webフレームワーク
Javaで利用できるWebフレームワークはたくさんあります。ここで:spring-mvc:
@Controller
public class HelloController {
@RequestMapping("/*")
@ResponseBody
public String hello() {
return "Hello, World!";
}
}
ご覧のとおり、使用するライブラリ/フレームワークが多いほど、実際の作業は簡単になります。単純な「Hello、world!」アプリケーションの場合、多くの手順を実行する必要はありません。ただし、初期設定中に実行する手順が多いほど、将来のプログラミングモデルは簡単になります。