본문 바로가기
HTML

Servlet 실습 2 (html client에서 받은 데이터를 servlet 서버로 데이터를 날려준다. )

by aesup 2021. 3. 10.
728x90

index.html

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

<h1>Servlet</h1>

<form action="loc" method="get">
	<input type="text" name = "name">
	<input type="submit" value = "get">
	
</form>
<br><br>
<form action="loc" method="post">
	<input type="text" name = "name">
	<input type="submit" value = "post">
	
</form>


</body>
</html>

xml servlet 등록

servlet은 두개로 등록한다

hello, sample

아래 코드는 javaEE로 불러온다.(xml)자동 생성

 

서브릿이름명은 hello로 지정  클래스는 hello.HelloServlet   이기때문에 서버에서

자바 클래스 명령을 받아서 실행된다.

<?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>sample03</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>hello</servlet-name>
	<servlet-class>hello.HelloServlet</servlet-class>
</servlet>

<servlet-mapping>
	<servlet-name>hello</servlet-name>
	<url-pattern>/loc</url-pattern>
	<!-- 링크는 사용자 지정이다 -->
</servlet-mapping>



<servlet>
	<servlet-name>sample</servlet-name>
	<servlet-class>sam.SampleServlet</servlet-class>
</servlet>

<servlet-mapping>
	<servlet-name>sample</servlet-name>
	<url-pattern>/sample</url-pattern>
	<!-- 링크는 사용자 지정이다 -->
</servlet-mapping>


<!-- 자바를 등록하는곳 -->
</web-app>

 

 

hello.HelloServlet

 

hello

package hello;

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 HelloServlet extends HttpServlet{

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		//System.out.println("HelloServlet doGet");
		//http 주소에 값이 넘겨져서 나온다 파라미터가 보인다
		//get 공개를 해도되는 방식
		
		/*
		 		 servlet - > java(html)
		 		 JSP -> html(java)
		 */
		
		//html 에서 데이터를 받아보자
		String name = req.getParameter("name");
		System.out.println("name :" + name);
		
		//html code 데이터를 html로 날려준다
		
		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>HelloServlet</h3>");
			pw.println("<p>name:"+ name + "</p>");
			
		
		pw.println("</body>");
		
		
		
		pw.println("</html>");
		pw.close();
		
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		//System.out.println("HelloServlet doPost");
		//http 주소에 값이 뜨지 않는다(input한값) 파라미터가 안보인다
		//post 공개 안하는 방식 더 무겁다
	}

}

sam.SampleServlet

package sam;

import java.io.IOException;

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

public class SampleServlet extends HttpServlet {

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		System.out.println(" SampleServlet doGet");
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		System.out.println(" SampleServlet doPost");
	}

}

728x90