IT/Programming / / 2023. 4. 19. 10:42

[JAVA, HTML] - Servlet(Anotation으로 호출)

반응형

**

@WebServlet("/PersonServlet")

//어노테이션으로 클래스 호출 -> web.xml을 수정할 필요가 없다.

 

1. servlet파일은 - javaResources - src 안에 반드시 생성해야함

2. 서블릿 파일 생성시 create web.xml을 만드시 체크

Create method stubs

- check init(), destroy()

 

System.out.println("doGet()..") 의 의미 :

//이후의 문자열을 html로 인식해라

response.setContentType("text/html;charset=UTF-8");

PrintWriter out = response.getWriter();//생성

out.println("<html>");

 

->주의 !! out.print하면 엔터가 인식이 안되어 html파일을 운영체제가 저장시킴

web.xml

/HelloServlet - 톰켓은 이 이름을 받음

- servlet-class : 등록된 클래스를 구동

- html번역 -> 아파치 -> 브라우저 출력

 

1. person 예제

1) 이름, 성별, 취미, 색깔, 과목의 정보를 제출하는 html파일

html파일 위치 : WebContent/Person/person.html

이름 : text

성별 : radio(남,여)

취미 : checkbox(독서,영화,음악,게임,쇼핑)

색깔 : select(빨강, 초록, 파랑, 보라, 하늘) - single type

과목 : select(JAVA,JSP,SPRING,JQUERY,SERVLET) - mulit type

제출,취소 버튼 추가

2) PersonServlet.java(servlet파일)에서 정보를 받아 정보출력

person.html에게서 이름, 성별, 취미, 색깔, 과목의 정보를 받아 정보출력

색깔에 맞춰서 페이지 배경색을 바꿔준다.

PersonServlet.java파일 위치 : Java Resources/src/com.person/PersonServlet.java

 

 

person.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form method="get" action="http://localhost:8080/7-Servlet/PersonServlet">
	<div style="border : 1px red solid;">
		<table border="1" cellspacing="" cellpadding="5">
			<tr>
				<td>이름</td>
				<td><input type="text" name="name"></td>
			</tr>
			<tr>
				<td>성별</td>
				<td>
					<input type="radio" name="gender" value="0" checked>남
					<input type="radio" name="gender" value="1" >여
				</td>
			</tr>
			<tr>
				<td>취미</td>
				<td>
					<input type="checkbox" name="hobby" value="독서">독서
					<input type="checkbox" name="hobby" value="영화">영화
					<input type="checkbox" name="hobby" value="음악">음악
					<input type="checkbox" name="hobby" value="게임">게임
					<input type="checkbox" name="hobby" value="쇼핑">쇼핑
				</td>
			</tr>
			<tr>
				<td>색깔</td>
				<td>
					<select name="color" style ="width : 100px;">
				   		<option value="red">빨 &nbsp;강
				   		<option value="green">초 &nbsp;록
				   		<option value="blue">파 &nbsp;랑
				   		<option value="magenta">보 &nbsp;라
				   		<option value="cyan">하 &nbsp;늘
				    </select></td>
			</tr>
			<tr>
				<td>과목</td>
				<td>
					<select name="subject" style ="width : 100px;" size="5" multiple>
				   		<option value="JAVA">JAVA
				   		<option value="JSP">JSP
				   		<option value="Spring">Spring
				   		<option value="jQuery">jQuery
				   		<option value="Servlet" selected>Servlet
				    </select>
				</td>
			</tr>
			
			<tr>
				<td colspan="2" align ="center">
					<input type="submit" value="SEND">
					<input type="reset" value="CENCEL">
				</td>
		</table>
	</div>
</form>
</body>
</html>
 

 

 

PersonServlet.java

package com.person;

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("/PersonServlet")
//어노테이션으로 클래스 호출
public class PersonServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
    public PersonServlet() {
        super();
    }
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	
			//1. 데이터
		String name = request.getParameter("name");
		String gender = request.getParameter("gender");
		String[] hobby = request.getParameterValues("hobby");
		String color = request.getParameter("color");
		String[] subject = request.getParameterValues("subject");
		
		//2.응답
		response.setContentType("text/html;charset=UTF-8");
		PrintWriter out = response.getWriter();
		out.println("<html>");
		out.println("<head>");
		out.println("<title>Servlet</title>");
		out.println("<style>");
		out.println("li {color : yellow;}");
		out.println("</style>");
		out.println("</head>");
		out.println("<body bgcolor =" + color + ">");
		out.println("<ul>");
		out.println("<li>이름 : " + name + "br");
		out.println("<li>성별 : ");
		if(gender.equals("0")) out.println("남자<br>");
		else out.println("여자<br>");
		
		out.println("<li>취미 : ");
		if(hobby != null){
			for(int i = 0 ; i < hobby.length ; i++){
				out.println(hobby[i] + " ");
			}
		}
		
		out.println("<li>색깔 : " + color + "<br>");
		out.println("<li>과목 : ");
		for(String data:subject){
			out.println(data + " ");
		}
		out.println("<br><br>");
		out.println("<a href = javascript:history.go(-1)>뒤로</a>");
		out.println("</ul>");
		out.println("</body>");
		out.println("</html>");
		
		
	}
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}
 

 

 

 

 


 

결과창

 

 

click SEND!

 

*눈이 부시다

 

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유