1. Servlet
1-1. Servlet 디렉토리 생성
아파치 서버 만들기 참고하여 프로젝트 디렉토리 생성
c:\webroot
(1) [프로젝트 디렉토리] c:\webroot 하단에 WEB-INF 폴더 생성
(2) WEB-INF 디렉토리 하단에 classes, lib, src 폴더 생성
(3) [TOMCAT_HOME]\webapps\ROOT\web.xml 파일을 [프로젝트 디렉토리]\WEB-INF 폴더 내로 복사
[프로젝트 디렉토리] > WEB-INF
1-2. 클래스 생성 및 등록 (Annotation)
WEB-INF 폴더 내 web.xml 파일을 이용해서 서블릿 클래스를 등록하지 않고 자바 소스에 직접 url를 기술하는 방식
web.xml 파일 안의 web-app 옵션 중 metadata-complete를 반드시 false로 바꿔줘야 함
(1) web.xml 파일 수정
metadata-complete="true"
<!-- true를 false로 수정 -->
metadata-complete="false"
(2) src 폴더에 서블릿 소스를 생성
WEB-INF 폴더 > src 폴더 > 다음의 코드를 텍스트 파일로 HelloTest.java를 생성
- 코드
- “ 따옴표 주의
- 파일명과 public class [클래스 이름]이 같아야 함 (대소문자 구문)
import java.io.IOException; import java.io.PrintWriter; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.annotation.WebServlet; @WebServlet("/hellojava") public class HelloTest extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { resp.setContentType("text/html; charset=UTF-8"); PrintWriter out = resp.getWriter(); out.println("<HTML><HEAD><TITLE>HelloServlet</TITLE></HEAD>"); out.println("<BODY>"); out.println("<h>안녕하세요? 서블릿 테스트 예제입니다.</h2>"); out.println("<H2> Clinet IP: " + req.getRemoteAddr() + "</H2>"); out.println("<H2> Client Host : " + req.getRemoteHost() + "</H2>"); out.println("<H2> Request URI : " + req.getRequestURI() + "</H2>"); out.println("</BODY></HTML>"); } }
(3) 서블릿 소스 컴파일
cmd에서 src 폴더로 디렉토리 변경 후, javac –d ../classes [java 파일명] –encoding UTF-8 실행
javac –d ../classes HelloTest.java –encoding UTF-8
컴파일을 하고 나면 classes 폴더에 [java 파일명].class가 생성된 것을 볼 수 있다
1-3. 웹 접속하기
브라우저에서 http://127.0.0.1:8080/hellojava 접속하면 다음 화면을 볼 수 있다
2. MariaDB 조회하기
2-1. MariaDB 커넥터 라이브러리 추가하기
(1) JDBC 커넥터 다운로드
https://mariadb.com/downloads/connectors/
홈페이지에서 자바 버전에 맞는 jdbc connector를 다운로드한다
(2) lib 폴더에 jar 추가하기
다운로드한 파일을 [프로젝트 디렉토리] > WEB-INF > lib 폴더에 추가한다.
2-2. 소스 파일 추가하기
(1) src 폴더에 java 텍스트 파일 추가하기
텍스트 파일을 생성하고 확장자를 포함하여 MachineInfo.java으로 바꾼다. 파일을 열어서 코드를 추가한다.
코드 중 uri, userid, uwerpw, query는 필요에 맞게 수정해야 함
String uri ="jdbc:mariadb:/[서버 IP]:[방화벽 포트]/[DB 이름]";
String userid = "[유저명]";
String userpw = "[비밀번호]";
String query = "select machineName, managerName, temperature,power,runTime from tbl_machine";
- 코드
import java.io.IOException; import java.io.PrintWriter; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/machineinfo") public class MachineInfo extends HttpServlet{ private static final long serialVersionUID = 1L; public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { resp.setContentType("text/html; charset=UTF-8"); PrintWriter out = resp.getWriter(); String uri ="jdbc:mariadb://192.168.5.7:14321/MES_factory"; String userid = "smartUser"; String userpw = "1q2w3e4r"; String query = "select machineName, managerName, temperature,power,runTime from tbl_machine"; Connection con = null; Statement stmt = null; ResultSet rs = null; try{ Class.forName("org.mariadb.jdbc.Driver"); con = DriverManager.getConnection(uri,userid,userpw); stmt = con.createStatement(); rs = stmt.executeQuery(query); out.println("<!DOCTYPE HTML><HEAD><TITLE>JDBC Test</TITLE></HEAD>"); out.println("<BODY>"); out.print("<h1>서블릿 DB 연동 테스트</h1>"); out.println("<TABLE border=1><TR><TD>기계명</TD><TD>관리자</TD><TD>온도</TD><TD>전력사용량</TD><TD>운전시간</TD></TR>"); while(rs.next()) { out.println("<TR><TD>" + rs.getString("machineName") + "</TD>" + "<TD>" + rs.getString("managerName") +"</TD>" + "<TD>" + rs.getInt("temperature") + "</TD>" + "<TD>" + rs.getInt("power") + "</TD>" + "<TD>" + rs.getInt("runTime") + "</TD>"); } out.println("</TABLE></BODY>"); if(rs != null) { rs.close(); } if(stmt != null) { stmt.close(); } if(con != null) { con.close(); } }catch(Exception e) { e.printStackTrace(); } } //End of doGet }
- public clasee [클래스 이름]과 파일 이름은 동일해야 한다(대소문자 구분)
(2) 접속하기
http://127.0.0.1:8080/machineinfo 으로 접속하면 다음 화면을 볼 수 있다
1. Servlet
1-1. Servlet 디렉토리 생성
아파치 서버 만들기 참고하여 프로젝트 디렉토리 생성
c:\webroot
(1) [프로젝트 디렉토리] c:\webroot 하단에 WEB-INF 폴더 생성
(2) WEB-INF 디렉토리 하단에 classes, lib, src 폴더 생성
(3) [TOMCAT_HOME]\webapps\ROOT\web.xml 파일을 [프로젝트 디렉토리]\WEB-INF 폴더 내로 복사
[프로젝트 디렉토리] > WEB-INF
1-2. 클래스 생성 및 등록 (Annotation)
WEB-INF 폴더 내 web.xml 파일을 이용해서 서블릿 클래스를 등록하지 않고 자바 소스에 직접 url를 기술하는 방식
web.xml 파일 안의 web-app 옵션 중 metadata-complete를 반드시 false로 바꿔줘야 함
(1) web.xml 파일 수정
metadata-complete="true"
<!-- true를 false로 수정 -->
metadata-complete="false"
(2) src 폴더에 서블릿 소스를 생성
WEB-INF 폴더 > src 폴더 > 다음의 코드를 텍스트 파일로 HelloTest.java를 생성
- 코드
- “ 따옴표 주의
- 파일명과 public class [클래스 이름]이 같아야 함 (대소문자 구문)
import java.io.IOException; import java.io.PrintWriter; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.annotation.WebServlet; @WebServlet("/hellojava") public class HelloTest extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { resp.setContentType("text/html; charset=UTF-8"); PrintWriter out = resp.getWriter(); out.println("<HTML><HEAD><TITLE>HelloServlet</TITLE></HEAD>"); out.println("<BODY>"); out.println("<h>안녕하세요? 서블릿 테스트 예제입니다.</h2>"); out.println("<H2> Clinet IP: " + req.getRemoteAddr() + "</H2>"); out.println("<H2> Client Host : " + req.getRemoteHost() + "</H2>"); out.println("<H2> Request URI : " + req.getRequestURI() + "</H2>"); out.println("</BODY></HTML>"); } }
(3) 서블릿 소스 컴파일
cmd에서 src 폴더로 디렉토리 변경 후, javac –d ../classes [java 파일명] –encoding UTF-8 실행
javac –d ../classes HelloTest.java –encoding UTF-8
컴파일을 하고 나면 classes 폴더에 [java 파일명].class가 생성된 것을 볼 수 있다
1-3. 웹 접속하기
브라우저에서 http://127.0.0.1:8080/hellojava 접속하면 다음 화면을 볼 수 있다
2. MariaDB 조회하기
2-1. MariaDB 커넥터 라이브러리 추가하기
(1) JDBC 커넥터 다운로드
https://mariadb.com/downloads/connectors/
홈페이지에서 자바
버전에 맞는 jdbc connector를 다운로드한다
(2) lib 폴더에 jar 추가하기
다운로드한 파일을 [프로젝트 디렉토리] > WEB-INF > lib 폴더에 추가한다.
2-2. 소스 파일 추가하기
(1) src 폴더에 java 텍스트 파일 추가하기
텍스트 파일을 생성하고 확장자를 포함하여 MachineInfo.java으로 바꾼다. 파일을 열어서 코드를 추가한다.
코드 중 uri, userid, userpw, query는 필요에 맞게 수정해야 함
길어서 txt 파일로 대체
- public clasee [클래스 이름]과 파일 이름은 동일해야 한다(대소문자 구분)
(2) 접속하기
http://127.0.0.1:8080/machineinfo 으로 접속하면 다음 화면을 볼 수 있다
'JAVA > 웹서버' 카테고리의 다른 글
아파치-톰캣 연동하기 (0) | 2022.06.07 |
---|---|
아파치 톰캣 만들기 (0) | 2022.05.27 |
아파치 서버 만들기 (0) | 2022.05.27 |