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>

<结果>


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

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