JSP를 사용한 설정 | ||
build.gradle > 의존성 | application.properties | 폴더 생성 |
구현하다 ‘javax.servlet:jstl’
구현하다 ‘org.apache.tomcat.embed:tomcat-embed-jasper’ |
서버.포트=8081
spring.mvc.view.prefix=/WEB-INF/조회수/ spring.mvc.view.suffix=.jsp |
소스 > 메인 > 웹앱 > WEB-INF > 보기 |
MVC(모델-뷰-컨트롤러) | ||
모델 사용 | 보기 사용 방법 | 모델과 뷰를 사용하는 방법 |
● 컨트롤러 메서드의 매개변수로 선언 속성 추가(속성 이름, 값) |
${속성 이름} | 제어 장치 메서드 반환 유형 => ModelAndView 메서드에 선언 ModelAndView mv = new ModelAndView(); 속성 값 할당 mv.addObject(속성 이름, 값); 명명된 뷰 mv.setViewName(JSPv 파일 이름); 반품 반환 MV; |
<代码>
package com.human.springboot;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class MyController {
@GetMapping("/test")
public ModelAndView test() {
ModelAndView mv = new ModelAndView();
String nickname = "홍길동";
mv.addObject("nickname",nickname);
mv.addObject("mobile","12345678");
mv.addObject("birthday",1443);
mv.setViewName("root");
return mv;
}
}
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!
DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello World</title>
</head>
<body>
${nickname}<br>
${mobile}<br>
${birthday}<br>
</body>
</html>
<结果>
JSTL 라이브러리 대신 사용할 항목(build.gradle에서) |
‘jakarta.servlet:jakarta.servlet-api’ 구현 ‘jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api’ 구현 ‘org.glassfish.web:jakarta.servlet.jsp.jstl’ 구현 |
for 문을 실행하여 alMenu의 내용을 표시합니다.
<代码>
내 컨트롤러
package com.human.springboot;
import java.util.ArrayList;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class MyController {
@GetMapping("/test1")
public String test1(Model model) {
ArrayList<String> alMenu = new ArrayList<String>();
alMenu.add("Latte");
alMenu.add("Americano");
alMenu.add("GreenTea");
alMenu.add("Mocca");
model.addAttribute("menu",alMenu);
return "test1";
}
}
테스트 1
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!
DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Test</title>
</head>
<body>
Cafe입니다.
<br>
#웹서버에서 처리를 끝낸다.
<c:forEach var="name" items="${menu}">
${name}<br>
</c:forEach>
</body>
</html>
build.gradle: 반환하려면 포함해야 합니다.
plugins {
id 'java'
id 'war'
id 'org.springframework.boot' version '3.0.2'
id 'io.spring.dependency-management' version '1.1.0'
}
group = 'com.human'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '17'
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
implementation 'jakarta.servlet:jakarta.servlet-api'
implementation 'jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api'
implementation 'org.glassfish.web:jakarta.servlet.jsp.jstl'
implementation 'org.apache.tomcat.embed:tomcat-embed-jasper'
}
tasks.named('test') {
useJUnitPlatform()
}
<结果>
<代码>
시험
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!
DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Test</title>
</head>
<body>
<%
for(int i=2;i<10;i++){
for(int j=1;j<10;j++){
out.println(i+"x"+j+"="+(i*j)+"<br>");
}
}
%>
</body>
</html>
<结果>
<代码>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!
DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Test</title>
</head>
<body>
<%
out.println("<table border=1>");
for(int i=2;i<10;i++){
out.println("<tr>");
for(int j=1;j<10;j++){
out.println("<td>"+(i*j)+"</td>");
}
out.println("</tr>");
}
out.println("</table>");
%>
</body>
</html>
<结果>
보기에서 데이터를 보내는 방법 | ||
<来自> 상표 | 아약스 | 요청 매개변수 |
컨트롤러에서 데이터를 받는 방법 |
HttpServlet 요청 사용 클래스 문자열 값 = 매개변수 가져오기(매개변수 이름) |
요청 매개변수 | |
URL?키 1=값 1&키 2=value2&…&keyN=valueN => URL에서 값을 삽입하는 방법 httpServletReaust 등록 값 = reg.getParameter(“키”) |
|
document.laction=”http://localhost:8081/show?mobile=12345678&city=Jeju” => Java에서 직접 삽입하는 방법 | |
http://localhost:8081/ 보여줍니다?mobile=12345678&city=제주도 | |
http://localhost:8081/ 보여줍니다 | 주소 |
?mobile=12345678&city=제주도 | 요청 매개변수 |
<代码>
package com.human.springboot;
import java.util.ArrayList;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.servlet.ModelAndView;
import jakarta.servlet.http.HttpServletRequest;
@Controller
public class MyController {
@GetMapping("/show")
public String show(HttpServletRequest req, Model model) {
String str1 = req.getParameter("mobile");
String str2 = req.getParameter("city");
model.addAttribute("phone",str1);
model.addAttribute("region",str2);
return "show";
}
}
디스플레이 코드
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!
DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Show</title>
</head>
<body>
phone: ${phone}<br>
region: ${region}
</body>
</html>
<结果>
<作业>
url:/gugu?dan=4를 실행하면 4개의 컬럼이 생성되어 표시된다.
<代码>
내 컨트롤러
package com.human.springboot;
import java.util.ArrayList;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.servlet.ModelAndView;
import jakarta.servlet.http.HttpServletRequest;
@Controller
public class MyController {
@GetMapping("/gugu")
public String gugu(HttpServletRequest req, Model model) {
String str1 = req.getParameter("dan");
model.addAttribute("gugudan",str1);
int i;
for(i=1;i<10;i++) {
int n = Integer.parseInt(str1);
model.addAttribute("gugudan"+i,n+"x"+i+"="+(n*i));
}
return "gugu";
}
}
cuckoo.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>
${gugudan}<br>
${gugudan1}<br>
${gugudan2}<br>
${gugudan3}<br>
${gugudan4}<br>
${gugudan5}<br>
${gugudan6}<br>
${gugudan7}<br>
${gugudan8}<br>
${gugudan9}<br>
</body>
</html>
<结果>
<作业>
a와 b의 최대 공약수와 최소 공배수를 찾으십시오. 이름은 common.jsp입니다.
<代码>
내 컨트롤러
package com.human.springboot;
import java.util.ArrayList;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.servlet.ModelAndView;
import jakarta.servlet.http.HttpServletRequest;
@Controller
public class MyController {
@GetMapping("/common")
public String common(HttpServletRequest req, Model model) {
String str1 = req.getParameter("a");
String str2 = req.getParameter("b");
int i;
int max = 0;
int a1 = Integer.parseInt(str1);
int b1 = Integer.parseInt(str2);
model.addAttribute("a",a1);
model.addAttribute("b",b1);
for(i=1; i<=a1 && i<=b1; i++) {
if(a1%i==0 && b1%i==0)
{
max=i;
}
}
int min = (a1*b1)/max;
model.addAttribute("max",max);
model.addAttribute("min",min);
return "common";
}
}
common.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>
a:${a}<br>
b:${b}<br>
최대공약수:${max}<br>
최소공배수:${min}<br>
</body>
</html>
<结果>
<作业>
테이블의 행과 열의 값을 받아서 테이블을 그립니다.
<代码>
package com.human.springboot;
import java.util.ArrayList;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.servlet.ModelAndView;
import jakarta.servlet.http.HttpServletRequest;
@Controller
public class MyController {
@GetMapping("/table")
public String table(HttpServletRequest req, Model model) {
String str1 = req.getParameter("row");
String str2 = req.getParameter("col");
int row1=Integer.parseInt(str1);
int col1=Integer.parseInt(str2);
model.addAttribute("row",row1);
model.addAttribute("col",col1);
String table="";
int count=1;
if(str1!
=null && str2!
=null) {
for(int i=0;i<row1;i++) {
table += "<tr>";
for(int j=0;j<col1;j++) {
table += "<td>"+count+"</td>";
count++;
}
table += "</tr>";
}
table +="</table>";
model.addAttribute("table","<table border=2 width=300 height=300 text=center>"+table);
}else if(str1.equals("")||str2.equals("")||str1==null||str2==null){
String err="행,열을 입력하세요";
model.addAttribute("err",err);
}
return "table";
}
}
form.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>
행 : ${row}<br>
열 : ${col}<br>
${table}
</body>
</html>
<结果>
왜… 내가 매트릭스에 들어갈 수 없다면, 매트릭스는 나에게 들어가라고 요구하지 않을 것입니다…
아아아아아아아아아아아아아아아아아아아아아아