티스토리 뷰
들어가기 전에
JSP와 Spring의 차이점은?
- JSP - > HTML문서에 내부적으로 자바문법을 사용할 수 있게 하는 스크립트 언어, 화면 처리 영역에서 사용
- Spring Framework -> 다양한 개발 빠르게 적용할 수 있게 만들어 놓은 도구,프로그램전반적환경구성
자바 웹 프로그램 JSP
- JSP를 사용해서 Servelet사용, 이후 JSP MVC, Spring MVC로 확장 가능
POST와 GET 방식 차이
POST | GET |
- 숨겨져서(body안에) 보내짐 - 많은 양의 데이터 보내는 것 가능 - 글 작성의 경우 - 수행한다는 것의 개념 - 서버의 상태나 값을 바꾸기 위해서 사용됨 |
- 주소줄에 값이 ?뒤에 쌍으로 이어붙음 -url에 붙어야 하기 때문에 많은 양의 데이터를 보내기가 어려움 - 가져온다는 것의 개념 - 서버의 값이나 상태들을 바꾸지 않음 |
서블릿
- "클라이언트 요청을 처리하고 그 결과를 다시 클라이언트에게 전송하는 Servlet 클래스의 구현 규칙을 지킨 자바 프로그램"
- 서블릿 구현시 HttpServlet 클래스 상속 필요
- HttpServlet 클래스? HTTP 프로토콜 기반으로 브랑우저부터 요청을 전달받아서 처리하는 클래스
- service 메소드에는 요청방식(GET/POST)에 따라 doGet(), doPost() 등 정해진 사양의 메소드가 호출
(1) HttpServletResponse response
- 클라이언트에게 보내는 문서타입과 문자셋을 응답헤더에 설정하는 메소드
*sendRedirect()
response.sendRedirect("???.jsp"); // 특정 주소를 호출할 것을 요청하는 응답신호를 보냄
(2) HttpServletRequest request
- 클라이언트의 IP 주소, 포트번호 요청
- 서버의 호스트 이름 ,. 포트번호 .. 등
1
2
3
4
5
6
7
8
|
//설정하기
HttpSession session = request.getSession();
session.setAttribute("hisName", 홍길동);
//수정하기
HttpSession session = request.getSession()
String hisName = (String)session.getAttribute("hisName")
|
cs |
EL(Expression language)
- 표현 언어를 이해하고 속성 값들을 편리하게 출력하기 위해 제공된 언어
- Expression language의 약자로 JSP 2.0 스펙에 추가된 개념
- EL을 사용하면 값이 없거나 형 변환 등에 전혀 신경 쓸 필요 없이 사용
- JSP 표기법 - <%= i %> , EL 표기법 - ${ i }
- EL 내장 객체는 대부분 map 객체이며, 값을 추출할 때 두 가지 형식으로 지정가능
예) ${param.id} or $[param["id"]}
JSTL
- 연산이나 조건문, 반복문을 편하게 처리 가능
- 자바의 기능을 태그 스타일로 구현해서 쓸수 있게 해주는 요소
- JSTL을 쓰면 라이브러리로 자바구문을 만들어놓고 필요할때마다 꺼내쓰면 되기 때문에 유지보수가 편리함
- JSTL중 코어 라이브러리를 사용하기 위해 이 구문 추가 필요
=> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
1. 변수선언하기 = setAttribute()
<c:set var="ir" value="홍길동" scope="page"/>
2. 출력하기 = '<%=...>'
<c:out value="${ir}"/>
3. if /else구문 -- choose 문
단순if 문
---------------------------------------------
<c:if test="${!login}">
<p><a href="/login.ok">로그인</a></p>
</c:if>
---------------------------------------------
choose 문 사용(if ~else는 choose로 표현)
---------------------------------------------
<c:choose>
<c:when test="${kbs =='star'}">별</c:when>
<c:when test="${kbs =='moon'}">달</c:when>
<c:otherwise>어떤 조건도 아닐 경우 수행</c:otherwise>
</c:choose>
-----------------------------------------------
<c:choose>
<c:when test="${login}">
<p><a href="/logout.ok">로그아웃</a></p>
</c:when>
<c:otherwise>
<p><a href="/login.ok">로그인</a></p>
</c:otherwise>
</c:choose>
------------------------------------------------------
3. 반복문 -- forEach 문
- 일반출력
<c:forEach var="i" begin="1" end="10" step="1">
<c:out value="${i}" />
</c:forEach>
- 객체 출력
<c:forEach i ="${Name}" var "name">
${name.hisName}
</c:forEach>
- 객체출력 -> 내장객체(key, value) 값 출력시
<c:forEach var="h" items="${headerValues}"> <!-- 헤더값을 찍음 -->
속성 : <c:out value="${h.key}" />
값 : <c:forEach var="k" items="${h.value }">
<c:out value="${k}"/>
</c:forEach>
<hr>
</c:forEach>
4. 포매팅 라이브러리
- 데이터의 출력을 바꾸기 위한것
- 추가필요--> <%@ taglib prefix ="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %><br>
숫자 : <fmt:formatNumber value="98745612345.678" type="number"/><br>
통화 : <fmt:formatNumber value="12345.789" type="currency" currencySymbol="$"/><br>
숫자 : <fmt:formatNumber value="12345.456" pattern="#,##0.0"/><br>
JDBC (Java Database Connectivity)
- 자바에서 데이터베이스에 접속할 수 있도록 하는 자바 API
- 데이터베이스에서 자료를 쿼리하거나 업데이트하는 방법을 제공
- SQQL을 작성할 수 있는 사람들을 위한 쿼리 실행 도구는 DB Client 프로그램
- UI <-> SQL <-> Oracle , MS SQL 사용
< JDBC 프로그램 작성 단계>
(1) JDBC 사용하여 Database 연결하기
// MySQL 드라이버 로딩
Class.forName("com.mysql.jdbc.Driver");
//Oracle 드라이버 로딩
Class.forName("oracle.jdbc.driver.OracleDriver");
(2) Connection 객체 생성하기
// MySQL 사용시 Connection 객체 생성
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/jsptest", "jspid","jsptest");
// Oracle 사용시 Connection 객체 생성
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:ora817", "scott", "tiger");
(3) Statement/PreparedStatement/CallableStatement 객체 생성
- sql 쿼리를 생성 및 실행하며, 반환된 결과를 가져오게 할 작업 제공한다
- JDBC 드라이버에 구애받지 않는다
Statement stmt = conn.createStatement();
(4) Query 수행
(5) ResultSet 처리
출처
1. https://opentutorials.org/module/3569/21251
2. https://blog.outsider.ne.kr/312
3. https://note.espriter.net/1179
4. https://jusungpark.tistory.com/15
5. 출처: https://hackersstudy.tistory.com/42 [공대인들이 직접쓰는 컴퓨터공부방]
6. https://blog.naver.com/lhglee/220447699825
7.
'Programming > FULL STACK' 카테고리의 다른 글
[Node.js/Server] NodeJS의 개요 (0) | 2020.10.10 |
---|---|
[WebRTC] 기본적인 개념과 코드 설명 (0) | 2020.08.19 |
Node.js와 npm, yarn 개발환경 설정하기 <Window 기준> (0) | 2020.06.03 |
리액트(React)란? (0) | 2020.06.03 |
[html] 간단한 문서 호스팅하기~ (0) | 2020.03.23 |