서블릿은 클라이언트 요청을 처리하고, 그 결과를 다시 클라이언트에게 전송하는 Servlet 클래스의 구현 규칙을 지킨 자바 프로그램
톰캣 : 웹 서버 (WAS)
JSP 파일도 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); } }
- 결과
구현되어 있는 Servlet 클래스의 규칙에 맞게 서블릿 객체를 생성, 초기화, 호출, 종료하는 생명 주기를 관리
클라이언트의 요청을 받고 응답할 수 있도록 웹 서버와 소켓으로 통신
Tomcat 은 웹 애플리케이션(WAS) 중 하나로, Servlet Container 기능을 제공
* 참고: https://steady-coding.tistory.com/599
<!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>
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 {
}
}
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" />
함수 | 기능 |
---|---|
ABS | 절대값 구하는 함수 |
FLOOR | 소수점 아래를 버리는 함수 |
ROUND | 특정 자릿수에서 반올림하는 함수 |
TRUNC | 특정 자릿수에서 잘라내는 함수 |
MOD | 나누기 연산을 한 후 나머지를 결과로 되돌려주는 함수 |
함수 | 기능 |
---|---|
UPPER | 대문자로 변환하는 함수 |
LOWER | 소문자로 변환하는 함수 |
SUBSTR | 시작 위치부터 선택 개수만큼의 문자를 추출하는 함수 ⭐java의 str.substring(indexstart,indexend): indexstart부터 indexend 앞 자리까지의 값을 추출 |
INITCAP | 이니셜만 대문자로 변환하는 함수 |
LENGTH | 문자 길이를 구하는 함수 |
INSTR | 특정 문자의 위치를 구하는 함수 |
LTRIM/RTRIM | LTRIM : 문자열 왼쪽(앞)의 공백 문자들을 삭제 RTRIM : 문자열 오른쪽(뒤)의 공백 문자들을 삭제 |
TRIM | 특정 문자를 잘라내는 함수 |
✔ 사원들의 입사일에서 입사 년도와 입사 달을 출력하는 쿼리문
SELECT ename, 19||substr(hiredate,1,2) YEAR, substr(hiredate,4,2) MONTH FROM emp;
- 결과
✔ ' O RAC LE ' 공백문자를 제거하는 쿼리문