일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- ARIMA 모델링
- 시계열 상관 분석
- Python
- 범주형 데이터
- 군집화 시각화 방법
- 상위포지션
- 계절성 모델
- 데이터 종류에 따른 분석 방법
- 순서형 데이터
- 상자 그림
- 지수평활법
- 데이터의 차원 축소
- 날짜 시간 데이터 전처리
- 데이터 수집 및 전처리
- 상관 분석
- Q-Q 플롯
- 주성분 줄이기
- 다변량 분석
- 다중상관분석
- 시계열 특성을 고려한 이상치 탐지
- 최소-최대 정규화
- 명목형 데이터
- custom vision
- ARMA 모델링
- 데이터 분석 프로세스
- R과 Python
- 주성분 분석
- 시계열 모델링
- 선형 판별 분석 LDA
- Z-점수 기반 이상치 탐지
- Today
- Total
me made it !
[JSP] 20230309 JSP servlet, JDBC를 사용한 DB연동 본문
Servlet
▶Servlet이란
자바를 사용하여 웹페이지를 동적으로 생성하는 서버측 프로그램 혹은 그 사양을 말하며, 흔히 "서블릿"이라 불린다. 자바 서블릿은 웹 서버의 성늘을 향상하기 위해 사용되는 자바 클래스의 일종이다.
JSP와 비슷하지만 JSP는 HTML 문서 안에 Java코드를 포함하는 반면, 서블릿은 자바코드안에 HTML을 포함하고 있다는 점에서 차이점이 있다.
Servlet | JSP |
자바 코드 안에 HTML 포함 | HTML 문서안에 Java코드 포함 |
▶Servlet 동작흐름
▶Servlet Life-Sycle
- Init() : 서블릿이 메모리에 로드될 때 한번만 호출 (코드 수정 시 다시 호출) 🔴
- doGet() : GET방식으로 data전송 시 호출 🟡
- doPost() : POST방식으로 data전송 시 호출 🟡
- service() : 모든 요청은 service()를 통해 doXXX()메소드로 이동 🟡
- destroy() : 서블릿이 메모리에서 해제되면 호출🔴
🔴 : 최초 요청 시 한번만 실행 / 🟡 : 요청시마다 반복 실행
▶Parameter 전송방식
GET | POST | |
특징 | 전송되는 데이터가 URL뒤 QueryString으로 전달 | URL과 별도로 전송 HTTP header 뒤 body에 입력 스트림 데이터로 전달 |
장점 | 간단한 데이터를 빠르게 전송 form tag뿐만 아니자 직접 URL에 입력하여 전송가능 |
데이터의 제한이 없음. 최소한의 보안유지 효과를 볼 수 있음 |
단점 | 데이터양에 제한이 있다(URL창만큼) 보안상의 문제 |
전달 데이터의 양이 같은 경우 GET보다 느리다 (전송패킷을 body에 구성해야하므로) |
package servlet;
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;
@WebServlet("/FirstServlet")
public class FirstServlet extends HttpServlet {
// 인터넷상에서 자바로 만든 웹프로그램을 서블릿이라 한다.
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
out.println("Servlet Hello world");
out.println("<html>"
+ "<head><title></title></head>"
+ "<body><b>hello world</b></body>"
+ "</html>");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
https://java-is-happy-things.tistory.com/23
Servlet (서블릿)이해하기 + 실습예제
Servlet Servlet이란 자바를 사용하여 웹페이지를 동적으로 생성하는 서버측 프로그램 혹은 그 사양을 말하며, 흔히 "서블릿"이라 불린다. 자바 서블릿은 웹 서버의 성늘을 향상하기 위해 사용되는
java-is-happy-things.tistory.com
JDBC
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>회원가입</title>
<script src="https://code.jquery.com/jquery-3.6.0.js"></script>
<script type="text/javascript">
$(document).ready(function(){
//자동실행영역
});
function check(){
//alert("각 값이 있는지 체크하는 구문을 만들어보세요");
if ($("#memberId").val() == ""){
alert("아이디를 입력하세요");
$("#memberId").focus();
return;
}else if ($("#memberPwd").val() == ""){
alert("비밀번호를 입력하세요");
$("#memberPwd").focus();
return;
}else if ($("#memberPwd2").val() == ""){
alert("비밀번호 확인을 입력하세요");
$("#memberPwd2").focus();
return;
}else if ($("#memberPwd").val() != $("#memberPwd2").val()){
alert("비밀번호가 일치하지 않습니다");
$("#memberPwd2").val("");
$("#memberPwd2").focus();
return;
}else if ($("#memberName").val() == ""){
alert("이름을 입력하세요");
$("#memberName").focus();
return;
}else if ($("#memberPhone").val() == ""){
alert("전화번호를 입력하세요");
$("#memberPhone").focus();
return;
}else if ($("#memberEmail").val() == ""){
alert("이메일을 입력하세요");
$("#memberEmail").focus();
return;
}else if ($("#memberBirth").val() == ""){
alert("생년월일을 입력하세요");
$("#memberBirth").focus();
return;
}else if ($.isNumeric($("#memberBirth").val()) ==false){
alert("숫자만입력하세요");
$("#memberBirth").val("");
$("#memberBirth").focus();
return;
}
// else if ($("#memberIdCheck").val() != "Y"){
// alert("아이디 중복체크를 하세요");
// $("#memberId").focus();
// return;
// }
var fm = document.frm;
//이 경로로 데이터를 감추어서 전송한다
fm.action ="memberJoinAction.jsp";
fm.method = "post";
fm.submit();
return;
}
function idCheck(){
// alert("아이디 체크창입니다.");
let memberId = $("#memberId").val();
$.ajax({
url: "json3.jsp",
method: "POST",
data: {"memberId": memberId },
dataType: "json",
success : function(data){
if (data.idYn =="Y"){
alert("사용가능한 아이디입니다.");
$("#memberIdCheck").val("Y");
}else{
alert("사용불가한 아이디 입니다");
}
},
error : function(request,status,error){
alert("다시 시도하시기 바랍니다.");
}
});
return;
}
</script>
</head>
<body>
회원가입 페이지
<form name="frm" id="frm">
<table style="border:1px solid #CCC;width:500px">
<tr>
<td>아이디</td>
<td>
<input type="text" name="memberId" id="memberId">
<input type="button" id="memberIdCheck" value="아이디 중복체크" onclick="idCheck();">
</td>
</tr>
<tr>
<td>비밀번호</td>
<td><input type="password" name="memberPwd" id="memberPwd"></td>
</tr>
<tr>
<td>비밀번호 확인</td>
<td><input type="password" name="memberPwd2" id="memberPwd2"></td>
</tr>
<tr>
<td>이름</td>
<td><input type="text" name="memberName" id="memberName"></td>
</tr>
<tr>
<td>전화번호</td>
<td><input type="text" name="memberPhone" id="memberPhone"></td>
</tr>
<tr>
<td>이메일</td>
<td><input type="text" name="memberEmail" id="memberEmail"></td>
</tr>
<tr>
<td>성별</td>
<td>
<input type="radio" name="memberGender" id="memberMale" value="남성" checked>남성
<input type="radio" name="memberGender" id="memberFeMale" value="여성">여성
</td>
</tr>
<tr>
<td>주소</td>
<td>
<select name="memberAddr" id="memberAddr">
<option value="서울">서울</option>
<option value="대전">대전</option>
<option value="전주" selected>전주</option>
</select>
</td>
</tr>
<tr>
<td>생년월일</td>
<td>
<input type="text" name="memberBirth" id="memberBirth">
(ex 19990101)
</td>
</tr>
<tr>
<td></td>
<td><input type="button" name="btn" id="btn" value="확인" onclick="check();"></td>
</tr>
</table>
</form>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@page import ="java.sql.*" %>
<%
request.setCharacterEncoding("UTF-8");
String memberId = request.getParameter("memberId");
String memberPwd = request.getParameter("memberPwd");
String memberName = request.getParameter("memberName");
String memberPhone = request.getParameter("memberPhone");
String memberEmail = request.getParameter("memberEmail");
String memberGender = request.getParameter("memberGender");
String memberAddr = request.getParameter("memberAddr");
String memberBirth = request.getParameter("memberBirth");
/*
out.println("아이디는?"+memberId+"<br>" );
out.println("비밀번호는?"+memberPwd+"<br>");
out.println("이름은?"+memberName+"<br>");
out.println("전화번호는?"+memberPhone+"<br>");
out.println("이메일?"+memberEmail+"<br>");
out.println("성별은?"+memberGender+"<br>");
out.println("주소는?"+memberAddr+"<br>");
out.println("생년월일은?"+memberBirth+"<br>");
*/
String url= "jdbc:oracle:thin:@127.0.0.1:1521:xe";
String user="system";
String password="1234";
Class.forName("oracle.jdbc.driver.OracleDriver"); //동적로딩 - 메모리에 올린다
Connection conn = DriverManager.getConnection(url, user, password); //DB와 접속시킨다.
out.println("연결객체주소는?"+conn);
String sql ="INSERT INTO member1230(midx,memberId,memberPwd,memberName,memberEmail,memberGender,memberAddr,memberBirth,ip)"+
"VALUES(midx_seq.nextval,'"+memberId+"','"+memberPwd+"','"+memberName+"','"+memberEmail+"','"+memberGender+"','"+memberAddr+"','"+memberBirth+"',null)";
// 구문 쿼리클래스
Statement stmt = conn.createStatement();
stmt.execute(sql);
stmt.close();
conn.close();
//값을 넘겨받고 연결을 한 후에 쿼리를 실행한다
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
</head>
<body>
</body>
</html>
https://devlog-wjdrbs96.tistory.com/139
[Java] JDBC를 사용한 데이터베이스 연동(Mysql)
1. JDBC API Java DataBase Connectivity의 약자로 JDBC는 자바 언어로 데이터베이스 프로그래밍을 하기 위한 라이브러리이다. JDBC는 DBMS에 종속되지 않는 관련 API를 제공한다. JDBC API는 JDK에서 제공하며 JDBC
devlog-wjdrbs96.tistory.com
'TIL > JSP' 카테고리의 다른 글
[JSP] 20230315 JAVA 게시판에 글쓰기 (0) | 2023.03.15 |
---|---|
[JSP] 20230314 JSP 모델2 방식으로 게시판 만들기 (0) | 2023.03.14 |
[JSP] JSP 개발 환경 구축 (0) | 2023.03.14 |
[JSP] 20230313 JSP 모델 1 방식으로 게시판 만들기 (0) | 2023.03.13 |
[JSP] 20230310 JSP try- catch, DTO(VO)와 DAO (0) | 2023.03.10 |