parameter

2024. 2. 12. 15:56Daily Codig Reminder

initparam/multi

 

initparam

web.xml에 경로 변경시

servlet-context.xml 자리 변경

<param-value>/WEB-INF/appservlet-context.xml</param-value>

 

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee https://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

	<!-- The definition of the Root Spring Container shared by all Servlets and Filters -->
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>/WEB-INF/spring/root-context.xml</param-value>
	</context-param>
	
	<!-- Creates the Spring Container shared by all Servlets and Filters -->
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>

	<!-- Processes application requests -->
	<servlet>
		<servlet-name>appServlet</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>/WEB-INF/appservlet-context.xml</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>
		
	<servlet-mapping>
		<servlet-name>appServlet</servlet-name>
		<url-pattern>/</url-pattern>
	</servlet-mapping>

</web-app>

 

 

multi

bean 생성

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"/>
<property name="suffix" value=".jsp"/>
</bean>
<bean class="com.controller.FirstController" id="xxx"></bean>
<bean class="com.controller.SecondController" id="yyy"></bean>
</beans>

 

 

@Controller
public class SecondController {
	public SecondController() {
		super();
		System.out.println(" 요청");
	}
	@RequestMapping("/kkk2" )//get, post 둘다 처리
	public String kkk() {//servlet과 동일
		System.out.println("/kkk2 요청");
		return "hello2";//응답요청을 할 jsp 파일이름 test.jsp
	}
}

 

 

@Controller
public class FirstController {
	public FirstController() {
		super();
		System.out.println(" 요청");
	}
	@RequestMapping("/kkk" )//get, post 둘다 처리
	public String kkk() {//servlet과 동일
		System.out.println("/kkk 요청");
		return "hello";//응답요청을 할 jsp 파일이름 test.jsp
	}
}

 

 

multi2

controller 2개 각각 

 

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"/>
<property name="suffix" value=".jsp"/>
</bean>
<bean class="com.controller.FirstController" id="xxx"></bean>
</beans>

 

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"/>
<property name="suffix" value=".jsp"/>
</bean>
<bean class="com.controller.SecondController" id="yyy"></bean>
</beans>

param에 추가

<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>/WEB-INF/spring/appServlet/servlet-context.xml
/WEB-INF/spring/appServlet/servlet-context2.xml</param-value>
		</init-param>

 

 

 

multi3

second

http://localhost:8010/app/second/kkk

 

@Controller
@RequestMapping("/second")
public class SecondController {
	public SecondController() {
		super();
		System.out.println(" 요청");
	}
	@RequestMapping("/kkk" )//  /second/kkk
	public String kkk() {//servlet과 동일
		System.out.println("/kkk2 요청");
		return "hello2";//응답요청을 할 jsp 파일이름 test.jsp
	}
	@RequestMapping("/kkk2" )//  /second/kkk
	public String kkk2() {//servlet과 동일
		System.out.println("/kkk2 요청");
		return "hello2";//응답요청을 할 jsp 파일이름 test.jsp
	}
}

 

 

first

http://localhost:8010/app/first/kkk

@Controller
@RequestMapping("/first")
public class FirstController {
	public FirstController() {
		super();
		System.out.println(" 요청");
	}
	@RequestMapping("/kkk" )//get, post 둘다 처리
	public String kkk() {//servlet과 동일
		System.out.println("/kkk 요청");
		return "hello";//응답요청을 할 jsp 파일이름 test.jsp
	}
}

 

 

 

 

@RequestMapping_method

 

main

package com.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
public class TestController {
	public TestController() {
		super();
		System.out.println(" 요청");
	}
	@RequestMapping(value="/login" , method = RequestMethod.GET )//get, post 둘다 처리
	public String loginForm() {//servlet과 동일
		System.out.println("/loginForm 요청");
		return "loginForm";//응답요청을 할 jsp 파일이름 test.jsp
	}
	@RequestMapping(value="/login" , method = RequestMethod.POST )//get, post 둘다 처리
	public String login() {//servlet과 동일
		System.out.println("/login 요청");
		return "login";//응답요청을 할 jsp 파일이름 test.jsp
	}
	@RequestMapping("/main" )//get, post 둘다 처리
	public String main() {//servlet과 동일
		System.out.println("/main 요청");
		return "main";//응답요청을 할 jsp 파일이름 test.jsp
	}
}

 

 

loginForm

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page session="false" %>
<html>
<head>
	<title>Home</title>
</head>
<body>
<h1>
	loginForm.jsp
