기본 콘텐츠로 건너뛰기

Java Servlet Request Parameter 완전 정복 — GET/POST 모든 파라미터 확인 & 디버깅 예제 (Request Parameter 전체보기)

Java Servlet Request Parameter 완전 정복 — GET/POST 모든 파라미터 확인 & 디버깅 예제 Java Servlet Request Parameter 완전 정복 웹 애플리케이션에서 클라이언트로부터 전달되는 Request Parameter 를 확인하는 것은 필수입니다. 이 글에서는 Java Servlet 과 JSP 에서 GET/POST 요청 파라미터를 전체 출력하고 디버깅하는 방법을 다양한 예제와 함께 소개합니다. 1. 기본 예제: getParameterNames() 사용 Enumeration<String> params = request.getParameterNames(); System.out.println("----------------------------"); while (params.hasMoreElements()){ String name = params.nextElement(); System.out.println(name + " : " + request.getParameter(name)); } System.out.println("----------------------------"); 위 코드는 요청에 포함된 모든 파라미터 이름과 값을 출력하는 기본 방법입니다. 2. HTML Form과 연동 예제 <form action="CheckParamsServlet" method="post"> 이름: <input type="text" name="username"><br> 이메일: <input type="email" name="email"><b...

JavaScript로 시/도 · 시/군/구 2단 콤보박스 구현하기 (대한민국 행정구역 전체 데이터)

JavaScript로 시/도 · 시/군/구 2단 콤보박스 구현하기 (대한민국 행정구역 전체 데이터) JavaScript로 시/도 · 시/군/구 2단 콤보박스 구현하기 (대한민국 행정구역 전체 데이터) 회원가입 폼이나 쇼핑몰 배송지 입력 화면을 만들다 보면, 시/도 선택 후 자동으로 시/군/구가 바뀌는 2단 콤보박스 는 거의 필수 기능입니다. 이 글에서는 대한민국 행정구역(시/도, 시/군/구) 전체 데이터를 JavaScript 객체로 정의하고, 이 데이터를 활용해 바닐라 JavaScript만으로 2단 주소 콤보박스 를 구현하는 방법을 정리합니다. 1. 시/도 · 시/군/구 2단 콤보박스 동작 예제 먼저 결과물이 어떻게 동작하는지 간단한 데모를 보겠습니다. 주소 선택 예제 시/도 선택 시/군/구 선택 실제 서비스에서는 이 콤보박스를 회원가입, 마이페이지 주소 관리, 주문/배송지 입력 등에 그대로 붙여서 사용할 수 있습니다. 2. 대한민국 행정구역 JavaScript 데이터 구조 기본 구조는 매우 단순합니다. 시/도 이름을 객체의 Key 로, 해당 시/도 아래의 시/군/구 목록을 배열 로 가지는 형태입니다. const sigunguData = { ...

달력 만들기 with jQuery

var today = new Date(); //오늘 날짜//내 컴퓨터 로컬을 기준으로 today에 Date 객체를 넣어줌 var date = new Date(); //today의 Date를 세어주는 역할 function getStartDay(){ var startDate = new Date(today.getFullYear(), today.getMonth(), 1); return startDate.getDay(); } function getLastDate(){ var endDate = new Date(today.getFullYear(), today.getMonth(),0); return endDate.getDate(); } function setYear(){ var year = today.getFullYear(); $("#searchYear").empty(); $("#searchYear").append(" "+year+"년 "); $("#searchYear").append(" "+(year+1)+"년 "); $("#searchYear").append(" "+(year+2)+"년 "); $("#searchYear").append(" "+(year+3)+"년 "); $("#searchYear").append(" "+(year+4)+"년 "); } function createData(date,day){ var year = today.getFullYear(); //년도 var month = today.getMonth(); //월 if(day == null){ return ''; }else{ if(today.getDate() ==...

java.lang.ClassNotFoundException: ContextLoaderListener 에러 해결 방법 (Eclipse + Tomcat)

[Spring] java.lang.ClassNotFoundException: ContextLoaderListener 에러 해결 완벽 가이드 작성일: 2025. 12. 10 | 분류: Java/Spring Framework Spring MVC 프로젝트를 Eclipse와 Tomcat 환경에서 배포하다 보면 종종 마주치는 악명 높은 에러가 있습니다. 로컬 테스트(Unit Test)에서는 잘 돌아가는데, 서버를 띄우면 갑자기 404 혹은 500 에러와 함께 콘솔에 다음 로그가 찍히는 경우입니다. java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:xxx) ... 이 에러가 발생하면 스프링 컨텍스트가 로드되지 않아 아무런 페이지도 뜨지 않습니다. 이 글에서는 이 에러의 정확한 원인과, Eclipse Deployment Assembly 설정 을 중심으로 한 가장 확실한 해결 방법을 정리합니다. 1. 에러의 원인: "배포된 곳에 파일이 없다" 이 예외(Exception)의 의미는 아주 단순합니다. ⚠️ 문제 상황 Tomcat이 구동되면서 web.xml 을 읽고 리스너를 실행하려는데, org.springframework.web.context.ContextLoaderListener 클래스 파일을 찾을 수 없다는 뜻입니다. 분명히 프로젝트에는 Spring 라이브러리가 추가되어 있는데 왜 못 찾는 걸까요? 원인은 "이클립...

