100일 챌린지/빅데이터기반 인공지능 융합 서비스 개발자

Day 17 - jsp로 웹페이지 만들기 vagrant로 배포하기

ksyke 2024. 8. 13. 13:09

목차

    메뉴 만들기

    <%@ 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>Insert title here</title>
    </head>
    <body>
        <table width="800" align="center">
            <tr>
                <td colspan="2">
                    <img alt="logo" src="C:/workspace/Day17/imgs/logo.jpg">
                </td>
                <td colspan="2">&nbsp;</td>
                <td colspan="2" align="right">
                    [<a href="#">login</a>]
                    [<a href="#">join</a>]
                </td>
            </tr>
            <tr>
                <td width="200" bgcolor="gray">&nbsp;</td>
                <td width="100" bgcolor="gray" align="center">[<a href="/Day17/index.jsp">Home</a>]</td>
                <td width="100" bgcolor="gray" align="center">[<a href="/Day17/intro.jsp">Intro</a>]</td>
                <td width="100" bgcolor="gray" align="center">[<a href="/Day17/bbs.jsp">B B S</a>]</td>
                <td width="100" bgcolor="gray" align="center">[<a href="/Day17/guest.jsp">Guest</a>]</td>
                <td width="200" bgcolor="gray">&nbsp;</td>
            </tr>
            <tr>
                <td colspan="6" align="center" height="400">
                <!-- content begin -->
    
                <!-- 이곳에 각 페이지에 해당하는 content를 넣는다. -->
    
                <!-- content end -->
                </td>
            </tr>
            <tr>
                <td>&nbsp;</td>
                <td colspan="4" bgcolor="gray" align="center">
                    <p>김해캠퍼스 (50834) 경남 김해시 인제로 197 TEL. 055-334-7111FAX. 055-334-0712 E-mail. webmaster@inje.ac.kr</p>
                    <p>부산캠퍼스 (47392) 부산광역시 부산진구 복지로 75(부산백병원 내) TEL. 051-890-6625 FAX. 051-895-1864</p>
                    <font color="white"><p>Copyright(c) 1996-2022 INJE University. All rights reserved.</p></font>
                </td>
                <td>&nbsp;</td>
            </tr>
        </table>
    </body>
    </html>

    Home

    <img alt="" src="https://www.inje.ac.kr/PDS/M_banner/20240624%EB%8B%A8%EC%B6%95%EA%B7%BC%EB%AC%B4%EC%8B%A4%EC%8B%9C%EC%95%88%EB%82%B4(1).jpg">
    <img alt="" src="https://www.inje.ac.kr/PDS/M_banner/20230912%EC%A2%8B%EC%9D%80%EC%82%AC%EC%9D%B43.jpg">

    게시판

    <%@ page import="java.util.List,java.util.Map" %>
    <h1>게시판</h1>
    <%
        Object obj = application.getAttribute("bbs");
        List<Map<String, String>> list = null;
        if(obj != null){
            list = (List<Map<String, String>>)obj;
        }
    %>
    <table width="500" align="center" border="1" cellspacing="0">
        <tr>
            <td>글번호</td>
            <td>제목</td>
        </tr>
    <%
        if(list != null){
            for(int i = 0; i < list.size(); i++){
                Map<String, String> map = list.get(i);%>
                <tr>
                    <td><%out.print(i+1);%></td>
                    <td>
                    <a href="detail.jsp?idx=<%out.print(i);%>">
                        <%out.print(map.get("sub"));%>
                    </a>
                    </td>
                </tr>
    <%        }
        }
    %>
    </table>
    
    <p>[<a href="/Day17/add.jsp">입력]</a></p>

    add

    <h1>새글 작성</h1>
    <form action="insert.jsp">
    <table width="500">
        <tr>
            <td width="100">제목</td>
            <td><input type="text" name="sub" size="60"></td>
        </tr>
        <tr>
            <td colspan="2">
                <textarea name="content" rows="10" cols="80"></textarea>
            </td>
        </tr>
        <tr>
            <td colspan="2" align="center">
                <input type="submit" value="입력">
                <input type="reset" value="취소">
            </td>
        </tr>
    </table>
    </form>

    insert

    <%@ page import="java.util.List,java.util.ArrayList" %>
    <%@ page import="java.util.Map,java.util.HashMap" %>
    <%
        List<Map<String, String>> list = null;
    
        Object obj = application.getAttribute("bbs");
        if(obj == null) list = new ArrayList<>();
    
        else list = (List<Map<String, String>>)obj;
    
        application.setAttribute("bbs", list);
    
        Map<String, String> map = new HashMap<>();
        String sub = request.getParameter("sub");
        String content = request.getParameter("content");
        map.put("sub", sub);
        map.put("content", content);
    
        list.add(map);
    %>
    <a href="bbs.jsp">목록으로 돌아가기</a>

    detail

    <h1>상세보기</h1>
    <%@ page import="java.util.List,java.util.Map" %>
    <%
        List<Map<String,String>> list;
        list=(List<Map<String,String>>)application.getAttribute("bbs");
    
        int idx=Integer.parseInt(request.getParameter("idx"));
        Map<String,String> map=list.get(idx);
    %>
    <table width="500" align="center">
        <tr>
            <td  bgcolor="#cccccc" width="100">제목</td>
            <td bgcolor="#cccccc"><%out.print(map.get("sub")); %></td>
        </tr>
        <tr>
            <td bgcolor="#cccccc" height="400" colspan="2"><%out.print(map.get("content")); %></td>
        </tr>
        <tr>
            <td colspan="2" align="center" bgcolor="gray">
                <a href="edit.jsp?idx=<%=idx%>">수정</a>
                <a href="del.jsp?idx=<%=idx%>">삭제</a>
            </td>
        </tr>
    </table>

    update

    <%@ page import="java.util.*" %>
    <%
        int idx = Integer.parseInt(request.getParameter("idx"));
        String sub = request.getParameter("sub");
        String content = request.getParameter("content");
    
        Map<String, String> map = new HashMap<>();
        map.put("sub", sub);
        map.put("content", content);
    
        List list = (List)application.getAttribute("bbs");
        list.set(idx, map);
    %>
    <a href="bbs.jsp">목록으로 이동</a>

    edit

    <%@ page import="java.util.*" %>
    <h1>글 수정</h1>
    <%
        int idx = Integer.parseInt(request.getParameter("idx"));
        List<Map<String, String>> list = (List)application.getAttribute("bbs");
        Map<String, String> map = list.get(idx);
    %>
    <form action="update.jsp">
    <input type="hidden" name="idx" value="<%=idx %>">
    <table width="500">
        <tr>
            <td width="100">제목</td>
            <td><input value="<%=map.get("sub") %>" type="text" name="sub" size="60"></td>
        </tr>
        <tr>
            <td colspan="2">
                <textarea name="content" rows="10" cols="80">
                <%=map.get("content")%>
                </textarea>
            </td>
        </tr>
        <tr>
            <td colspan="2" align="center">
                <input type="submit" value="수정">
                <input type="reset" value="취소">
            </td>
        </tr>
    </table>
    </form>

    del

    <%@ page import="java.util.*" %>
    <%
        int idx = Integer.parseInt(request.getParameter("idx"));
        List<Map<String, String>> list = (List)application.getAttribute("bbs");
        list.remove(idx);
    %>
    <a href="bbs.jsp">목록으로 이동</a>

    방명록

    <h1>방명록</h1>
    <form action="addGuest.jsp">
        <table width="500">
            <tr>
                <td width="120">글쓴이</td>
                <td><input type="text" name="id"></td>
                <td width="100" rowspan="2">
                    <input type="submit" style="width:100%; height:100%">
                </td>
            </tr>
            <tr>
                <td>남길글</td>
                <td><textarea name="content" rows="3" cols="40"></textarea></td>
            </tr>
        </table>
    </form>
    <%@ page import="java.util.List" %>
    <% 
        Object obj = application.getAttribute("guest");
    
        List<String[]> list = null;
        if(obj != null) list = (List)obj;
    %>
        <table width="500" border="1" cellspacing="0">
    <%
        if(list != null){
            for(int i = 0; i < list.size(); i++){%>
            <tr>
                <td width="80"><%=list.get(i)[0] %></td>
                <td><%=list.get(i)[1] %></td>
                <td width="100"><a href="delGuest.jsp?idx=<%=i %>">[삭제]
            </tr>
    <%    }
    }
    %>
        <tr>
    </table>

    addGuest

    <meta http-equiv="refresh" content="0; url=guest.jsp">
    <%@ page import="java.util.*" %>
    <%
        String id = request.getParameter("id");
        String content = request.getParameter("content");
    
        String[] row = new String[]{id, content};
    
        Object obj = application.getAttribute("guest");
        List<String[]> list = null;
    
        if(obj == null) list = new ArrayList<>();
        else list = (List)obj;
    
        list.add(row);
        application.setAttribute("guest", list);
    
    %>
    <h1>입력성공</h1>

    delGuest

    <meta http-equiv="refresh" content="0; url=guest.jsp">
    <%
            int idx = Integer.parseInt(request.getParameter("idx"));
            java.util.List list = (java.util.List)application.getAttribute("guest");
            list.remove(idx);
        %>

    vagrant로 배포하기

    https://portal.cloud.hashicorp.com/vagrant/discover?query=ubuntu&sort=created_at%20desc

    vagrant init bento/ubuntu-20.04
    vagrant up
    winget search ssh
    winget install putty.putty

    putty 사용하기

    java 다운받기
    sudo apt update
    sudo apt install openjdk-8-jdk-headless
    Tomcat 받기
    wget https://archive.apache.org/dist/tomcat/tomcat-8/v8.0.53/bin/apache-tomcat-8.0.53.tar.gz
    tar -zxvf apache-tom~.tar.gz
    파일 이름 바꾸기
    mv [바꿀 파일 이름] [새로운 이름]
    파일 지우기
    rm [지울 파일 이름]

    실행시키기

    cd tomcat8/bin
    ls
    //. startup.sh & // 백그라운드로 실행
    ./catalina.sh start
    접속 시도하기
    curl http://localhost:8080
    서버 deploy
    cd /tomcat8/webapps
    rm -f *
    rm -r *
    github의 코드 올리기
    git clone [github 주소] 
    mv lec2024/day17/ ./day17
    ls
    rm -r lec2024/
    apt search ant
    wget https://dlcdn.apache.org//ant/binaries/apache-ant-1.10.14-bin.tar.gz
    tar -zxvf apache-ant~.tar.gz
    mv apache-ant-1.10.14-bin ant
    cd ant
    echo $JAVA_HOME
    which javac
    ls -l [javac 주소]
    ls -l [결과 주소= /usr/lib/jvm/java-8-openjdk-amd64]
    pwd
    ls al
    nano .profile
    >> (제일밑에 추가) #USER ADD PATH
    >> JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
    >>ANT_HOME=~/ant
    >>PATH=$PATH:$JAVA_HOME/bin:$ANT_HOME/bin
    >>(ctrl+X)
    source .profile
    ant
    cd tomcat/wenapps/day17/
    mkdir /WebContent/WEB_INF/lib
    ant build
    mv /home/vagrant/tomcat8/webapps/day17/WebContent/WEB_INF/lib/build/ROOT.war ../
    mv Root.war day17.war
    파일 업로드 하기
    • 터미널
      (FTP 다운받기)
    winget WinSCP.WinSCP

    open PSFTP

    vagrant 끄기
    vagrant halt