</h1>
<form action="login"  method="post">
post<br>
id: <input type="text" name="username" required="required"><br>
password: <input type="text" name="password" required="required"><br>
<input type="submit" value="submit"> 
</form>
<hr>
<form action="login"  method="get">
get<br>
id: <input type="text" name="username" required="required"><br>
password: <input type="text" name="password" required="required"><br>
<input type="submit" value="submit"> 
</form>
</body>
</html>

 

 

main

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page session="false" %>
<html>
<head>
	<title>Home</title>
</head>
<body>
<h1>
	main.jsp
</h1>
<a href="login">loginForm</a>
</body>
</html>

 

 

login

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page session="false" %>
<html>
<head>
	<title>Home</title>
</head>
<body>
<h1>
	logined
</h1>

</body>
</html>

 

 

http://localhost:8011/user/login?kkk=c

@Controller
public class TestController {
	@RequestMapping("/"  )
	public String main() {
		System.out.println("/TestController 요청");
		return "login";
	}
	@RequestMapping(value =  "/login", params = "aaa=bbb"  )
	public String loginForm() {
		System.out.println("/TestController aaa=bbb 요청");
		return "login";
	}
	@RequestMapping(value =  "/login", params = "aaa=ccc"  )
	public String login() {
		System.out.println("/TestController aaa=ccc 요청");
		return "login";
	}
	@RequestMapping(value =  "/login", params = "xxx"  )
	public String login2() {
		System.out.println("/TestController xxx=아무값 요청");
		return "login";
	}
	@RequestMapping(value =  "/login",method = RequestMethod.GET, params = "kkk=b"  )
	public String x() {
		System.out.println("/TestController kkk=b");
		return "login";
	}
	@RequestMapping(value =  "/login",method = RequestMethod.GET, params = "kkk=c"  )
	public String y() {
		System.out.println("/TestController.y kkk=c");
		return "login";
	}

 

 

@RequestMapping("/hello")
public class HelloController {
public HelloController() {
		super();
		System.out.println("HelloController");
	}

	@RequestMapping( "/login")
	public String login() {
		System.out.println("/login 요청");
		return "login";
	}

 

@RequestMapping("/test")
public class TestController {
public TestController() {
		super();
		System.out.println("TestController");
	}
	@RequestMapping( "/login")
	public String login() {
		System.out.println("/ test/login  요청");
		return "login";
	}
	@RequestMapping( "/main")
	public String main() {
		System.out.println("/ test/main  요청");
		return "main";
	}

 

경로 중요!!!!!!!!!!!!!!!

<h1>
	main.jsp
</h1>
<a href="login">login</a><br>
<a href="../hello/login">login2</a><br>
<a href="/userapp/hello/login">login3</a><br>
<a href="<%=request.getContextPath() %>/hello/login">Hello/login</a>

 

 

 

config_initParam

 

bean

<!-- view부분에 대한 경로와 .jsp 설정하는  InternalResourceViewResolver-->
	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="prefix" value="/WEB-INF/views/"></property>
		<property name="suffix" value=".jsp"></property>
	</bean>
	
	
	<bean id="service" class="com.controller.TestService"></bean>
	<bean id="person" class="com.controller.Person">
		<constructor-arg name="name" value="홍길동"></constructor-arg>
		<constructor-arg name="age" value="10"></constructor-arg>
	</bean>
	<bean id="xxx" class="com.controller.TestController">
		<!-- <property name="person" ref="person"></property>
		<property name="service" ref="service"></property>  -->
	</bean>

 

 

service

package com.controller;

public class TestService {
	public String xx() {
		return "TestService";
	}
}

 

 

person

package com.controller;

public class Person {
	String name;
	int age;
	public Person(String name, int age) {
		super();
		this.name = name;
		this.age = age;
	}
	public Person() {
		super();
		// TODO Auto-generated constructor stub
	}
	@Override
	public String toString() {
		return "Person [name=" + name + ", age=" + 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;
	}
	
}

 

 

testController

package com.controller;

import org.springframework.stereotype.Controller;
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.RequestMethod;

@Controller
public class TestController {
	TestService service;
	Person person;
//	
		public TestController() {
			System.out.println("TestController 기본생성자 호출 ");
			service= new TestService();
			person= new Person("홍길동", 10);
		}
	//http://localhost:8090/app1/xxx
		@RequestMapping(value = "/xxx", method = RequestMethod.GET)
		public String sayEcho() {
			System.out.println("/xxx 주소 요청==============");
			System.out.println(person);
			System.out.println(service.xx());
//			Person p = new  Person("홍길동", 10);
//			System.out.println(p);
//			 TestService serivce= new TestService();
//			 System.out.println(serivce.xx());
			return "login";//login.jsp 
		}
		@RequestMapping(value = "/xxx", method = RequestMethod.POST)
		public String sayEcho2() {
			System.out.println("/xxx2 주소 요청==============");
			Person p = new  Person("홍길동", 10);
			System.out.println(p);
			TestService serivce2= new TestService();
			System.out.println(serivce2.xx());
			return "main";//login.jsp 
		}
//	
//	public TestService getService() {
//		return service;
//	}
//
//	public void setService(TestService service) {
//		this.service = service;
//	}
//	public Person getPerson() {
//		return person;
//	}
//	public void setPerson(Person person) {
//		this.person = person;
//	}
}

 

/xxx 요청

Person [name=홍길동, age=10]

TestService /xxx2 요청

Person [name=홍길동, age=10]

TestService

 

1 ⇒get set 만 있음

 

@Controller
public class TestController {

