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를 생성

  • 코드
    1. “ 따옴표 주의
    2. 파일명과 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를 생성

  • 코드
    1. “ 따옴표 주의
    2. 파일명과 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는 필요에 맞게 수정해야 함

MachineInfo.java.txt
0.00MB

길어서 txt 파일로 대체

  • public clasee [클래스 이름]과 파일 이름은 동일해야 한다(대소문자 구분)

(2) 접속하기

http://127.0.0.1:8080/machineinfo 으로 접속하면 다음 화면을 볼 수 있다

 

'JAVA > 웹서버' 카테고리의 다른 글

아파치-톰캣 연동하기  (0) 2022.06.07
아파치 톰캣 만들기  (0) 2022.05.27
아파치 서버 만들기  (0) 2022.05.27

+ Recent posts