61일 차 - 서블릿(Servlet), get과 post 방식, [SQL]숫자 및 문자 함수(23.03.24)

yvonne·2023년 3월 24일
0

📂JSP

목록 보기
1/7
post-thumbnail

1. JSP (Java Server Page)

  • HTML 코드에 JAVA 코드를 넣어 동적 웹 페이지를 생성하는 웹어플리케이션 도구

📝Servlet 서블릿

  • 서블릿은 클라이언트 요청을 처리하고, 그 결과를 다시 클라이언트에게 전송하는 Servlet 클래스의 구현 규칙을 지킨 자바 프로그램

  • 톰캣 : 웹 서버 (WAS)

  • JSP 파일도 servlet 파일로 변환 가능



🔎 servlet 문서 작성하기

package edu.global.ex;

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;

/**
 * Servlet implementation class Hello
 */
@WebServlet("/Hello") // 웹 주소에 적용
public class HelloWorld extends HttpServlet {
	private static final long serialVersionUID = 1L;
      
    /**
     * @see HttpServlet#HttpServlet()
     */
    public HelloWorld() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		//response.getWriter().append("Served at: ").append(request.getContextPath());
		response.getWriter().append("<h1>HelloWorld<h1><br>"); // 웹에 출력
		response.getWriter().append("Girls, Be ambitious");
		System.out.println("메롱"); // 콘솔에 출력
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}
  • 결과





📝 web.xml

  • 웹 프로그램 실행 시 환경 설정 파일


🔎 Servlet Container

  • 구현되어 있는 Servlet 클래스의 규칙에 맞게 서블릿 객체를 생성, 초기화, 호출, 종료하는 생명 주기를 관리

  • 클라이언트의 요청을 받고 응답할 수 있도록 웹 서버와 소켓으로 통신

  • Tomcat 은 웹 애플리케이션(WAS) 중 하나로, Servlet Container 기능을 제공

    	* 참고: https://steady-coding.tistory.com/599

🔎 HTML Form 태그

  • formex.html파일
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
	<form action="FormEx" method="get">
	이름 : <input type="text" name="name" size="10"><br/>
	아이디 : <input type="text" name="id" size="10"><br/>
	<input type="submit" value="전송">
	<input type="reset" value="리셋"><br/>
	
	
	</form>
</body>
</html>
  • FormEx.java 파일
package edu.global.ex;

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;

/**
 * Servlet implementation class rsp
 */
@WebServlet("/FormEx") // formex.html파일의 action명과 같게 설정
public class FormEx extends HttpServlet {
	private static final long serialVersionUID = 1L;

	/**
	 * @see HttpServlet#HttpServlet()
	 */
	public FormEx() {
		super();
		// TODO Auto-generated constructor stub
	}

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) // ** request객체, response객체
			throws ServletException, IOException {
		System.out.println("doGet()..");
	
		String name = request.getParameter("name"); // ** formex.html의 name="name"을 받아오는 함수
		System.out.println(name);
		String id = request.getParameter("id"); // ** formex.html의 name="id"를 받아오는 함수
		System.out.println(id);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
	}

}
  • 결과
  • 콘솔

📌 servlet 파일의 get과 post의 한글 처리 방식

  • POST 방식 한글 처리
    서블릿 API에서 한글 코드 변환을 해주는 메소드를 제공하고 있어서 메소드를 사용해 간단하게 한글을 처리
  • POST 방식에서 한글 처리를 해주는 메소드는 HttpServletRequest의 상위 객체인 ServletRequest에서 제공하는 setCharacterEncoding() 메소드이다.
  void setCharacterEncoding(String env) throws UnsupportedEncodingException
  • GET 방식 한글 처리
    GET 방식으로 전달된 질의 문자열들은 URI에 포함되어 전달되기 때문에 URI에 대해 인코딩 처리 작업을 해야한다.

  • 📌 소스에서 직접 인코딩 문자코드를 지정해주는 방법

      <head></head>사이에 <meta charset="UTF-8"> 태그처럼 사용하고자 하는 문자코드를 지정하는 것```
  • 📌 서버에서 URI를 인코딩하는 문자코드

    서버의 URI 인코딩 처리 문자코드를 지정하고 싶다면, 서버의 환경설정 파일 중 server.xml 파일에 인코딩 문자코드를 설정한다.

     <Connector connectionTimeout="머시기"
    		   port="포트번호"
    		   protocol="프로토콜"
    		   redirectPort="포트번호"
    		   URIEncoding="UTF-8" />





2. SQL

📝 숫자 함수

  • 숫자 데이터를 처리하기 위한 함수
함수기능
ABS절대값 구하는 함수
FLOOR소수점 아래를 버리는 함수
ROUND특정 자릿수에서 반올림하는 함수
TRUNC특정 자릿수에서 잘라내는 함수
MOD나누기 연산을 한 후 나머지를 결과로 되돌려주는 함수



📝 문자 함수

함수기능
UPPER대문자로 변환하는 함수
LOWER소문자로 변환하는 함수
SUBSTR시작 위치부터 선택 개수만큼의 문자를 추출하는 함수
⭐java의 str.substring(indexstart,indexend): indexstart부터 indexend 앞 자리까지의 값을 추출
INITCAP이니셜만 대문자로 변환하는 함수
LENGTH문자 길이를 구하는 함수
INSTR특정 문자의 위치를 구하는 함수
LTRIM/RTRIMLTRIM : 문자열 왼쪽(앞)의 공백 문자들을 삭제
RTRIM : 문자열 오른쪽(뒤)의 공백 문자들을 삭제
TRIM특정 문자를 잘라내는 함수



✔ 사원들의 입사일에서 입사 년도와 입사 달을 출력하는 쿼리문

SELECT ename, 19||substr(hiredate,1,2) YEAR, substr(hiredate,4,2) MONTH FROM emp; 
  • 결과

✔ ' O RAC LE ' 공백문자를 제거하는 쿼리문

profile
개발 연습장

0개의 댓글