	private TestService service;
	 private Person person;

@RequestMapping("/xxx" )//get, post 둘다 처리
public String xxx() {//servlet과 동일
	System.out.println("/xxx 요청");
	System.out.println(person);
	System.out.println(service.xx());
	return "login";//응답요청을 할 jsp 파일이름 test.jsp
}
@RequestMapping("/xxx2" )//get, post 둘다 처리
public String xxx2() {//servlet과 동일
	System.out.println("/xxx2 요청");
	System.out.println(person);
	System.out.println(service.xx());
	return "login";//응답요청을 할 jsp 파일이름 test.jsp
}


public TestService getService() {
	return service;
}
public void setService(TestService service) {
	this.service = service;
}
public Person getPerson() {
	return person;
}
public void setPerson(Person person) {
	this.person = person;
}

 

 

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"/>
<property name="suffix" value=".jsp"/>
</bean>
<bean id="service" class="com.controller.TestService"></bean>
	<bean id="person" class="com.controller.Person">
		<constructor-arg name="name" value="홍길동"></constructor-arg>
		<constructor-arg name="age" value="10"></constructor-arg>
	</bean>
	<bean id="xxx" class="com.controller.TestController">
		<property name="person" ref="person"></property>
		<property name="service" ref="service"></property>
	</bean>

 

 

2⇒Autowired

 

@Controller
public class TestController {
	@Autowired
	TestService service;
	@Autowired
	Person person;
	
	//http://localhost:8090/app1/xxx
		@RequestMapping(value = "/xxx")
		public String sayEcho() {
			System.out.println(service.xx()+"\t"+person.toString());
			return "login";
		}
	
	public TestService getService() {
		return service;
	}



	public void setService(TestService service) {
		this.service = service;
	}



	public Person getPerson() {
		return person;
	}



	public void setPerson(Person person) {
		this.person = person;
	}

 

<context:annotation-config></context:annotation-config><!-- ////////// -->
		<!-- view부분에 대한 경로와 .jsp 설정하는  InternalResourceViewResolver-->
	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="prefix" value="/WEB-INF/views/"></property>
		<property name="suffix" value=".jsp"></property>
	</bean>
	
