본문 바로가기
수업내용

20230620 수업내용😢😢😢

by titlejjk 2023. 6. 20.

오늘의 첫 수업은 vue2

ajax 요청을 통해서 받아온 데이터사용하기

페이지 전환없이 서버에 요청하는 것을 ajax라고 생각하면 된다.

vue2의 반복문 문법

라이브러리를 다운받으려는데 maven이나 gradle이 아닌경우에는 직접 jar파일을 다운받아서 써줘야한다.

 

다운받은 라이브러리에 들어있는 json관련 Class들

 

 

 

 

 

 

 

 

 

 

<%@page import="org.json.JSONWriter"%>
<%@page import="test.cafe.dto.CafeDto"%>
<%@page import="test.cafe.dao.CafeDao"%>
<%@page import="java.util.List"%>
<%@ page language="java" contentType="application/json; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix = "c" %>
<%
	CafeDto dto = new CafeDto();
	dto.setStartRowNum(1);
	dto.setEndRowNum(10);
	//글목록
	List<CafeDto> list=CafeDao.getInstance().getList(dto);
	String json = JSONWriter.valueToString(list);
%>
<%=json%>

이렇게 작성하면 아래와 같은 결과물이나온다.

created(){}👉Vue가 준비 되었을때 (root componen가 준비 되었을 때) 최초 한번 호출된다.

created(){
				//Vue가 준비 되었을때 (root componen가 준비 되었을 때) 최초 한번 호출된다.
				//fetch를 이용해서 서버에 데이터를 요청한다.
					fetch("/Step05Final/cafe/json_list.jsp")
					.then(res=>res.json())
					.then(data=>{
						//data는 글목록이 들어 있는 배열이다.
						this.list=data;
						});
			},

여기까지하고 Spring을 하겠다.

Servers에 context.xml안에 위 코드가 있어야 DB와 연결이 가능해진다.위에있는 사진들이 DB를 연동하기 위한 전제 조건이다.

다른객체를 참조할때는 ref속성, 숫자나 문자를 넣어줄 때는 value를 사용한다.

스프링빈끼리만 관리가 가능하다(빈은 빈끼리) 그게 아니라면 어노테이션을 사용해서 빈으로 만들어준다.

일반적인 빈들은 @Component만 붙여준다. 중요한 어노테이션들의 사용 예로는 컨트롤러는 @Controller Dao Class는 @Repository

 

왜 인터페이스를 사용하는 것인가?implement를 사용안하고? 의존성을 유연하게 하기 위해서이다.

빈을 주입받아서 쓰더라도 인터페이스로 사용하는 것이다.

  1. 필요한 핵심의존 객체를 직접 생성하지 않고 주입 받아서 사용한다.
  2. 객체의 생성과 관리를 spring프레임워크에 맡긴다.
  3. 인터페이스 type을 적극 활용한다.
<context:component-scan base-package="com.gura.spring02" />

component-scan을 통해 일괄적(자동)으로 bean으로 만들어준다.

 

서버에 들어오는 모든 요청( " / " )은 DIspatcherServlet을 거쳐서 DispatcherServlet를 통해 요청을 분배한다.

이 모든 요청으로 인해서 문제가 발생한다.

서버에 요청이 들어갈 때 링크/폼 전송요천만 있는 것이아닌 이미지를 로딩하는 요청이나 서버의있는 자바스크립트/css를 요청하는 것도 DispatcherServlet을 통해 요청이 된다.

이거에 대한 해결책으로 두가지가있다.

특정패턴의 요청만 해결👉
예를 들어 /xxx/xxx.do 뒤에 .do로 끝나는 모든 요청은 DispatcherServlet통해 요청을 받는다.

이걸 코드로 바꿔주고싶으면 아래와 같이하면된다.

@RequestParam(value="파라미터명", defalutValue="기본값") 👉 기본값은 없어도 되고 파라미터명과 매개변수명이 일치한다면 생각이 가능하다.

//회원수정폼 요청 처리
	@RequestMapping("/member/updateform")
	public ModelAndView updateform(ModelAndView mView, int num) {
		//수정할 회원의 정보를 얻어온다.
		MemberDto dto = dao.getData(num);
		/*
		 *	수정할 회원의 정보를 ModelAndView 객체의 addObjct(key, value)메소드를 이용해 담는다.
		 *	ModelAndView 객체에 담은 값은 결국 HttpServletRequest 객체에 담긴다(request scope에담긴다.)
		 */
		mView.addObject("dto", dto);
		//view page 의 위치도 ModelAndView 객체에 담아서 리턴해야한다.
		mView.setViewName("member/updateform");
		//모델(data)와 view page의 정보가 모두 담긴 ModelAndView 객체를 리턴해주면
		//spring 이 알아서 처리해 준다.
		return mView;
	}

 

댓글