Webアプリケーション(Java)でHelloWorld

https://santakalog.com/2020/02/03/app-weblogic-tutorial/
https://qiita.com/kou_bacchus/items/0e44af758b78a86a7ca5

 

OS: CentOS7
前提: Oracle WebLogic Server 14c (14.1.1.0)インストール済


[1] MVC


-- 1. Weblogic サービス起動

すべてweblogicユーザで作業


cd /home/weblogic/Oracle/Middleware/Oracle_Home/user_projects/domains/base_domain

./startWebLogic.sh


-- 2. 管理コンソールにログイン
http://192.168.137.128:7001/console

 

-- 3. Servletのライブラリダウンロード

wget -O servlet-api.jar "https://ja.osdn.net/frs/g_redir.php?m=kent&f=bmfproject/lib/servlet-api.jar"

 

-- 4. コーディング

cd

mkdir -p 20220305/src/mypackage/{controllers,models}
mkdir -p 20220305/WebContent/WEB-INF/lib
mkdir -p 20220305/app01/WEB-INF/{classes/mypackage/{controllers,models},lib}

ls -lR 20220305


vim 20220305/src/mypackage/controllers/HelloWorldController.java

package mypackage.controllers;
import java.io.IOException;
import javax.servlet.*;
import javax.servlet.http.*;
import mypackage.models.HelloWorldModel;

public class HelloWorldController extends HttpServlet {
  private static final long serialVersionUID = 1L;
    public HelloWorldController() {
        super();
    }
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
       HelloWorldModel model = new HelloWorldModel();
       model.setMessage("Hello World !");
       request.setAttribute("model", model);
       getServletContext()
          .getRequestDispatcher("/HelloWorldView.jsp")
          .forward(request, response);
    }
}

vim 20220305/src/mypackage/models/HelloWorldModel.java

package mypackage.models;
public class HelloWorldModel {
    private String message = "";
    public void setMessage(String value){
        this.message = value;
    }
    public String getMessage(){
        return this.message;
    }
}

vim 20220305/WebContent/HelloWorldView.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>HelloWorld</title>
</head>
<body>
<font face="Meiryo UI" size="+4">${requestScope["model"].message }</font>
</body>
</html>


vim 20220305/WebContent/WEB-INF/web.xml

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
  <servlet>
    <servlet-name>helloworld</servlet-name>
    <servlet-class>mypackage.controllers.HelloWorldController</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>helloworld</servlet-name>
    <url-pattern>/hello</url-pattern>
  </servlet-mapping>
</web-app>

 

-- 5. ビルド

cp servlet-api.jar 20220305/WebContent/WEB-INF/lib

cp 20220305/WebContent/HelloWorldView.jsp             20220305/app01/
cp 20220305/WebContent/WEB-INF/web.xml                20220305/app01/WEB-INF/
cp 20220305/WebContent/WEB-INF/lib/servlet-api.jar    20220305/app01/WEB-INF/lib/

cd 20220305/src
javac mypackage/controllers/HelloWorldController.java -classpath .:../WebContent/WEB-INF/lib/servlet-api.jar -d ../app01/WEB-INF/classes

cd ../app01
jar cf ../app01.war .

ls -l ../


-- 6. デプロイ

デプロイメント→インストール
app01.war を選択
デフォルトの設定のまま「次」をクリック
「追加構成」のメニューまできたら「いいえ、後で構成を確認します。」を選択し、「終了」をクリック


http://192.168.137.128:7001/app01/hello

 

[2] サーブレットのみ


-- 1. Weblogic サービス起動

すべてweblogicユーザで作業


cd /home/weblogic/Oracle/Middleware/Oracle_Home/user_projects/domains/base_domain

./startWebLogic.sh


-- 2. 管理コンソールにログイン
http://192.168.137.128:7001/console

 

-- 3. Servletのライブラリダウンロード

wget -O servlet-api.jar "https://ja.osdn.net/frs/g_redir.php?m=kent&f=bmfproject/lib/servlet-api.jar"

 

-- 4. コーディング

cd


vim HelloWorldServlet.java

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class HelloWorldServlet extends HttpServlet {
 public void doGet (HttpServletRequest req, HttpServletResponse res)
   throws ServletException, IOException {
   PrintWriter out;
   res.setContentType("text/html; charset=UTF-8");
   out = res.getWriter();
   out.println("<html><body>");
   out.println("<h1>Hello World!</h1>");
   out.println("</body></html>");
 }
}

 

mkdir -p 20220306/app02/WEB-INF/{classes,lib}

 

vim 20220306/app02/WEB-INF/web.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
 <servlet>
  <servlet-name>helloworld</servlet-name>
  <servlet-class>HelloWorldServlet</servlet-class>
 </servlet>
 <servlet-mapping>
  <servlet-name>helloworld</servlet-name>
  <url-pattern>/hello/</url-pattern>
 </servlet-mapping>
</web-app>


vim 20220306/app02/WEB-INF/weblogic.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE weblogic-web-app
http://xmlns.oracle.com/weblogic/weblogic-web-app/1.0/weblogic-web-app.xsd>
<weblogic-web-app>
</weblogic-web-app>

 

-- 5. ビルド

cd

cp servlet-api.jar 20220306/app02/WEB-INF/lib/

javac HelloWorldServlet.java -classpath .:./20220306/app02/WEB-INF/lib/servlet-api.jar -d ./20220306/app02/WEB-INF/classes


cd 20220306/app02
jar cvf ../app02.war .

ls -l ../


-- 6. デプロイ

デプロイメント→インストール
app02.war を選択
デフォルトの設定のまま「次」をクリック
「追加構成」のメニューまできたら「いいえ、後で構成を確認します。」を選択し、「終了」をクリック


http://192.168.137.128:7001/app02/hello