본문 바로가기

Spring

ajax

index

<%@ 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>
<%
	response.sendRedirect("hello.do");
%>
</body>
</html>  

 

 

HelloController.java

package bit.com.a;

import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import bit.com.a.dto.Human;
import bit.com.a.dto.MyClass;

@Controller
public class HelloController {
	
	private static Logger logger = LoggerFactory.getLogger(HelloController.class);
	
	
	//1번 
	@RequestMapping(value = "hello.do", method = RequestMethod.GET)
	public String hello(Model model) {
		logger.info(" hello " + new Date());	//hello는 메소드
		
		MyClass cls = new MyClass(1001, "홍길동");
		model.addAttribute("mycls", cls);	//setAttribute와 동일, 짐싸  
		
		return "hello";	//가야 될 .jsp파일 
	}
	
	
	//2번
	@RequestMapping(value = "move.do", method = RequestMethod.GET)
	public String move() {
		logger.info(" move " + new Date());
		
		
		//	이동만 
		return "redirect:/hello.do";	//sendRedirect와 동일하며 컨드롤러->컨트롤러 이동방법 
		
		//	짐가지고 이동 		
		//return "forward:/hello.do"; //forward
	}
		
		
	//3번  
	@ResponseBody	//ajax 사용시 반드시 추가할 것 
	@RequestMapping(value = "idcheck.do", method = RequestMethod.GET,
				produces = "application/String; charset=utf-8")
	public String idcheck(String id) {
		logger.info(" idcheck " + new Date());
		logger.info(" id: " + id);
		
		String str = "오케이";
		return str;
	}
	
	
	
	// 4번  
	@ResponseBody
	@RequestMapping(value = "account.do", method = RequestMethod.POST)
	public Map<String, Object> account(Human my){
		logger.info("account" + new Date());
		logger.info(my.toString());		//콘솔에 
		
		//DB로 접근하는 처리
		Map<String, Object> map = new HashMap<String, Object>();
		map.put("message", "내가보낸 메세지입니다");
		map.put("name", "정수동");
		
		
		return map;
	}
	
	
	
	//5번 
	@ResponseBody
	@RequestMapping(value = "updateUser.do", method = RequestMethod.POST)
	public Map<String, Object> updateUser(@RequestBody Map<String, Object> map){	//map으로 받아 들이는데 필요함
		logger.info("updateUser"+ new Date());
		
		logger.info(map.get("name")+"");	//name은 Object라서 ""로 info에 문자열로 넣어줌
		logger.info(map.get("tel")+"");
		logger.info(map.get("email")+"");
		logger.info(map.get("birth")+"");
		
		
		//DB로 접근하는 처리
		Map<String, Object> rmap = new HashMap<String, Object>();
		rmap.put("message", "내가보낸 메세지2");
		rmap.put("test", "리멥");
		
		
		return rmap;
	}
		
		
		
	
	@ResponseBody
	@RequestMapping(value = "pass.do", method = RequestMethod.POST)
	public List<MyClass> mylist(MyClass mycls){
		logger.info(mycls.toString());
		
		List<MyClass> list = new ArrayList<MyClass>();
		
		//list.add(index, element);
		list.add(0, new MyClass(1,"a"));
		
		return list;
	}
}

 

 

 

 

 

 

 

 

hello.jsp

<%@page import="bit.com.a.dto.MyClass"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>hello</title>
<script type="text/javascript" src="http://code.jquery.com/jquery-2.1.4.js"></script> 
</head>
<body>

<h3>hello</h3>

<!-- 1번 : HelloController  -->
<%
	MyClass cls = (MyClass)request.getAttribute("mycls");
%> 
number:<%=cls.getNumber() %><br>
name:<%=cls.getName() %><br>

<br><br>

<!-- EL tag 사용  -->
number:${mycls.number }<br>
name:${mycls.name }<br>





<!--2번 -->
<form action="move.do">
<input type="submit" value="move">
</form>
<br><br>




<!-- 3번  -->
아이디:<input type="text" id="checkid"><br>
<br>
<button type="button" id="_check" onclick="idcheck()">id check</button>


<script type="text/javascript">
function idcheck(){

	$.ajax({
			url:"./idcheck.do",
			type:"get",
			//data:"id="+$("#checkid").val(),
			data:{ id:$("#checkid").val()},
			success:function( data ){
				alert('success');
				alert(data);
			},
			error:function(){
				alert('error');
			}
		});
	
}

</script>
<br><br>









<!-- 4번 : 여러명의데이터 -->
<!-- 
	Json(jsp) -> Object(-map)(controller) -> json(-String)(jsp)
 -->
이름:<input type="text" id="_name" value="홍길동"><br>
전화:<input type="text" id="_phone" value="123-4567"><br>
이메일:<input type="text" id="_email" value="hgd@naver.com"><br>
생년월일:<input type="text" id="_birth" value="2001/11/23"><br>
<button type="button" id="account">회원가입</button>

<script type="text/javascript">
$("#account").click(function() {
	//alert('account');

	//Json으로 묶어 -> Controller 로 받음
	// 그 후 Controller에서 Map 으로 받음 

	let human = {
		name:$("#_name").val(),
		tel:$("#_phone").val(),
		email:$("#_email").val(),
		birth:$("#_birth").val()
	};

	$.ajax({
		url:"./account.do",
		type:'post',
		dataType:'json',
		data:human,
		async:true,
		success:function( resp ){
			//alert('success');
			alert(resp.message);	//내가보낸 메세지입니
			alert(resp.name);		//정수동 
		},
		error:function(){
			alert('error');
		}


	});
		
	
});
</script>