Oracle Calendar

[Oracle] SQL로 달력 만들기: CONNECT BY LEVEL을 활용한 날짜 생성 완벽 가이드 개발을 하다 보면 '데이터가 없는 날짜' 까지 포함해서 조회해야 하는 상황을 자주 마주합니다. 예를 들어 일별 매출 리포트를 뽑는데, 매출이 0원인 날짜는 아예 조회되지 않아 그래프가 뚝뚝 끊기는 현상 같은 것들이죠. 이럴 때 필요한 것이 바로 1일부터 말일까지 꽉 채워진 '달력 테이블(Calendar Dummy Table)' 입니다. 오늘은 오라클(Oracle)의 강력한 계층형 쿼리 기능인 CONNECT BY LEVEL 을 사용하여, 단 3줄의 SQL로 특정 월의 모든 날짜를 생성하는 방법을 심층 분석해 보겠습니다. 1. 핵심 쿼리 분석 가장 먼저, 질문자님께서 공유해주신 코드를 기반으로 핵심 로직을 뜯어보겠습니다. 이 쿼리는 2018년 4월의 1일부터 30일까지를 생성하는 예제입니다. SELECT TO_CHAR(TO_DATE('201804'||LPAD(LEVEL,'2',0), 'YYYYMMDD'),'YYYYMMDD') AS YMD , LEVEL FROM (SELECT TO_DATE('20140601', 'YYYYMMDD') MAKE_DATES FROM DUAL) -- (A) CONNECT BY LEVEL <= TO_CHAR(LAST_DAY(sysdate),'DD') -- (B) 이 쿼리가 작동하는 원리는 다음과 같습니다. (A) DUAL 집합: CONNECT BY 를 수행하기 위한 모태가 되는 1건짜리 데이터입니다. (실제 날짜 값은 바깥에서 하드코딩 되어 있으므로 여기선 단순히 Row Source 역할만 합니다.) ...

SFTP 파일 업로드 및 다운로드

🔒 Java JSch 활용: SFTP 파일 업로드/다운로드 유틸리티 완벽 분석 JSch(Java Secure Channel)는 Java에서 SSH2를 구현한 라이브러리로, 안전한 SFTP 통신을 가능하게 합니다. 파일 다운로드, 업로드, 그리고 파일 전송에 필요한 디렉터리 생성 로직까지 포함된 핵심 유틸리티 코드를 분석해 보겠습니다. 1. 🔑 SFTP 접속 공통 로직 다운로드 및 업로드 함수 모두 공통적으로 **`GetProperties`**를 사용하여 접속 정보를 불러온 후, JSch를 통해 SSH 세션을 설정합니다. 특히 `StrictHostKeyChecking`을 `no`로 설정하는 부분은 최초 접속 시 호스트 키 검사를 생략하여 편리하게 접속하도록 합니다 (보안상 운영 환경에서는 신중하게 고려해야 할 설정입니다). // JSch 초기화 및 세션 설정 JSch jsch = new JSch(); session = jsch.getSession(ID, IP, Integer.parseInt(PORT)); session.setPassword(PWD); // StrictHostKeyChecking 설정 java.util.Properties config = new java.util.Properties(); config.put("StrictHostKeyChecking", "no"); session.setConfig(config); session.connect(); // SFTP 채널 열기 channel = session.openChannel("sftp"); channel.connect(); channelSftp = (ChannelSftp) channel; 2. ⬇️ 파일 다운로드 로직 분석 (`download`...

Oracle 전체 테이블 삭제 및 DB 링크 복제 자동화: PL/SQL 실전 스크립트 정리

Oracle DB 전체 테이블 삭제 및 DB 링크로 테이블·데이터 복사 자동화하기 개발·운영 환경을 초기화하거나, 다른 서버의 스키마를 그대로 복제해야 할 때 “전체 테이블 삭제 → DB 링크를 이용한 테이블/데이터 복사” 작업이 자주 필요합니다. 이 글에서는 Oracle 데이터베이스 기준으로 PL/SQL 루프 + EXECUTE IMMEDIATE 를 활용해 전체 테이블 삭제와 DB 링크를 통한 테이블/데이터 복사를 자동화하는 방법 을 정리합니다. 실무에서 바로 쓸 수 있는 예제 코드와, 꼭 확인해야 할 주의사항까지 함께 담았습니다. 📚 목차 Oracle DB 전체 테이블 삭제 (user_tables 기반) DB 링크로 테이블 구조만 복사하기 DB 링크로 테이블 데이터까지 복사하기 실무에서 자주 하는 튜닝·주의사항 1. Oracle DB 전체 테이블 삭제 (user_tables 기반) 개발 환경을 초기화하거나, 테스트용 스키마를 리셋할 때 user_tables 기준으로 현재 스키마의 모든 테이블을 DROP 하는 패턴입니다. 아래 예제는 PL/SQL 블록 + 커서 루프 로 구현한 기본 형태입니다. BEGIN FOR c IN (SELECT table_name FROM user_tables) LOOP EXECUTE IMMEDIATE 'DROP TABLE ' || c.table_name || ' CASCADE CONSTRAINTS'; END LOOP; END; / 1-1. 코드 설명 user_tables : 현재 접속한 유저가 소유한 테...