: Content-dispostion = 다운로드 형식, attachment;fileName="+file = 파일명을 붙여서 다운
File f = new File(FileServiceImpl.IMG_REPO + "/" + file) : 해당 파일을 저장할 위치 지정
FileInputStream in = new FileInputStream(f) : FileInputStream()을 이용하여, 파일의 내용을 읽어옴 FileCopyUtils.copy(in, res.getOutputStream()) : 불러온 내용을 복사하여, 클라이언트에게 전송
package com.care.root;
import java.text.DateFormat;
import java.util.Date;
import java.util.Locale;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
/**
* Handles requests for the application home page.
*/
@Controller
public class HomeController {
private static final Logger logger = LoggerFactory.getLogger(HomeController.class);
/**
* Simply selects the home view to render by returning its name.
*/
@RequestMapping(value = "/", method = RequestMethod.GET)
public String home(Locale locale, Model model) {
logger.info("Welcome home! The client locale is {}.", locale);
Date date = new Date();
DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, locale);
String formattedDate = dateFormat.format(date);
model.addAttribute("serverTime", formattedDate );
return "home";
}
@GetMapping("index")
public String index() {
return "index";
}
}
MemberController.java
package com.care.root.member.controller;
import java.util.ArrayList;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import com.care.root.member.dto.MemberDTO;
import com.care.root.member.service.MemberService;
@Controller
@RequestMapping("member")
public class MemberController {
@Autowired MemberService ms;
@GetMapping("login")
public String login() {
return "member/login";
}
@PostMapping("successLogin")
public String check(MemberDTO dto, HttpServletRequest req, Model model) {
int result = ms.check(dto);
if (result == 1) {
HttpSession session = req.getSession();
session.setAttribute("id", dto.getId());
model.addAttribute(session);
return "member/successLogin";
}else {
return "redirect:login";
}
}
@GetMapping("logout")
public String logout(HttpServletRequest req, Model model) {
HttpSession session = req.getSession();
session.invalidate();
return "index";
}
@GetMapping("info")
public String info(Model model) {
ArrayList<MemberDTO> info = ms.info();
model.addAttribute("info", info);
return "member/info";
}
@GetMapping("memberInfo")
public String memberInfo(@RequestParam("id") String id, Model model) {
ArrayList<MemberDTO> memberInfo = ms.memberInfo(id);
model.addAttribute("memberInfo", memberInfo);
return "member/memberInfo";
}
@GetMapping("register")
public String register() {
return "member/register";
}
@PostMapping("registerSuccess")
public String registerSuccess(MemberDTO dto) {
int result = ms.registerSuccess(dto);
if (result == 1) {
return "redirect:login";
}
return "redirect:register";
}
}
MemberService.java
package com.care.root.member.service;
import java.util.ArrayList;
import com.care.root.member.dto.MemberDTO;
public interface MemberService {
public int check(MemberDTO dto);
public ArrayList<MemberDTO> info();
public ArrayList<MemberDTO> memberInfo(String id);
public int registerSuccess(MemberDTO dto);
}
MemberServiceImpl.java
package com.care.root.member.service;
import java.util.ArrayList;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.care.root.member.dto.MemberDTO;
import com.care.root.mybatis.member.MemberMapper;
@Service
public class MemberServiceImpl implements MemberService{
@Autowired MemberMapper mm;
public int check(MemberDTO dto) {
ArrayList<MemberDTO> list = mm.check();
System.out.println(list.get(0).getId());
System.out.println(list.get(0).getPw());
System.out.println(list.get(1).getId());
System.out.println(list.get(1).getPw());
System.out.println("입력 id : " + dto.getId());
System.out.println("입력 pw : " + dto.getPw());
for (int i = 0; i < list.size(); i++) {
if (list.get(i).getId().equals(dto.getId()) &&
list.get(i).getPw().equals(dto.getPw())) {
return 1;
}
}
return 0;
}
public ArrayList<MemberDTO> info() {
ArrayList<MemberDTO> info = mm.check();
return info;
}
public ArrayList<MemberDTO> memberInfo(String id) {
ArrayList<MemberDTO> memberInfo = mm.memberInfo(id);
return memberInfo;
}
public int registerSuccess(MemberDTO dto) {
int result = mm.registerSuccess(dto);
return result;
}
}
MemberDTO
package com.care.root.member.dto;
public class MemberDTO {
private String id;
private String pw;
private String addr;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPw() {
return pw;
}
public void setPw(String pw) {
this.pw = pw;
}
public String getAddr() {
return addr;
}
public void setAddr(String addr) {
this.addr = addr;
}
}
MemberMapper.java
package com.care.root.mybatis.member;
import java.util.ArrayList;
import com.care.root.member.dto.MemberDTO;
public interface MemberMapper {
public ArrayList<MemberDTO> check();
public ArrayList<MemberDTO> memberInfo(String id);
public int registerSuccess(MemberDTO dto);
}
@RequestParam("키명") 타입 변수명 : request로 넘어오는 값을 처리(키명과 변수명이 동일하면 키명 생략 가능)
* HttpServletRequest : 사용자가 요청한 값 받아오기
* @Controller 바로 밑에 @RequestMapping("경로") : 해당 경로가 겹치면, 해당 경로 생략 가능
* model.addAttribute("키", 밸류) 형태
* controller에서 넘겨 받는 곳에 dto를 입력하면 setter로 인해 자동으로 dto안으로 들어옴
package com.care.ex02;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
@Controller
@RequestMapping("ex02")
public class MemberController {
@Autowired
private MemberService ms;
public MemberController() {
System.out.println("---- controller ----");
}
@RequestMapping("index")
public String index(Model model) {
System.out.println("service : " + ms);
ms.getData(model);
return "ex02/index";
}
@RequestMapping(value = "result", method = RequestMethod.GET)
public String result(HttpServletRequest req, Model model) {
System.out.println(req.getMethod());
System.out.println(req.getParameter("name"));
System.out.println(req.getParameter("age"));
model.addAttribute("method", req.getMethod());
model.addAttribute("name", req.getParameter("name"));
model.addAttribute("age", req.getParameter("age"));
return "ex02/result";
}
@PostMapping("result")
public String result02(
@RequestParam("name") String n,
@RequestParam int age,
Model model,
HttpServletRequest req
) {
model.addAttribute("method", req.getMethod());
model.addAttribute("name", n);
model.addAttribute("age", age);
return "ex02/result";
}
@PostMapping("object")
public String object(MemberDTO dto, Model model) {
model.addAttribute("dto", dto);
return "ex02/object";
}
}
package com.care.ex02;
import javax.inject.Inject;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import org.springframework.ui.Model;
@Service("ms")
public class MemberService {
//@Autowired
@Inject
@Qualifier("dao2")
MemberDAO dao;
public MemberService() {
System.out.println("---- service ----");
}
public void getData(Model model) {
System.out.println("get data 연동 : " + dao);
String msg = dao.getData();
model.addAttribute("msg", msg);
}
}
package com.care.ex02;
import org.springframework.stereotype.Repository;
@Repository
public class MemberDAO {
public MemberDAO() {
System.out.println("---- dao ----");
}
public String getData() {
return "아무값이나!~";
}
}
package com.care.ex02;
public class MemberDTO {
String name;
int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
package com.care.ex04;
public interface CarService {
public void speed();
}
package com.care.ex04;
public class CarServiceImpl01 implements CarService{
@Override
public void speed() {
System.out.println("속력을 올립니다!!");
}
}
package com.care.ex04;
public class CarServiceImpl02 implements CarService{
@Override
public void speed() {
System.out.println("새로운 기능 속도 올림!!");
}
}
package com.care.ex04;
import org.springframework.context.support.GenericXmlApplicationContext;
public class MainClass {
public static void main(String[] args) {
//CarService car = new CarServiceImpl02();
GenericXmlApplicationContext ctx =
new GenericXmlApplicationContext("classpath:application_car.xml");
CarService car = ctx.getBean("car", CarService.class);
System.out.println("main 클래스에서 자동차 사용");
car.speed();
SubClass sc = new SubClass();
sc.subFunc();
}
}
package com.care.ex04;
import org.springframework.context.support.GenericXmlApplicationContext;
public class SubClass {
public void subFunc() {
//CarService car = new CarServiceImpl02();
GenericXmlApplicationContext ctx =
new GenericXmlApplicationContext("classpath:application_car.xml");
CarService car = ctx.getBean("car", CarService.class);
System.out.println("서브 클래스 자동차!!");
car.speed();
}
}
실행 결과
SPRING web 설정
pom.xml -
자바 버전 변경 : <java-version>1.8</ java- version>
스프링 버전 변경 : <org.springframework-version>5.2.1.RELEASE</org.springframework-version>