<!-- 5번 : 한명의 데이터  -->
<!-- 
	Json(jsp) -> Object(controller) -> Json(jsp)
 -->
<br><br>

이름:<input type="text" id="name1" value="육"><br>
전화:<input type="text" id="phone1" value="111-6666"><br>
이메일:<input type="text" id="email1" value="aaa@naver.com"><br>
생년월일:<input type="text" id="birth1" value="2020-09-01"><br>
<button type="button" id="account1">회원가입</button>

<script type="text/javascript">
$("#account1").on("click",function(){
	//alert('account1');

	let data = {};

	data["name"] = $("#name1").val();
	data['tel'] = $("#phone1").val();
	data['email'] = $("#email1").val();

	let birth = $("#birth1").val();	//날짜인 경우에
	data["birth"] = birth.replace(/-/g, "");		//날짜가 2020-12-26이렇게 쓰여있어야 -> 20201226으로 토큰삭제
	//alert(data["birth"]);

	$.ajax({
		url:"updateUser.do",
		type:"post",
		datatype:'json',
		data:JSON.stringify(data),		//Json을 문자열로 변경 JSON.stringify(str) <-> parse
		contentType:'application/json',
		success:function(resp){
			alert('success');
			alert(resp.message);	//내가보낸 메세지2 
			alert(resp.test);		//리멥 
		},
		error:function(){
			alert('error');
		}
	});
		
});

</script>






<!-- 연습문제 -->
<!--
	입력: number, name
	받아서 Json으로 보내면 
	
	controller에서 받아서 list (3개데이터) 로 보내고 web에서 확인하기 
 -->
<br><br>
숫자입력 : <input type="text" id="num">
이름입력 : <input type="text" id="name">
<button type="button" id="_pass">제출</button>
<br>
<script type="text/javascript">
$("#_pass").click(function() {
	alert('gg');
	let data = {};

	data["name"] = $("#name").val();
	data["number"] = $("#num").val();
	
	
	$a.jax({
		url:"pass.do",
		type:"post",
		data:{ number:$("#num".val(), name:$("#name").val())}
		success: function(list){
			alert('success');
			alert(JSON.stringify(list));
		},
		error:function(){
			alert('error');
		}
	});
});

</script>


</body>
</html>

 

 

 

WEB-INF/web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">
  <display-name>sample01</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  
  <servlet>
  	<servlet-name>dispatcherServlet</servlet-name>
  	<servlet-class>
  		org.springframework.web.servlet.DispatcherServlet
  	</servlet-class>
  	
  	
  	<!-- servlet-context.xml파일을 불러 -->
  	<init-param>
  		<param-name>contextConfigLocation</param-name>
  		<param-value>
  			/WEB-INF/spring/servlet-context.xml
  		</param-value>
  	</init-param>
  	
  	<load-on-startup>1</load-on-startup>
  	
  </servlet>
  
  <servlet-mapping>
  	<servlet-name>dispatcherServlet</servlet-name>
  	<!-- <url-pattern>/</url-pattern> -->
  	<url-pattern>*.do</url-pattern>
  </servlet-mapping>
  
  
  
  
  
  

  
  
  
  
  <!-- filter : 중간처리   A -> B -->
  <!-- 한글 설정 -->
  <filter>
  	<filter-name>encodingFilter</filter-name>
  	<filter-class>
  		org.springframework.web.filter.CharacterEncodingFilter
  	</filter-class>
  	
  	<init-param>
  		<param-name>encoding</param-name>
  		<param-value>UTF-8</param-value>
  	</init-param>
  	
  	<init-param>
  		<param-name>forceEncoding</param-name>
  		<param-value>true</param-value>
  	</init-param>  	
  </filter>
  
  <filter-mapping>
  	<filter-name>encodingFilter</filter-name>
  	<url-pattern>/*</url-pattern>
  </filter-mapping>
  
</web-app>

 

 

 

 

 

WEB-INF/spring/

sevlet-context.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd
		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">

	<!-- spring MVC annotation(주석문, 지시문)을 사용하기 위한 설정 -->
	<context:annotation-config />
	
	<!-- viewResolver 설정(사용자의 view의 위치, 확장자 명) -->
	<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="prefix" value="/WEB-INF/views/"></property>	<!-- view경로 -->
		<property name="suffix" value=".jsp"></property>			<!-- 확장자명 -->
	</bean>
	
	<!-- 
	InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
	viewResolver.prefix = "/WEB-INF/views/";
	viewResolver.suffix = ".jsp";
	 -->
	
	<!-- java 공통 팩키지 -->
	<context:component-scan base-package="bit.com.a" />


	<!-- ajax 주석문 사용 허가  -->
	<mvc:annotation-driven/>
	
	<!-- spring에서 처리 할 수 없는 요청은 tomcat에 위임하겠다  -->
	<mvc:default-servlet-handler/>
</beans>

'Spring' 카테고리의 다른 글

자료실 스프링  (0) 2020.09.14
tiles 타일즈로 화면넘기기(예)  (0) 2020.09.09
페이지네이션 pagination 파일  (0) 2020.09.09
페이징/서치/search jsp로 불러오기  (0) 2020.09.09
코어, 타일즈 태그  (0) 2020.09.07