본문 바로가기

IT&코딩/자바 프로젝트

자바 프로젝트 7일차 - Servlet 2 (mvcTest)

728x90
반응형

■ 소스파일

 

□ depqrt package

 

* DepartExpert.java

 

package depart;

import java.util.ArrayList;
import java.util.List;

public class DepartExpert {
	public List<String> getAdvice(String depart){
		List<String> list = new ArrayList<>();
		switch(depart) {
		case "c" :
			list.add("프로그램 기본인 C언어를 공부합니다.");
			list.add("프로그램 기초를 공부하며 메모리 구조를 익힐때 가장 좋은 언어입니다.");
			break;
		case "java" :
			list.add("객체지향 언어인 자바를 공부합니다.");
			list.add("객체지향 언어를 이용하여 객체지형적인 프로그램 방식을 공부합니다.");
			break;
		case "python" :
			list.add("가장 쉬운 언어인 파이썬을 공부합니다.");
			list.add("프로그램 배우기가 가장 쉬우며, 빅데이터와 AI등에 많이 사용되는 언어입니다.");
			break;
		default :
			list.add("아직 준비되지 못했습니다.");
		}
		return list;
	}
}

 

* DepartServlet.java

 

package depart;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class DepartServlet extends HttpServlet {

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		req.setCharacterEncoding("UTF-8");
		resp.setContentType("text/html; charset=UTF-8");
		
		String depart = req.getParameter("depart");
		
		DepartExpert de = new DepartExpert();
		List<String> list = de.getAdvice(depart);
		
		req.setAttribute("advice", list);
		RequestDispatcher view = req.getRequestDispatcher("/result.jsp");
		
		view.forward(req, resp);
		
		/*
		 * PrintWriter pw = resp.getWriter(); for(String str : list) { pw.println("<h3>"
		 * + str + "</h3>"); }
		 */
		
		// pw.println("<h2>넘어온 데이터 : " + depart + "</h2>");
	}
	
	
	
}

 


 

■ view 페이지

 

□ depart_choice.jsp

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!-- depart_choice.jsp -->
<html>
<head>
	<title>MVC 예제1</title>
</head>
<body>
	<h1 align="center">학과 선택 페이지</h1>
	<form name="f" action="depart.do" method="post">
		학과선택 :
		<select name="depart" size="1">
			<option value="c">C언어</option>
			<option value="java">JAVA언어</option>
			<option value="python">파이썬언어</option>
		</select>
		<input type="submit" value="전송">
	</form>
</body>
</html>

 

□ result.jsp

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" import="java.util.*"%>
<!-- result.jsp -->

<%
	List<String> list = (List)request.getAttribute("advice");
	out.println("<h2>result.jsp 페이지 입니다.</h2>");

	for(String str : list){
		out.println("<h3>" + str +"</h3>");
	}
%>

 

□ web.xml

 

<?xml version="1.0" encoding="UTF-8"?>
<web-app>
<servlet>
	<servlet-name>depart</servlet-name>
	<servlet-class>depart.DepartServlet</servlet-class>
</servlet>
<servlet-mapping>
	<servlet-name>depart</servlet-name>
	<url-pattern>/depart.do</url-pattern>
</servlet-mapping>
</web-app>
728x90
반응형