쌍용교육센터 - 44일

개발자가 되고 싶어요 ㅣ 2024. 4. 19. 19:15

2024.04.19

웹어플리케이션 기초

웹어플리케이션의 구성

요청 처리 방식

여러 요청이 동일한 프로그램을 호출할 때 요청량만큼 프로세서를 생성해서 처리하기 때문에 대량 트래픽 발생시 부하 발생

 

Servlet/JSP 사용시 처리 방식

여러 요청이 동일한 프로그램을 호출할 때 요청을 어플리케이션 서버내의 컨테이너가 각 요청에 따라 스레드를 생성해 하나의 프로그램을 동작시키는 방식으로 대량의 트래픽 발생해도 CGI 방식에 비해 부하가 덜 발생함

 

Servlet 과 JSP

  • Servlet
    • 자바를 기반으로 하는 웹 개발 표준 언어
    • 실행 코드 방식
  • JSP
    • 자바 기반 스크립트 언어
    • 웹 어플리케이션에서 결과 화면을 생성할 때 주로 사용

웹 컨테이너

웹어플리케이션을 실행할 수 있는 컨테이너

 

Servlet 실습

boardForm.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>게시판 글쓰기</title>
</head>
<body>
<form action="/ch03_JSP/board" method="post">
	이름 <input type="text" name="name"><br>
	제목 <input type="text" name="title"><br>
	내용 <textarea rows="5" cols="50" name="content"></textarea>
	<br>
	<input type="submit" value="전송">
</form>
</body>
</html>

boardServlet.java

package kr.web.ch03;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/score")
public class ScoreServlet extends HttpServlet{
	@Override
	public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException,ServletException {
		//성적 처리
		//국어, 영어, 수학, 총점, 평균, 등급 출력
		
		//문서 타입 및 캐릭터셋 지정
		response.setContentType("text/html;charset=utf-8");
				
		//Post방식으로 데이터 전송시 전송된 데이터 인코딩 타입 지정
		request.setCharacterEncoding("utf-8");
		
		
		PrintWriter out = response.getWriter();
		
		out.println("<html>");
		out.println("<head><title>성적</title></head>");
		
		int korean = Integer.parseInt(request.getParameter("korean"));
		int english = Integer.parseInt(request.getParameter("english"));
		int math = Integer.parseInt(request.getParameter("math"));
		out.println("국어: " + korean + "점<br>");
		out.println("영어: " + english + "점<br>");
		out.println("수학: " + math + "점<br>");
		
		int sum = sum(korean,english,math);
		out.println("총점: " + sum + "점<br>");
		float avg = avg(sum);
		out.println("평균: " + avg(sum) + "점");
		
		out.println("등급: " + grade(avg));
		
		
		out.println("</html>");
		
	}
	
	static int sum(int korean, int english, int math) {
		return korean+english+math;
	}
	static float avg(int sum) {
		return sum/3;
	}
	static String grade(float avg) {
		switch((int)avg/10) {
		case 10:
		case 9: return "A";
		case 8: return "B";
		case 7: return "C";
		case 6: return "D";
		default:
			return "F";
		}
	}
}

'IT 국비 교육' 카테고리의 다른 글

쌍용교육센터 - 46일  (0) 2024.04.23
쌍용교육센터 - 45일  (0) 2024.04.22
쌍용교육센터 - 43일  (1) 2024.04.18
쌍용교육센터 - 42일  (0) 2024.04.17
쌍용교육센터 - 41일  (0) 2024.04.16