성장 기록 블로그🌴
!1012 JSP & Servlet 2일차! 본문
728x90
< JSP & Servlet 2일차 내용 >
◆ JSP & Servlet 기본
개념정리
- URL Pattern -
http://localhost:8081/Servlet/ex01?num=123
=> Servlet 부분은 프로젝트의 경로 : 프로젝트 파일명 (contextPath)
< URL Mapping >
=> url 매핑은 경로 자체는 마음대로 바꿀 순 없지만 이름 자체는 얼마든지 바꿀 수 있음!
# PrintWriter 객체
텍스트 출력 스트림에 출력해주는 객체
- response.getWriter() 메소드를 통해 생성!
- out.print() 메소드를 통해 출력!
- PrintWriter out = new PrintWriter();
# form 태그 <html문서에서 작성! >
데이터 전송 필수 3가지!
1. 데이터를 가지고 어디로 요청할지 : from태그의 action 속성
<form action="Ex04"> Data : <input type = "text" name="data"> <input type = "submit" value = "데이터전송" > <button>데이터전송</button> </form> |
2. 어떤 데이터를 가져가는 가 : input태그의 name 속성
Data : <input type = "text" name="data"> |
3. 언제 데이터(요청)를 보낼 것인가 : submin타입의 input 또는 button 둘 중 사용
<input type = "submit" value = "데이터전송" > <button>데이터전송</button> |
<button>데이터전송</button> |
< 전체 코드> - HTML코드
#1-1 Ex04DataSend.html
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<!-- h1: 제목 태그 -->
<h1>Data 보내기</h1>
<!-- form태그 : Server로 데이터를 보내주기 위한 태그 -->
<!--- 데이터 전송 필수 3가지!
- 1. 데이터를 가지고 어디로 요청할지 : from태그의 action 속성
- 2. 어떤 데이터를 가져가는 가 : input태그의 name 속성
- 3. 언제 데이터(요청)를 보낼 것인가 : submin타입의 input 또는 button
- Servlet으로 보낼 때는 URLMapping만 적어도 된다
=> action="http://localhost:8081/Servlet/Ex04" 이거 대신 action="Ex04"도가능
-->
<form action="Ex04">
Data : <input type = "text" name="data">
<!-- 둘 중 하나 사용하기! -->
<input type = "submit" value = "데이터전송" >
<button>데이터전송</button>
</form>
</body>
</html>
< 전체 코드> - Servlet코드
#1-2 Ex04DataSend.java
package com;
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;
/**
* Servlet implementation class Ex04DataSend
*/
@WebServlet("/Ex04")
public class Ex04DataSend extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#service(HttpServletRequest request, HttpServletResponse response)
*/
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//Form 태그 데이터 받아오기
// input 태그의 data 하나 : 파라미터
// data들이 request안에 들어있다.
// request.getParamenter();
String data = request.getParameter("data");
System.out.println(data);
// PrintWriter 객체 : Servlet이 HTML문서를 응답할 때
// HTML 문서 안에다가 태그 및 글자를 작성할 수 있는 객체
PrintWriter out = response.getWriter();
out.print("<h1>" + data + "</h1>");
}
}
# Servlet & html 응용 실습 예제 - 두 수의 데이터를 전송받아 0+0 = 00꼴로 합 출력하기!
#2-1 Ex05DataSend.html
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<!-- html에서 숫자 2개를 입력받아 servlet에서 oo + oo = oo 꼴 출력하기 -->
<form action="Ex05">
<p>
<input type = "text" name="data1"> +
<input type = "text" name="data2">
<button>확인</button>
</p>
<!-- input 정수 타입으로 받는 버전!
<input type = "number name="num1">
<input type = "number name="num2">
-->
</form>
</body>
</html>
#2-2 Ex05DataSend.java
package com;
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;
/**
* Servlet implementation class Ex05plus
*/
@WebServlet("/Ex05")
public class Ex05plus extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#service(HttpServletRequest request, HttpServletResponse response)
*/
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
String data1 = request.getParameter("data1");
String data2= request.getParameter("data2");
int a = Integer.parseInt(data1);
int b = Integer.parseInt(data2);
int result = a+b;
System.out.println(data1 + "+" + data2 + "=" + result);
// PrintWriter 객체 : Servlet이 HTML문서를 응답할 때
// HTML 문서 안에다가 태그 및 글자를 작성할 수 있는 객체
PrintWriter out = response.getWriter();
out.print("<h1>" + data1 + "+" + data2 + "=" + result + "</h1>");
/* input 정수 타입으로 받는 버전!
int a = Integer.parseInt(request.getParameter("num1") );
int b = Integer.parseInt(request.getParameter("num2") );
int result = a+b
뒤는 동일
*/
}
}
# 테이블 태그에 값 차례대로 집어넣기!
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<form action="Ex06">
<input type = "text" name="num1">
<input type = "text" name="num2">
<input type = "text" name="num3">
<input type = "text" name="num4">
<input type = "text" name="num5">
<input type = "text" name="num6">
<button>확인</button>
</form>
</body>
</html>
# 테이블 값 대입
package com;
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;
/**
* Servlet implementation class Ex06table
*/
@WebServlet("/Ex06")
public class Ex06table extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#service(HttpServletRequest request, HttpServletResponse response)
*/
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
int a = Integer.parseInt(request.getParameter("num1"));
int b = Integer.parseInt(request.getParameter("num2"));
int c = Integer.parseInt(request.getParameter("num3"));
int d = Integer.parseInt(request.getParameter("num4"));
int e = Integer.parseInt(request.getParameter("num5"));
int f = Integer.parseInt(request.getParameter("num6"));
// PrintWriter 객체 : Servlet이 HTML문서를 응답할 때
// HTML 문서 안에다가 태그 및 글자를 작성할 수 있는 객체
PrintWriter out = response.getWriter();
out.print("<table border = '1'>"
+ "<tr>"
+ "<td>" + a + "</td>"
+ "<td>" + b + "</td>"
+ "<td>" + c + "</td>"
+ "<td>" + d + "</td>"
+ "<td>" + e + "</td>"
+ "<td>" + f + "</td>"
+ "</tr>"
+ "</table>"
);
}
}
< 한번 입력으로 데이터 출력하기!>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<form action="Ex06">
<input type = "text" name="num1">
<button>확인</button>
</form>
</body>
</html>
package com;
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;
/**
* Servlet implementation class Ex06table
*/
@WebServlet("/Ex06")
public class Ex06table extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#service(HttpServletRequest request, HttpServletResponse response)
*/
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
int a = Integer.parseInt(request.getParameter("num1"));
PrintWriter out = response.getWriter();
out.print("<table border = '1'>");
out.print("<tr>");
for(int i=1;i<=a;i++)
{
out.print("<td>" + i + "</td>");
}
out.print("</tr");
out.print("</table>");
}
}
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<!-- 구구단 수 입력하기! -->
<form action="Ex07">
출력을 원하는 구구단 수를 입력하세요 <input type = "text" name="num1">
<button>send</button>
</form>
</body>
</html>
package com;
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;
/**
* Servlet implementation class Ex07mul
*/
@WebServlet("/Ex07")
public class Ex07mul extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#service(HttpServletRequest request, HttpServletResponse response)
*/
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
int a = Integer.parseInt(request.getParameter("num1"));
PrintWriter out = response.getWriter();
out.print("<table border = '1'>");
for(int i=1;i<=9;i++)
{
out.print("<tr>");
out.print("<td>");
for(int j=1;j<=i;j++)
{
out.print( a + "*" + i + "= " + (i*j) );
out.print("<br>");
}
out.print("</td>");
out.print("</tr>");
}
out.print("</table>");
}
}
< 구구단 예제 02 > - 원하는 단 두개를 입력해서 처음 단부터 끝 단까지 단을 출력하고 원하는 색으로 표까지 색칠!
< Ex08makemul.html>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<form action="Ex08">
색상선택<input type = "color" name = "color"><br>
<input type = "text" name="num1">에서
<input type = "text" name="num2">까지의 구구단을 출력
<input type = "submit" value = "출력하기">
</form>
</body>
</html>
< Ex08makemul.java>
package com;
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;
/**
* Servlet implementation class Ex08makemul
*/
@WebServlet("/Ex08")
public class Ex08makemul extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#service(HttpServletRequest request, HttpServletResponse response)
*/
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
// 파라미터 수집 : 각각의 파라미터(보내진 데이터)를 가져와서 변수에 담는 과정
String color = request.getParameter("color");
int a = Integer.parseInt(request.getParameter("num1"));
int b = Integer.parseInt(request.getParameter("num2"));
// 받아온 데이터를 기반으로 응답 작성
PrintWriter out = response.getWriter();
out.print("<table border = '1' bgcolor = "+color+" >");
for(int i=a;i<=b;i++)
{
out.print("<tr>");
for(int j=1;j<=9;j++)
{
out.print("<td>");
out.print( i + "*" + j + "= " + (i*j) );
out.print("</td>");
}
out.print("</tr>");
}
out.print("</table>");
}
}
728x90
'AI & BigData 교육과정 > JavaScript 관련' 카테고리의 다른 글
#1014 jsp&servlet 뿌시기! ( bootstrap 사이트 링크 , 쿠키 생성 , 쿠키 삭제 , 쿠키 값 get , bootstrap 활용해서 이미지 체크박스 페이지 구성하기! , 기본 상품 페이지 구성하기) (2) | 2022.10.14 |
---|---|
!1014 JSP&Servlet 뿌시기! ( 로그인 페이지 , 아이디 비밀번호 받아오기 ) (0) | 2022.10.14 |
!1014 JSP&Servlet 뿌시기! ( 랜덤 당첨 결과 , 랜덤으로 점심 메뉴 고르기 , (네이버, 구글, 다음) 사이트로 바로 이동! ) (0) | 2022.10.14 |
! 1011 JSP&Servlet 1일차! (0) | 2022.10.11 |
! 1008 자바 스크립트 뿌시기 3일차! ( 배열 , 함수 , 객체 ) (0) | 2022.10.08 |