250x250
Notice
Recent Posts
Recent Comments
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Tags more
Archives
Today
Total
관리 메뉴

개린이 개발노트

국비지원 JAVA(자바) 프로그래밍 (JSP,SERVLET,서블릿,스크립트릿,선언문) 본문

국비지원(국비교육) 웹 개발자 과정

국비지원 JAVA(자바) 프로그래밍 (JSP,SERVLET,서블릿,스크립트릿,선언문)

개린이9999 2023. 1. 18. 02:39
728x90

입력한 정보

이름~ 

아이디~ 나오게끔

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

	<form method="post" action="pw">
      아이디 : <input type="text" name="id"> <br>
      비밀번호 : <input type="password" name="pw"> <br>
      <input type="submit" value="로그인">
   </form>

</body>
</html>
package com.login.controller;

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 com.sun.xml.internal.bind.v2.runtime.Name;

import sun.print.PSPrinterJob.PluginPrinter;

@WebServlet("/pw") // html에 있는 action 이름 입력
public class Idpw extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    public Idpw() {
        super();
    }

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setCharacterEncoding("utf-8");
		response.setContentType("text/html; charset=utf-8");	
		
		 String id = request.getParameter("id");
		 String pw = request.getParameter("pw");
		 
		 PrintWriter out = response.getWriter();
		 
		 out.print("입력한 정보<br>");
		 out.print("아이디 : "+id+"<br>");
		 out.print("아이디 : "+pw+"<br>");
		 
		 out.close();
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");

		doGet(request, response);
		
	}

}

 

라디오 버튼

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
</head>
<body>
   <form method="get" action="radio">
      성별 : <input type="radio" name="gender" value="남자">남자 
      <input type="radio" name="gender" value="여자">여자
      <br>
      광고 수신 여부 : <input type="radio" name="ad" value="수신"> 수신
      <input type="radio" name="ad" value="수신"> 차단
      <br>
      자기소개 <br>
      <textarea name="content" rows="3" cols="35"></textarea>
      <br>
      <input type="submit" value="전송">
   </form>
</body>
</html>
package com.login.controller;

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 RadioServlet
 */
@WebServlet("/radio")
public class RadioServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    public RadioServlet() {
        super();
    }

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
			response.setContentType("text/html; charset=utf-8");
			
			String gender = request.getParameter("gender");
			String ad = request.getParameter("ad");
			String con = request.getParameter("content");
			
			PrintWriter out = response.getWriter();
			
			out.print("입력한 내용<br>");
			out.print("성별: "+ gender+"<br>" );
			out.print("광고수신여부: "+ ad+"<br>" );
			out.print("자기소개<br>" );
			out.print("<pre>"+con+ "</pre>"); //pre 태그로 줄바꿈 처리
			
			out.close();
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}

}

체크박스

 

향상된 for문

for( 해당배열의자료형 변수 (반복용->for문에서 i와 같은) : 반복시킬 배열)

-> 배열 크기만큼 알아서 반복 시킴 

-> 0번방부터 반복시킬 배열을 하나하나씩 반복용 변수에 넣어주는 방식으로 

 

ex) int[] arr= [1,5,10,15];

 

for(int a : arr) // 4번 반복함

 

첫번째 반복: a = arr[0]  a에 a 0번방 대입 후 코드처리

두번째 반복 a= arr[1] a에 1번방 대입 후 코드처리 

세번째 반복 a= arr[2] a에 2번방 대입 후 코드처리 

네번째 반복 a= arr[3] a에 3번방 대입 후 코드처리 

--반복종료--

if (lines==null) {
			out.print("선택된 라인이 없습니다.");
		} else {
			out.print("--선택한 라인--<br>");
			for(String line : lines) {
				out.print(line+"<br>");
			}
		}

회원가입 get 방식

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
</head>
<body>
	<form method="get" action="join">
		이름 <span style="color: red">*</span> <input type="text" name="name"><br>
		
		주민등록번호<span style="color: red">*</span> <input type="text" name="num">-<input
			type="text" name="num2"><br> 아이디<span style="color: red">*</span>
		<input type="text" name="id"><br> 비밀번호<span
			style="color: red">*</span> <input type="text" name="pw"><br>
		
		비밀번호 확인<span style="color: red">*</span> <input type="text"
			name="pwchk"><br> 이메일 <input type="text" name="email">
		@<input type="text" name="email_dn"> <select name="emailaddr">
			<option value="">직접입력</option>
			<option value="gamil.com">gamil.com</option>
			<option value="naver.com">naver.com</option>
			<option value="daum.net">daum.net</option>
		</select> <br> 우편번호 <input type="text" name="adnum"><br> 
		
		주소 <input
			type="text" name="adress"> <input type="text" name="adress2"><br>
		
		핸드폰번호 <input type="text" name="phnum"><br> 
		
		직업 <select name="job">
			<option value="학생">학생</option>
			<option value="직장인">직장인</option>
			<option value="자영업자">자영업자</option>
			<option value="프리랜서">프리랜서</option>
		</select> <br> 
		
		메일/SMS정보수신 <input type="radio" name="info" value="수신"> 수신
		 <input type="radio" name="info" value="수신거부">수신거부<br>
		
		관심분야 <input type="checkbox" name="lang" value="JAVA"> JAVA 
		<input type="checkbox" name="lang" value="HTML/CSS"> HTML/CSS 
		<input type="checkbox" name="lang" value="JAVA Script"> JAVA Script
		<input type="checkbox" name="lang" value="Servlet"> Servlet 
		<input type="checkbox" name="lang" value="JSP"> JSP  <br>
		<input type="submit" value="회원가입"> <input type="reset" value="취소">
	</form>

