2023.02.23

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>

<结果>


9번으로 왔습니다.

<代码>

<%@ 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>

<结果>


왜… 내가 매트릭스에 들어갈 수 없다면, 매트릭스는 나에게 들어가라고 요구하지 않을 것입니다…

아아아아아아아아아아아아아아아아아아아아아아