<STS Maven 테스트 - HomeController.java>
package com.example.demo.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; // 서블릿에선 @WevServlet -> Controller + RequestMapping // 여기선 각각 나누어서 표시함 @Controller @RequestMapping("/home/*") public class HomeController { // 테스트 URL 경로: http://localhost:8000/home/index @GetMapping("index") public String home() { return "home/index"; } }
<STS Maven 테스트 - index.jsp>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>home[Maven]</title> </head> <body> <h3>home index.jsp 페이지입니다.</h3> </body> </html>
<STS Gradle 테스트 - HomeController.java>
package com.example.demo.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; // 컨트롤 계층을 의미하는 어노테이션 추가 -> request와 response 누릴 수 있음 // 단순히 bean을 관리받는다는 점 외에도 요청객체와 응답객체를 주입받을 수 있다 @Controller // web.xml대신 자바코드에 직접 추가 가능함(단점: 전체적인 빈 목록을 볼 수 없음) @RequestMapping("/home/*") // url-pattern에 등록했던 url주소 값으로 추가함 public class HomeController { // 테스트 URL 경로: http://localhost:7000/home/index @GetMapping("index") public String home() { return "home/index"; } }
<STS Gradle 테스트 - index.jsp>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> Gradle Project - index.jsp 테스트 </body> </html>
<div태그에 문자 넣기 - dom1.jsp>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <div id="root"></div> <script type="text/javascript"> const rootElement = document.querySelector("#root"); const h1Element = document.createElement("h1"); h1Element.textContent = "DOM Make"; rootElement.appendChild(h1Element); </script> </body> </html> <!-- 확장자는 jsp이지만 mime type이 html이므로 html문서이다 -->
<div태그에 문자넣기 react - dom2.jsp>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <div id="root"></div> <script crossorigin src="https://unpkg.com/react@18/umd/react.development.js"></script> <script crossorigin src="https://unpkg.com/react-dom@18/umd/react-dom.development.js"></script> <script src="https://unpkg.com/@babel/standalone/babel.min.js"></script> <script type="text/babel"> const rootElement = document.querySelector("#root"); <!-- h1Element.textContent = "DOM Make" <- 이것과 아래(22번)코드는 같은효과 React는 react.development.js에서 참조하는 객체임 rootElement.appendChild(h1Element) <- 이것과 두번째 파라미터는 같은효과 --> const h1Element = React.createElement("h1", { children: "DOM Make" }); <!-- Client side rendering시 앞부분이 주입할 대상이고, 뒷부분이 root의 위치임 react-dom.development.js에서 참조하는 객체임 --> ReactDOM.createRoot(rootElement).render(h1Element); </script> </body> </html> <!-- 확장자는 jsp이지만 mime type이 html이므로 html문서이다 바닐라 스크립트는 순수한 자바스크립트를 의미 특정 라이브러리나 프레임워크를 사용하지 않는 그 자체의 자바스크립트 샌드박스 - playground이다 코드샌드박스: React 등 다양한 환경에대한 기본설정이 다 되어있다 -->
게시글목록-list,jsp(첫페이지, select문)
글쓰기버튼
-화면 writeForm.jsp(새글쓰기, insert, 글번호채번)
조회버튼
-list.jsp(조건 결과)
제목클릭
-read.jsp(상세보기, selectOne, 글번호 가져오기)
-댓글 쓰기(writeForm 재사용, insert) → (글번호/그룹번호-차수-순번)
-글수정
-글삭제
-목록

<게시글목록 - 아우터조인 테스트>
SELECT deptno, ename FROM emp; SELECT deptno, dname FROM dept; SELECT d.deptno, e.ename, d.dname FROM emp e, dept d WHERE e.deptno = d.deptno ORDER BY deptno; SELECT deptno FROM dept MINUS SELECT deptno FROM emp; SELECT d.deptno, e.ename, d.dname FROM emp e, dept d WHERE e.deptno(+) = d.deptno ORDER BY deptno;
<게시글목록 - 아우터조인 board>
SELECT * FROM board_master_t; SELECT * FROM board_sub_t; SELECT m.bm_no, m.bm_title, m.bm_writer, s.bs_file, m.bm_hit, m.bm_pos, m.bm_step FROM board_master_t m, board_sub_t s WHERE m.bm_no = s.bm_no(+) ORDER BY m.bm_group DESC, m.bm_step ASC;
<게시글목록 - board.xml>
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.mybatis.mapper.BoardMapper"> <!-- 게시글목록 가져오는 쿼리문 --> <select id="getBoardList" parameterType="java.util.HashMap" resultType="map"> SELECT m.bm_no, m.bm_title, m.bm_writer, s.bs_file, m.bm_hit, m.bm_pos, m.bm_step FROM board_master_t m, board_sub_t s WHERE m.bm_no = s.bm_no(+) ORDER BY m.bm_group DESC, m.bm_step ASC </select> </mapper>
<게시글목록 - MyBatisConfig.xml>
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <environments default="development"> <environment id="development"> <transactionManager type="JDBC" /> <dataSource type="POOLED"> <property name="driver" value="oracle.jdbc.OracleDriver" /> <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl11" /> <property name="username" value="scott" /> <property name="password" value="tiger" /> </dataSource> </environment> </environments> <mappers> <!-- 업무에따라 관리할 쿼리문을 담을 xml문서의 물리적인 위치와 파일명을 등록할것 --> <mapper resource="com/mybatis/mapper/test.xml" /> <mapper resource="com/mybatis/mapper/member.xml" /> <mapper resource="com/mybatis/mapper/board.xml" /> <mapper resource="com/util/book.xml" /> <mapper resource="com/util/member2.xml" /> </mappers> </configuration>
'국비학원 > 수업기록' 카테고리의 다른 글
국비 지원 개발자 과정_Day60 (0) | 2023.02.22 |
---|---|
국비 지원 개발자 과정_Day59 (0) | 2023.02.21 |
국비 지원 개발자 과정_Day57 (0) | 2023.02.17 |
국비 지원 개발자 과정_Day56 (0) | 2023.02.16 |
국비 지원 개발자 과정_Day55 (1) | 2023.02.15 |
댓글