๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐ŸŒ  ์ž๋ฐ” ์„œ๋ฒ„ ํŽ˜์ด์ง€ JSP/๐ŸŒŒ ์›น \ ์„œ๋ธ”๋ฆฟ Web , Servlet

Web - Servlet ์‹ค์Šต 4 (form -> ์„œ๋ฒ„ -> html ์ถœ๋ ฅ)

by Meteora_ 2021. 3. 15.
728x90

HTML

index.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src = "https://code.jquery.com/jquery-3.5.1.min.js"></script>
</head>
<body>

 

  • method์˜ ๊ฐ’์œผ๋กœ๋Š” ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹ ( ex> get, post )
    • Get : http://IP์ฃผ์†Œ:port๋ฒˆํ˜ธ/์ปจํ…์ŠคํŠธ/path/MemberJoin?id="admin"&name="ํ™๊ธธ๋™" -> doGet() ํ˜ธ์ถœ [ ๊ฒฝ๋กœ๋…ธ์ถœ, ๋ณด์•ˆ ์œ„ํ—˜ ]
    • Post : http://IP์ฃผ์†Œ:port๋ฒˆํ˜ธ/์ปจํ…์ŠคํŠธ/path/MemberJoin -> doPost() ํ˜ธ์ถœ [header์— ์ •๋ณด๊ฐ€ ๋‹ด๊ฒจ์„œ ์„œ๋ฒ„์— ์ „์†ก]

 

<form action="data1" id = "frm"  method="post">
<table>
	<tr>
	<td>์ด๋ฆ„</td>
	<td><input type = "text" name = "name" id = "_name"> </td>
	
	</tr>

1.form ํƒœ๊ทธ action์œผ๋กœ ๋ณด๋‚ผ ์„œ๋ฒ„ ๋ช…์นญ์„ ์ง€์ •ํ•œ๋‹ค.

2.form  ํƒœ๊ทธ์•ˆ์—  method๋ฅผ ๊ธฐ์ž…ํ•ด ์š”์ฒญ์ฒ˜๋ฆฌ ๋ฐฉ์‹์„ ์ •ํ•œ๋‹ค.

<tr>
	<td>์—ฐ๋ น๋Œ€</td>
	<td>
	
		<select name = "age">
			<option value = "10~20">10๋Œ€~20๋Œ€</option>
			<option value = "20~30">20๋Œ€~30๋Œ€</option>
			<option value = "30~40">30๋Œ€~40๋Œ€</option>
			<option value = "40~50">40๋Œ€~50๋Œ€</option>
			
		</select>
	
	
	</td>
	
	</tr>
	
	<tr>
	<td>์„ฑ๋ณ„</td>
	<td>
	  <input type="radio" name = "uniS" value = "๋‚จ์ž"> ๋‚จ์ž
	  <input type="radio" name = "uniS" value = "์—ฌ์ž"> ์—ฌ์ž
	
	</td>
	
	</tr>
	
	<tr>
	<td>์ทจ๋ฏธ</td>
	<td>
	 <input type="checkbox" name = "favor" value = "ํ’‹์‚ด"> ํ’‹์‚ด<br>
	  <input type="checkbox" name = "favor" value = "๋กค"> ๋กค<br>
	  <input type="checkbox" name = "favor" value = "์นดํŽ˜ํˆฌ์–ด"> ์นดํŽ˜ํˆฌ์–ด
	 </td>
	
	</tr>

</table>

<button type="button" id = "btn">ํ™•์ธ</button>

</form>

<script type="text/javascript">
$(document).ready(function() {
	$("#btn").click(function () {
		//๊ฒ€์‚ฌ
		if($("#_name").val() == ""){
			alert('์ด๋ฆ„์„ ์ž…๋ ฅํ•ด ์ฃผ์‹ญ์‹œ์˜ค');
			return;
		};
		
		
		//alert('');
		$("#frm").attr("action","data1").submit();
		//$("#frm").submit();
	});
});

</script>