</body>
</html>
package com.login.controller;

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 JoinServlet
 */
@WebServlet("/join")
public class JoinServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    public JoinServlet() {
        super();
    }

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setCharacterEncoding("utf-8");
		response.setContentType("text/html; charset=utf-8");
		PrintWriter out = response.getWriter();

		 String name = request.getParameter("name");
		 out.print("이름 : "+name+"<br>");
		 
		 int num = Integer.parseInt(request.getParameter("num"));
		 int num2 = Integer.parseInt(request.getParameter("num2"));
		 out.print("주민번호 : "+num+"-"+num2+"<br>");
		 		
		 String id = request.getParameter("id");
		 out.print("아이디 :" + id + "<br>");
		 
		 String pw = request.getParameter("pw");
		 out.print("비밀번호 :" + pw +"<br>");
		 
		 String pwchk = request.getParameter("pwchk");
		 out.print("비밀번호확인 :" + pwchk +"<br>");
		 
		 String email= request.getParameter("email");
		
		 if (request.getParameter("email_dn")=="") {
			email += "@" + request.getParameter("emailaddr");
		} else {
			email += "@" + request.getParameter("email_dn");
		}
		 out.print("이메일: " + email + "<br>");
		 
		 String adnum = request.getParameter("adnum");
		 out.print("우편번호:"+adnum+ "<br>");
		 
		 String addr = request.getParameter("adress")+ " "+
				 		request.getParameter("adress2");
		 out.print("주소: " + addr + "<br>");
		 
		 String phone = request.getParameter("phnum");
		 out.print("핸드폰번호 : " +phone + "<br>");
		 
		 String job = request.getParameter("job");
		 out.print("직업: " +job +"<br>");
		 
		 String info = request.getParameter("info");
		 out.print("메일/sms 수신여부:"+ info + "<br>");
		 
		 String[] langs = request.getParameterValues("lang");
		 
		 if (langs==null) {
			 out.print("관심분야가 없습니다");
		} else {
			out.print("관심분야 : ");
			for (String itt : langs) {
				out.print(itt+ " ");
			}
		}
		 
		 out.close();
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}

}

Post 방식 

 

	<form method="post" action="join">
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		doGet(request, response);
	}

}

-> response가 아닌 request로 


JSP 쓰는이유 

 

java server page 

 

JSP로  작업한 파일을 -> 자바파일로 변환-> 컴파일 -> 클래스 

 

예제.jsp-> 예제02_jsp.java->예제_jsp.class

 

C:\Users\user\Desktop\JSP 공부\20220118\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\20230118\org\apache\jsp

 

여기로 들어가보면

 

위와 같이 설정되어있음.

 

서블릿은 자바안에 html 코드를 쓸 수 있고

 

jsp는  html 안에 자바코드를 쓸수 있음-> 자바로 변환

 

jsp는 클라이언트(사용자) 요청-> 서블릿 코드냐? -> 서블릿 아님-> 서블릿변환-> 컴파일->로드

클라이언트 응답-> 한번 요청된 jsp는 -> 로드-> 응답 

 

서블릿은 요청->컴파일->로드-> 응답 순 


jsp 기본설정

윈도우->프리퍼런시즈->제너럴->워크스페이스
Wep에서 css, html , jsp 전부 utf-8로 바꿈
제너럴->콘텐트 타입->text->utf-8->update 누르고

마지막으로 JSP UTF-8 누르고 UPDATE 까지 한다음 APPLY AND CLOSE

 


 JSP/서블릿 컨텍스트 패스(Context Path)

컨텍스트 패스를 숨기거나 바꾸는 방법

 

 

 

 

 


 

경로 안보이게 하는법 

톰캣에server.xml 선택한 후 find 에서 Context 를 찾고

위 와같이 /cp 설정되어있는 것을 

/ 하나로만 바꾸면

이런식으로cp가 사라져있다! 


JSP 태그 

<%   %> : 스크립트릿(scriptlet) - 자바 코드를 작성

  • JSP = HTML + JAVA
  • html작성된 위치에 코드가 만들어짐

 

<%!  %> : 선언문 - 자바 코드 작성

  • 변수, 메서드 생성시 여기에 저장됨
  • 선언문으로 작업한 코드는 클래스 바로 아래에 정의가 됨

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h3>여기 아래는 선언문 작성</h3>
	<%!
		String str = "hi";
		int a = 10;
		int b = 20;
		
		public int add(int x, int y) {
			return x+y;
		}
	%>
<h3>선언문 끝</h3>

<h3>스크립트릿 시작</h3>
<%
	out.print("<h5>" + str + "<h5>");
	out.print("두수의 합 : " + add(a,b));
%>
<h3>스크립트릿 끝</h3>
</body>
</html>
 
728x90