	<bean id="service" class="com.controller.TestService"></bean>
	<bean id="person" class="com.controller.Person">
		<constructor-arg name="name" value="홍길동"></constructor-arg>
		<constructor-arg name="age" value="10"></constructor-arg>
	</bean>
	<bean id="xxx" class="com.controller.TestController">
	<!-- 	<property name="person" ref="person"></property>
		<property name="service" ref="service"></property> -->
	</bean>

 

3⇒ servlet-context/ root-context 나누기

 

servlet

<context:annotation-config></context:annotation-config><!-- ////////// -->
		<!-- view부분에 대한 경로와 .jsp 설정하는  InternalResourceViewResolver-->
	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="prefix" value="/WEB-INF/views/"></property>
		<property name="suffix" value=".jsp"></property>
	</bean>
	
<!-- 	<bean id="service" class="com.controller.TestService"></bean>
	<bean id="person" class="com.controller.Person">
		<constructor-arg name="name" value="홍길동"></constructor-arg>
		<constructor-arg name="age" value="10"></constructor-arg>
	</bean> -->
	<bean id="xxx" class="com.controller.TestController">
	<!-- 	<property name="person" ref="person"></property>
		<property name="service" ref="service"></property> -->
	</bean>

 

root

<bean id="service" class="com.controller.TestService"></bean>
	<bean id="person" class="com.controller.Person">
		<constructor-arg name="name" value="홍길동"></constructor-arg>
		<constructor-arg name="age" value="10"></constructor-arg>
	</bean>

controller 같음

 

parameter 별이 다섯개 🌟🌟🌟🌟🌟

package com.controller;

import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;

import com.dto.LoginDTO;

@Controller
public class TestController {
	@RequestMapping(value = "/login", method = RequestMethod.GET )//get, post 둘다 처리
	public String login() {//servlet과 동일
		System.out.println("/login요청");
		return "loginForm";//응답요청을 할 jsp 파일이름 test.jsp
	}
	//dto
	@RequestMapping(value = "/login", method = RequestMethod.POST )//get, post 둘다 처리
	public String login1(LoginDTO dto) {//servlet과 동일
System.out.println("/login post"+dto);
	
		return "login";//응답요청을 할 jsp 파일이름 test.jsp
	}
	//데이터 1개만 받기
	@RequestMapping(value = "/login7")//get, post 둘다 처리
	public String login7(HttpServletRequest request) {//servlet과 동일
		String id = request.getParameter("userid");
		String pw = request.getParameter("passwd");
System.out.println("/login7"+id+"  : "+pw);
	
		return "login";//응답요청을 할 jsp 파일이름 test.jsp
	}
	//loginForm.jsp 수정 login2
	@RequestMapping(value = "/login2")//get, post 둘다 처리
	public String login2(@RequestParam("userid") String id,
			@RequestParam("passwd") String pw) {//servlet과 동일
	System.out.println("@RequestParam(\"userid\")" +id+
			"@RequestParam(\"passwd\")" +(pw+100));
		return "login";//응답요청을 할 jsp 파일이름 test.jsp
	}
	@RequestMapping(value = "/login2_1")//get, post 둘다 처리
	public String login2_1(@RequestParam("userid") String id,
			@RequestParam("passwd") int pw) {//형변환자동
	System.out.println("@RequestParam(\"userid\")" +id+
			"@RequestParam(\"passwd\")" +(pw+100));
		return "login";//응답요청을 할 jsp 파일이름 test.jsp
	}
	//form 에서의 name 거ㅏ 매개변수 name 같게 사용
	@RequestMapping(value = "/login3")//get, post 둘다 처리
	public String login3(@RequestParam String userid,
			@RequestParam int passwd) {//형변환자동
	System.out.println("@RequestParam userid" +userid+
			"@RequestParam passwd" +(passwd+100));
		return "login";//응답요청을 할 jsp 파일이름 test.jsp
	}
	//form 에서의 name 거ㅏ 매개변수 name 같게 사용
	@RequestMapping(value = "/login4")//get, post 둘다 처리
	public String login4(String userid, int passwd) {//형변환자동
	System.out.println("userid" +userid+
			"passwd" +passwd);
		return "login";//응답요청을 할 jsp 파일이름 test.jsp
	}
	//form 에서의 name 거ㅏ 매개변수 name 같게 사용
	@RequestMapping(value = "/login5")//get, post 둘다 처리
	public String login5(@RequestParam(required = false, defaultValue = "홍길동")
	String userid, int passwd) {//형변환자동
	System.out.println("userid" +userid+
			"passwd" +passwd);
		return "login";//응답요청을 할 jsp 파일이름 test.jsp
	}
	//form 에서의 name 거ㅏ 매개변수 name 같게 사용 error
	@RequestMapping(value = "/login5_1")//get, post 둘다 처리
	public String login5_1(@RequestParam
	String userid, int passwd) {//형변환자동
	System.out.println("userid" +userid+
			"passwd" +passwd);
		return "login";//응답요청을 할 jsp 파일이름 test.jsp
	}
	@RequestMapping(value = "/login6")//get, post 둘다 처리
	public String login6(@RequestParam Map<String, String> m){//형변환자동
	System.out.println("Map<String, String> "+ m);
		return "login";//응답요청을 할 jsp 파일이름 test.jsp
	}
	//@RequestParam 안쓰면 error
	@RequestMapping(value = "/login6_1")//get, post 둘다 처리
	public String login6_1( Map<String, String> m){//형변환자동
	System.out.println("Map<String, String> "+ m);
		return "login";//응답요청을 할 jsp 파일이름 test.jsp
	}
	
	@RequestMapping(value = "/login7")//get, post 둘다 처리
	public String login7( Map<String, String> m){//형변환자동
	System.out.println("Map<String, String> "+ m);
		return "login";//응답요청을 할 jsp 파일이름 test.jsp
	}
}

'Daily Codig Reminder' 카테고리의 다른 글

handler, response, json  (0) 2024.02.16
parameter, session  (0) 2024.02.16
mybatis  (1) 2024.02.12
spring- jdbc  (1) 2024.02.08
@Autowired, CoC ,@Qualifier ,lifecycle  (1) 2024.02.08