</body>
</html>
package way;

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(urlPatterns = "/data1")	//namespace xml์‚ฌ์šฉ์•ˆํ•˜๊ณ  ์†์‰ฌ์šด ๋ฐฉ๋ฒ•์ด์žˆ๋‹ค.
public class WayServlet1 extends HttpServlet{

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		//ํ•œ๊ธ€๊นจ์ง€๋ ค๋ฉด ์„ธํŒ…๊ผญ
				//ํฌ์ŠคํŠธ์—์„œ ํ• ๋ ค๋ฉด
				req.setCharacterEncoding("utf-8");
						
				
				
				String name = req.getParameter("name");
				String age = req.getParameter("age");
				String uniS = req.getParameter("uniS");
				String favor[] = req.getParameterValues("favor");
				
				resp.setContentType("text/html; charset=utf-8");
				
				PrintWriter pw = resp.getWriter();
				
				pw.println("<html>");
				pw.println("<head>");
					pw.println("<title>์ œ๋ชฉ</title>");
				pw.println("</head>");
				
				pw.println("<body>");
				
				pw.println("<p>์ด๋ฆ„:" + name + "</p>");
				pw.println("<p>์—ฐ๋ น๋Œ€:" + age + "</p>");
				
				
				
				
				pw.println("<p>์„ฑ๋ณ„:" + uniS + "</p>");
				
				String favor1="";
				
				if(favor != null) {
					for (int i = 0; i < favor.length; i++) {
						favor1 += favor[i] + "  ";
						
						
					}
					}
				
				pw.println("<p>์ทจ๋ฏธ:" + favor1 + "</p>");
				//๋ฐ์ดํ„ฐ ์ „์†ก ๊ตฌ๊ฐ„.
				//favor๋Š” ๋ฐฐ์—ด๋กœ ์ž‘์„ฑ.
				pw.println("<a href='data2?name=" +name +"&age=" + age +
						"&uniS=" + uniS + "&favor=" + favor1+"'>๋ฐ์ดํ„ฐ์ „์†ก</a>");
				/*
				//favor๊ฐ’ ๋ฐ›๊ธฐ์œ„ํ•ด for๋ฌธ ์ž‘์„ฑ.
				if(favor != null) {
				for (int i = 0; i < favor.length; i++) {
					
					pw.println(favor[i]);
				}
				}
				// aํƒœ๊ทธ ๋‹ซ์•„์ฃผ๊ธฐ
				pw.println("'>๋ฐ์ดํ„ฐ์ „์†ก</a>");
				*/
				//sample์— name, sage๋ณ€์ˆ˜๋ฅผ ๊ฐ€์ ธ๊ฐ„๋‹ค.
				pw.println("</body>");
				
				
				
				pw.println("</html>");
				pw.close();
				
	}
	
}
package way2;

import java.io.IOException;

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

import dto.searchDto;


@WebServlet(urlPatterns = "/data2")
public class WayServlet2 extends HttpServlet {

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		// TODO Auto-generated method stub
				//System.out.println("SampleServlet doGet");
				//java
				//๋‹ค์‹œ๋ฐ›์Œ
				String name = req.getParameter("name");
				String age = req.getParameter("age");
				String uniS = req.getParameter("uniS");
				String favor = req.getParameter("favor");
				
				System.out.println(name);
				System.out.println(age);
				System.out.println(uniS);
				
				
		/*
		 * System.out.println(name); System.out.println(age); System.out.println(uniS);
		 * System.out.println(favor);
		 */
				
				//java
				//resp.sendRedirect("world?name" + name + "&age=" +age);
				searchDto dto = new searchDto(name, age, uniS, favor);
				//์ƒ์„ฑํ•œ Dto ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ์— ๋ฐ›์•„์˜จ ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ๋Š”๋‹ค.
				
				req.setAttribute("result", dto); //dto๋ฅผ mem๊ฐ์ฒด๋กœ ์ €์žฅํ•ด์„œ ์ง์„์‹ผ๋‹ค.
				
				
				//forward ์ „์ง„
				req.getRequestDispatcher("data3").forward(req,resp);//์ง์„ ๊ฐ€์ง€๊ณ ์ด๋™
				
