[0602]Java Web開発プロセス🌞
Spring MVC
共通urlの分離
package com.newlecture.web.controller.admin;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController("adminNoticeController")
@RequestMapping("/admin/notice/") // 공통 url로 분리 가능!
public class NoticeController {
@RequestMapping("list") // /admin/notice/list
public String list() {
return "admin notice list";
}
@RequestMapping("reg") // /admin/notice/reg
public String reg() {
return "admin notice reg";
}
@RequestMapping("edit") // /admin/notice/edit
public String edit() {
return "admin notice edit";
}
}
Spring Boot Devtools
サーバコードの変更時にサーバを自動的に起動するためのツール
Get, PostMapping
Getリクエストは
@GetMapping()
、Postリクエストは@PostMapping()
注釈に設定すればよい.// @RequestMapping(value = "reg", method = RequestMethod.GET)
@GetMapping("reg")
public String reg() { // get, post 요청 둘 다 필요
return "admin notice reg";
}
// @RequestMapping(value = "reg", method = RequestMethod.POST)
@PostMapping("reg")
public String reg(String test) { // get, post 요청 둘 다 필요
return "admin notice reg";
}
入力
test.NoticeControllerのregメソッドでhtml入力の値を画面に出力しましょう!
例1)request。getParameter()
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<form action="/admin/notice/reg" method="get">
<input type="text" name="x" value="0"><br>
<input type="text" name="y" value="0"><br>
<input type="submit" value="전송">
</form>
</body>
@GetMapping("reg")
public String reg(HttpServletRequest request) {
// 1. Servlet API를 이용한 방법(HttpServlet)
String x = request.getParameter("x"); // test.html에서 입력된 값
String y = request.getParameter("y"); // test.html에서 입력된 값
return String.format("x: %s, y: %s", x, y);
}
例2)@RequestParam()
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<form action="/admin/notice/reg" method="get">
<input type="text" name="f" value="0"><br>
<input type="text" name="x" value="0"><br>
<input type="text" name="y" value="0"><br>
<input type="submit" value="전송">
</form>
</body>
@GetMapping("reg") // get, post 요청 둘 다 필요
public String reg(
@RequestParam(name = "f") String field, // parameter로 f가 왔을 때 field라는 변수로 이름 변경
@RequestParam(defaultValue = "0") Integer x, // null, 빈 공백이 오면 기본값은 0, String을 Integer로 바꿔줌
@RequestParam(defaultValue = "0") Integer y, HttpServletRequest request) {
// return String.format("x_: %s, y_: %s", x_, y_) + "<br>"
return String.format("x: %d, y: %d, result: %d, field: %s", x, y, x+y, field);
}
例3)Cookie
@GetMapping("reg")
public String reg(
@RequestParam(name = "f") String field, // parameter로 f가 왔을 때 field라는 변수로 이름 변경
@RequestParam(defaultValue = "0") Integer x, // null, 빈 공백이 오면 기본값은 0, String을 Integer로 바꿔줌
@RequestParam(defaultValue = "0") Integer y,
@CookieValue(/*name = "test", */defaultValue = "hi") String test, // 쿠키가 없을 때 기본값: hi, 쿠키 변수 이름은 test
HttpServletResponse response
) {
if(test.equals("hi")) { // 쿠키가 없을 때는 쿠키를 담기
Cookie cookie = new Cookie("test", "hello"); // 키: test
cookie.setMaxAge(10*24*60*60); // expire되는 시간, 브라우저가 닫쳐도 10일 동안 쿠키가 유지됨
cookie.setPath("/"); // 루트 아래 모든 경로에서 쿠키가 유지됨
// 현재 path 이하에서만 쿠키를 볼 수 있도록 설정됨
// admin/notice/* (o)
// admin/notice/aa/bb/list (o)
response.addCookie(cookie); // 처음 요청 시에는 쿠키가 없지만 응답에는 Set-Cookie에 키가 심어져서 옴
// 다음에 페이지 재요청시 요청 헤더의 Cookie에 키값(query=hello)이 같이 감
}
return String.format("x: %d, y: %d, result: %d, field: %s, test cookie: %s, uid: %s, id: %d\n", x, y, x+y, field, test, uid, id);
}
Reference
この問題について([0602]Java Web開発プロセス🌞), 我々は、より多くの情報をここで見つけました https://velog.io/@minjulee97/0602-자바-웹-개발-과정テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol