728x90

Servlet이란?

웹 서비스를 위한 자바 클래스

javax.servlet.http.HttpServlet클래스를 extends를 통해 인터페이스 상속 받아 사용

 

web.xml : 설정, 매핑,연결

index.html : 화면단

java class : extends HttpServlet 기능단

체크박스, 텍스트박스 등 사용자 데이터 받는 html 페이지

 

 

java class

package tryto;

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

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

public class pracServlet1_get extends HttpServlet{
	
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

	
		System.out.println("요청 들어왔는지 확인");
		
		String name = req.getParameter("name");
		String gender = req.getParameter("gender");
		String age = req.getParameter("age");
		String city = req.getParameter("city");
		String height = req.getParameter("height"); 
		String[] foods = req.getParameterValues("food");
		

        System.out.println(name);		// a
        System.out.println(gender);		// 남자	
        System.out.println(age);		// 20대
        System.out.println(city);		//  서울
        System.out.println(height);		// 177
        for (String f : foods) {		// str[] 값 디버깅용 // 한식  <- 복수체크해도 한식 하나만 나온다. 이럴 때는 배열로 받아주자. getParameterValues() 사용 
        	System.out.println(f);
        }
        
        
        
        resp.setContentType("text/html; charset=UTF-8"); /// setContentType() : 내용에 대한 컨텐트 타입을 적어준다
		// text타입명시 /html 쓸거다 명시
		PrintWriter out = resp.getWriter();	// PrintWriter로 반환받음
		out.println("<html>");
		out.println("<head>");
		out.println("<title> 개인정보 출력화면 </title>");
		
		out.println("<style>");
		out.println("h2{color:red;}");
		out.println("span{font-weight: bold;}");
		out.println(".name{color:orange;}");
		out.println(".gender{color:yellow; background:black;}");
		out.println(".age{color:green;}");
		out.println(".city{color:blue;}");
		out.println(".height{color:navy;}");
		out.println(".food{color:purple;}");
		out.println("</style>");
		
		out.println("</head>");
		out.println("<body>");
		
		out.println("<h2>개인 취향 테스트 결과</h2>");
		out.println("<span class='name'>" + name + "</span>님은 ");
		out.printf("<span class='age'>%s</span>이시며, ", age);
		out.printf("<span class='city'>%s</span>에 사는", city);
		out.printf("키 <span class='height'>%s</span>cm인 ", height);
		out.printf("<span class='gender'>%s</span>입니다. ", gender);
		out.println("좋아하는 음식은 <span class='food'>");
		
		// 위에서 str arr로 받은 값을 화면에 출력
		for(int i = 0 ;  i < foods.length; i++) {
			if(i == 0) {
				out.printf("%s", foods[i]);
			}else {
				out.printf(", %s", foods[i]);
			}
		}
		
		
		
		out.println("</span>입니다.");
		out.println("</body>");
		
		
		out.println("</style>");
		out.println("</head>");
		out.println("</html>");

	
	}
	
}

 

 

html 페이지

 

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>pracServlet1_get.html</title>
</head>
<body>

	<form action="/0_Practice/pracServlet1_get.do" method="get">	<!-- method="post" 추가 -->
		<!-- .do는 개발자들끼리 한다 해본다의 의미 -->
		<ul style="list-style: none; line-height: 200%;">
			<li>이름: <input type="text" name="name" size="10"></li>
            <li>
		                성별 : 
		                남자 <input type="radio" name="gender" value="남자">
		                여자 <input type="radio" name="gender" value="여자">
            </li>
            <li>
               	나이 :
                10대 미만 <input type="radio" name="age" value="10대 미만">
                10대 <input type="radio" name="age" value="10대 ">
                20대 <input type="radio" name="age" value="20대 ">
                30대 <input type="radio" name="age" value="30대 ">
                40대 <input type="radio" name="age" value="40대 ">
                50대 <input type="radio" name="age" value="50대 ">
				</li>
			<li>
				사는 도시 :
				<select name="city">
					<option value="서울">서울</option>
					<option value="경기">경기</option>
					<option value="강원">강원</option>
					<option value="충북">충북</option>
					<option value="충남">충남</option>
					<option value="경북">경남</option>
					<option value="경남">경남</option>
					<option value="전북">전븍</option>
					<option value="전남">전남</option>
					<option value="제주">제주</option>
				</select>
			</li>
			<li>키 : <input type="range" name="height" min="140" max="200"></li>
			<li>
				좋아하는 음식(모두 고르세요) :
				한식<input type="checkbox" name="food" id="korea" value="한식">
				중식<input type="checkbox" name="food" id="china" value="중식">
				일식<input type="checkbox" name="food" id="japan" value="일식">
				양식<input type="checkbox" name="food" id="western" value="양식">
				분식<input type="checkbox" name="food" id="dduck" value="분식">
			</li>
			<li>
				<br>
				<input type="submit" id="btnok" value="확인">
				<input type="reset" value="취소">
			</li>
		</ul>
	</form>
	


</body>
</html>

 

 

728x90
반응형

+ Recent posts