				//getRequestDispatcher : ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ „์†กํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ทธ๋Œ€๋กœ ์˜ฎ๊ธด๋‹ค.
				//sendRedirect: ์ƒˆ๋กœ์šด ํŽ˜์ด์ง€๋กœ ์ด๋™(๊ธฐ์กด ๋ฐ์ดํ„ฐ ์ „์†ก ๋ถˆ๊ฐ€)
				
				//word๋กœ ๊ฐ€๋ผ ๋Œ€์‹  ์ง์„ ๊ฐ€์ง€๊ณ  ์ด๋™ํ•ด๋ผ
				//resp.sendRedirect("world"); ๊ทธ๋ƒฅ ๊ฒฝ๋กœ์ด๋™
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		
	}

}
package way3;

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;


import dto.searchDto;
@WebServlet(urlPatterns = "/data3")
public class WayServlet3 extends HttpServlet {

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		
		
		
		
		resp.setContentType("text/html; charset=utf-8");
		
		PrintWriter pw = resp.getWriter();
		
		pw.println("<html>");
		pw.println("<head>");
			pw.println("<title>์ œ๋ชฉ</title>");
		pw.println("</head>");
		
		pw.println("<body>");
		pw.println("<h3>data3 Servlet</h3>");
		
		searchDto result = (searchDto)req.getAttribute("result");
		//์ €์žฅํ•œ mem ๊ฐ์ฒด๋ฅผ ์ง์‹ผ๊ฑธ ํ’€์–ด์˜จ๋‹ค.
		
		pw.println("<p>์ด๋ฆ„:" + result.getName() + "</p>");
		pw.println("<p>์—ฐ๋ น๋Œ€:" + result.getAge() + "</p>");
		pw.println("<p>์„ฑ๋ณ„:" + result.getUniS() + "</p>");
		pw.println("<p>์ทจ๋ฏธ:" + result.getFavor() + "</p>");
		
		
		
		
		/*
		 * pw.println("<h3>World Servlet</h3>");
		 * 
		 * 
		 * String name = req.getParameter("name"); String age = req.getParameter("age");
		 * 
		 * 
		 * pw.println("<p>name:" + name + "</p>");
		 * pw.println("age : <input type = 'text	' value = " + age +"><br>");
		 */
		pw.println("</body>");
		
		
		
		pw.println("</html>");
		pw.close();
		
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		
	}
	
}
package dto;

import java.io.Serializable;
import java.util.Arrays;

public class searchDto implements Serializable {
	//Serializable์ง๋ ฌํ™”๋‹ค
	private String name;
	private String age;
	private String uniS;
	private String favor;
	
	public searchDto() {
		
	}

	public searchDto(String name, String age, String uniS, String favor) {
		super();
		this.name = name;
		this.age = age;
		this.uniS = uniS;
		this.favor = favor;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getAge() {
		return age;
	}

	public void setAge(String age) {
		this.age = age;
	}

	public String getUniS() {
		return uniS;
	}

	public void setUniS(String uniS) {
		this.uniS = uniS;
	}

	public String getFavor() {
		return favor;
	}

	public void setFavor(String favor) {
		this.favor = favor;
	}

	@Override
	public String toString() {
		return "searchDto [name=" + name + ", age=" + age + ", uniS=" + uniS + ", favor=" + favor
				+ "]";
	}
	
	
}
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">
  <display-name>work</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  
  
  <!-- <servlet>
  <servlet-name>data1</servlet-name>
  <servlet-class>way.WayServlet1</servlet-class>
  </servlet>
  
  <servlet-mapping>
  <servlet-name>data1</servlet-name>
  <url-pattern>/data1</url-pattern>
  </servlet-mapping>
  
  
    <servlet>
  <servlet-name>data2</servlet-name>
  <servlet-class>way2.WayServlet2</servlet-class>
  </servlet>
  
  <servlet-mapping>
  <servlet-name>data2</servlet-name>
  <url-pattern>/data2</url-pattern>
  </servlet-mapping>
  
  
   <servlet>
  <servlet-name>data3</servlet-name>
  <servlet-class>way3.WayServlet3</servlet-class>
  </servlet>
  
  <servlet-mapping>
  <servlet-name>data3</servlet-name>
  <url-pattern>/data3</url-pattern>
  </servlet-mapping> -->
  
  
</web-app>

๋Œ“๊ธ€