[Servlet, JSP] 231207 + CSS

이슬기·2023년 12월 7일

servlet

목록 보기
2/8

어떤 요청이 *.gd로 끝나면 내가 관여할게

  • FrontMVC -> HttpServlet -> doGet, doPost -> doServlet
  • 이런 역할을 하는 스프링의 클래스 이름은 DispatcherServlet

FrontMVC.java

  • 왜 서블릿을 상속받는가? : 스프링도 서블릿을 상속받았다
    • 서블릿이어야 req, res를 쥐고 있기 때문이다.
  • 웹 서비스 제공 - 네트워크

1-1의 개선점

어떤 요청에 대해서 처리를 담당할 클래스를 결정하는 일을 전담하는 클래스(or 인터페이스)가 있어야 하지 않을까?

무엇을 위한 실습인가? - postman

화면 없어도 개발할 수 있다.
화면이 없는 상태에서도 단위테스트 할 수 있다.

프레임워크

  • 등록하기
    jsp(입력받기) - 서블릿(insert) - 서블릿(select) - jsp
  • 수정하기
    서블릿(select) - jsp(입력) - 서블릿(update) - 서블릿(select) - jsp
  • 삭제하기
    jsp - 서블릿(delete) - 서블릿(select) - jsp : 등록하기와 동일
  • 전체 조회
    화면은 포함하지 않는다면) 서블릿(select) - jsp
  • 상세 조회
    jsp - 서블릿(select) - jsp

JDBC API

Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con = DriverManager.getConnection(URL, "scott", "tiger"); //물리적인 거리가 있는 서버와 연결통로
PreparedStatement pstmt = con.preparedStatement();
ResultSet rs = pstmt.executeQuery();
while(rs.next()){
map<String, Object> rmap = new HashMap<>(); - 이것을 계속 반복해야한다.
}

myBatis API

1번과 2번이 반복된다 -> 둘 반복을 대신하는 SqlSessionFactory - MapperConfig.xml(드라이버, ip, port, orcl11, scott, tiger + 물리적인 위치(notice.xml, test.xml -> DML(id==method name, )

  • SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(MapperConfig.xml);

3번(insert, update, delete, select)

  • 의존관계에 있는 클래스(혹은 인터페이스)들이 보통 메소드 호출로 객체를 주입한다

  • SqlSession sqlSession = sqlSessionFactory.openSession(); //메소드 호출로 객체를 주입받는다(고급)

  • sqlSession.commit()
    sqlSession.rollback()

  • sqlSession.selectOne{Object - 1건 - VO, Map - String}("id")

  • sqlSession.selectMap{Map - 1건} : 우선 순위가 낮다

  • <select resultMap="map" parameterMap="map">
    List<Map> = sqlSession.selectList - n건
    while(rs.nex()){
    //3번 반복 - 1번 - Map, Map, Map
    }
    open ... cursor ... fetch ... close()

4번(select만) - while문 - 생략가능하다 왜냐하면

  • <select resultMap="map" parameterMap="map">
    resultMap 속성 값인 map은 한 행씩 담아준다.
    그런데 어떻게 해서 n개 행이 담기는가?
    selectList("noticeList", map)

CSS

M : margin - 외부여백
P : padding - 안쪽 여백

t : top
b : bottom
l : left
r : right
x : x축 -> left, right
y : y축 -> top, bottom

0, 1, 2, 3, 4, 5, auto
1 : .25rem(font-size가 16px이면 4px)
2 : 0.5rem
3 : 1rem
4 : 1.5rem
5 : 3rem

0개의 댓글