728x90

 

 

remote 연결, 조회, 연결해제

 

remote 연결

원격저장소(remote) 연결하기

git remote add <name> <url>

ex)

git remote add origin [<https://github.com/neverGiveUpppppp/kh-workspace.git>](<https://github.com/neverGiveUpppppp/kh-workspace.git>)

 

 

remote 목록보기

연결된 원격저장소(remote) 목록보기

git remote -v 

 

현재 로컬에 연결된 remote 목록    

 

remote 삭제

해당 원격저장소(remote) 삭제

git remote remove 리모트명

 

728x90
반응형
728x90

 

<c:url>로 var변수를 만들고, value에 해당 url을 넣고

이 var 변수를 다른 button type="button"에서 onclick으로 불러내기

기존 버튼 온클릭에서 url 직접 입력에서 다른 코드로 한번 더 해봄

 

<%@ 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>Insert title here</title>

<link rel="stylesheet" type="text/css" href="${ pageContext.servletContext.contextPath }/resources/css/member-style.css"> 

<style>
	#myInfoTable td{text-align:center;}
</style>

</head>
<body>

	<c:import url="..common/menubar.jsp"/>
	
	<h1 align="center">'${ loginUser.name }'님의 정보 보기</h1>
	
	<div class="centerText">
		<table id="myInfoTable">
			<tr>
				<th>아이디</th>
				<td>${loginUser.id }</td>
			</tr>
			<tr>
				<th>이름</th>
				<td>${loginUser.name }</td>
			</tr>
			<tr>
				<th>닉네임</th>
				<td>${loginUser.nickName }</td>
			</tr>
			<tr>
				<th>성별</th>
				<c:if test="${loginUser.gender eq 'M' }">
					<td> 남성 </td>
				</c:if>
				<c:if test="${loginUser.gender eq  'F'}">
					<td> 여성 </td>
				</c:if>
			</tr>
			<tr>
				<th>나이</th>
				<td>${loginUser.age }</td>
			</tr>
			<tr>
				<th>이메일</th>
				<td>${ loginUser.email }</td>
			</tr>
			<tr>
				<th>전화번호</th>
				<td>${loginUser.phone }</td>
			</tr>
			<tr>
				<th>주소</th>
				<td>
					<c:forTokens var="ft" items="${loginUser.address }" delims="/" varStatus="vs">
						<c:if test="${vs.index eq 0 && ft >= '0' && ft <= '99999' }">
							(${ft })
						</c:if>
						<c:if test="${vs.index eq 0 && !(ft >= '0' && ft <= '99999')}">
							${ft }
						</c:if>
						<c:if test="${vs.index eq 1 }">
							${ft }
						</c:if>
						<c:if test="${vs.index eq 2 }">
							${ft }
						</c:if>
					</c:forTokens>
					
				</td>
			</tr>
			
			<tr>
				<td colspan="2"	align="center">
					<c:url var="mpwdUpdateView" value="mpwdUpdateView.me"/>
					<button type="button" onclick="${mpwdUpdateView}">비밀번호 수정</button>
					<button type="button" onclick="location.href='mupdateView.me'">정보수정</button>
					<c:url var="mdelete" value="mdelete.me"/>
					<button type="button" onclick="location.href='${ mdelete }'">회원탈퇴</button>
					<button type="button" onclick="home.do">시작페이지로</button>
				</td>
			</tr>
		</table>
	</div>




</body>
</html>
728x90
반응형
728x90

 

<목표>

따라치되 최대한 안보고 코딩하기

코딩 익숙해지기

구조 분석

세부코드 안보고 쓸 수 있게 되기

 

반복이 살 길이다!!!!!!!

 

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

<script src="${ contextPath }/resources/js/jquery-3.6.0.min.js"></script> 

<style>
	.nav{margin-left:auto; margin-right:auto; text-align:center;}
	.menu{
		display:inline-block; background:#e4fc41; text-align:center;
		line-height:50px; width:150px; height:50px; border-radius:20px;
		margin-left:5%; margin-right:5%;
	}
	.menu:hover{background:#b0c903; font-weight:bolder; cursor:pointer;}
	a:link{color:black; text-decoration:none;}
	a:visited{color:black; text-decoration:none;}
</style>

</head>
<body>

	<c:set var="contextPath" value="${ pageContext.servletContext.contextPath }" scope="application"/>
	
	<h1 align="center">first page & Spring</h1>
	<br>
	
	
	<div class="loginArea" align="right">
		<c:if test="${ empty sessionScope.loginUser }">	<!-- user가 로그인 안했으면 로그인하게 id,pw 보여주는 창 보여줌-->
			<form action="login.me" method="post">
				<table id="loginTable" style="text-align:center;">
					<tr>
						<td>아이디</td>
						<td><input type="text" name="id"></td>
						<td rowspan="2">
							<button id="loginBtn">로그인</button>
						</td>
					</tr>
					<tr>
						<td>비밀번호</td>
						<td><input type="password" name="pwd"></td>
					</tr>
					<tr>
						<td colspan="3">
							<button type="button" onclick="location.href='enrollView.me'">회원가입</button>
							<button type="button">아이디/비밀번호 찾기</button>"
						</td>					
					</tr>
				</table>
			</form>
		</c:if>
	
		<c:if test="${ empty sessionScope.loginUser }"> <!-- user가 로그인했으면 정보 변경, 로그아웃 등 보여줌 -->
			<h3 align="right"> <!-- h3태그 안에 c core와 button태그를 넣은게 신기 -->
				<c:out value="${ loginUser.name }님 환영합니다."/>
				<br>
				<c:url var="myinfo" value="myinfo.me"/>
				<c:url var="logout" value="logout.me"/>
				<button onclick="location.href='${myinfo}'">정보보기</button>
				<button onclick="location.href='${logout}'"	>로그아웃</button>
							<!-- c:url에서 var변수로 지정한 것을 버튼클릭하면 이동하게만듬 -->
			</h3>		
		</c:if>
	</div>
	

<!-- 위처럼 c:url을 통해서 지정할 수도 있지만 지금까지 해왔던 것처럼 바로 href에 url을 넣어도 상관없음 -->
	<div class="menubar">
		<div class="nav">
			<div class="menu"><a href="home.do">Home</a></div>
			<div class="menu"><a href="blist.bo">게시판</a></div>		
		</div>
	</div>


</body>
</html>

 

 

728x90
반응형
728x90

 

분명 수정 후 게시판 전체조회로 가게끔 url 설정을 해두었는데

수정하고 나서 print찍히는거보면 상세보기로 가게 되어있는 것이다.

url 지정도 제대로 했는데 왜 뜬금없이 상세보기의 print가 찍혔나 봤더니

 

form태그 하나 안에 버튼이 여러개인데 이것들이 충돌되고 이중에서 상세보기 url이 

남아있는 구조가 되어버려서 뜬금없이 일로 튀는 것처럼 보이게된 것

 

<form id="form" name="form" method="post">
    <button type="submit" onclick="javascript:form.action='adminNoticeUpdateForm.ad'">수정</button> 
    <button type="button" onclick="ConfirmDelete()">삭제</button> 
    <button type="submit" onclick="javascript:form.action='adminNoticeList.ad'">목록</button>
 </form>

위에 처럼 버튼에 각각 타입 지정해주고 온클릭에 자바스크립트 코드를 넣어서 해결함

이렇게 하면 하나의 폼태그에 버튼 태그 각각에 액션 속성을 주어 따로따로 url 갈 수 있게 된다

728x90
반응형
728x90

 

404는 정말 여러 원인이 있는데

대개 페이지이동 경로나 url 매핑 쪽 문제가 많다

 

메세지

HTTP 404 Origin 서버가 대상 리소스를 위한 현재의 representation을 찾지 못했거나, 그것이 존재하는지를 밝히려 하지 않습니다.

상황

페이징처리 코드 넣고 첫페이지는 잘 뜨는데 다른 번호 누르면 위의 에러메세지 뜸

원인

코드 따오는 과정에서 아래 이미지처럼 이동해야할 URL을 변경하지 않아 발생

해결

blist.bo를 컨트롤러에 등록한 url인 notice.bo(첫번째 이미지)로 교체

 

 

 

 

728x90
반응형
728x90

 

페이징처리 뷰단 코드 써보기

손코딩

 

<!-- 페이징처리 tr -->
		<tr align="center" height="20" id="buttonTab">
			<td colspan="6">
				<!-- prev -->
				<c:if test="${ pi.currentPage <= 1 }">
					[이전] &nbsp;
				</c:if>
				<c:if test="${ pi.currentPage > 1 }">
					<c:url var="before" value="blist.bo">
						<c:param name="page" value="${ pi.currentPage - 1 }"/>
					</c:url>
					<a href="${ before }">[이전]</a>&nbsp;
				</c:if>
			
				<!-- 페이지번호 -->
				<c:forEach var="p" begin="${pi.startPage }" end="${pi.endPage }">
					<c:if test="${ p == pi.currentPage }">
						<font color="red" size="4"><b>[${p}]</b></font>
					</c:if>
					
					<c:if test="${ p ne pi.currentPage }">
						<c:url var="pagination" value="blist.bo">
							<c:param name="page" value="${ p }"/>
						</c:url>
					</c:if>
					<a href="${ pagination }">${p}</a> &nbsp;
				</c:forEach>
				<!-- next -->
				<c:if test="${pi.currentPage >= maxPage }">
					[다음]
				</c:if>
				<c:if test="${pi.currentPage < pi.maxPage }">
					<c:url var="after" value="blist.bo">
						<c:param name="page" value="${pi.currentPage + 1 }"/>
					</c:url>
					<a href="${ after }">[다음]</a>
				</c:if>
			</td>
		</tr>
728x90
반응형
728x90

 

상당히 복잡한...

복붙해도 써도 되겠지만 안에 메커니즘을 이해하기 위해

손코딩 반복해보자

 

<h2>1.서버 쪽 컨트롤러로 값 보내기</h2>
    <button id="test1">테스트</button>
    <script>
        $('#test1').on('click',function(){
            $.ajax({

                url: 'test1.do',
                data:{name:'강건강', age:20},
                type: 'post',
                success: function(data){
                    console.log(data);
                    if(data = 'ok'){
                        alert('전송 성공');
                    }else{
                        alert('전송 실패');
                    }
                },
                error: function(data){
                    console.log(data);

                }
            });
        });
    </script>

 

728x90
반응형
728x90

 

 

jQuey의 Ajax 속성

 

url : request해서 데이터 전송할 url

data : 서버로 전송할 데이터의 parameter 설정값

datatype : 서버의 response 데이터의 형식(xml, text, json, html 등) 지정 값

 - 디폴트시 auto

success(data) : 통신 성공 시, 호술되는 함수 지정값. 파라미터로 response 데이터(data)를 받음

error : 통신 실패 시, 호출되는 함수 지정값. 역시 파라미터로 response  데이터(data)를 받음

complete : 통신 성패 여부 관계 없이 통신 실행완료 후 실행되는 함수 지정값

async : 비동기(true)/동기(false) 지정

 

 

728x90
반응형
728x90

jQuery 통하여 Ajax 구현

 

jQuey의 Ajax 속성

url : request해서 데이터 전송할 url

data : 서버로 전송할 데이터의 parameter 설정값

datatype : 서버의 response 데이터의 형식(xml, text, json, html 등) 지정 값

 - 디폴트시 auto

success(data) : 통신 성공 시, 호술되는 함수 지정값. 파라미터로 response 데이터(data)를 받음

error : 통신 실패 시, 호출되는 함수 지정값. 역시 파라미터로 response  데이터(data)를 받음

complete : 통신 성패 여부 관계 없이 통신 실행완료 후 실행되는 함수 지정값

async : 비동기(true)/동기(false) 지정

 

3.서버 기본 전송 값에서 결과로 str 받아처리하기

<script>
		// 더하기 버튼을 누르면 첫번째 숫자의 값과 두번째 숫자의 값을 ajax를 통해 jQuery3.do쪽으로 전송하는 코드 작성
		$('#plusBtn').click(function(){
			var n1 = $('#firstNum').val();
			var n2 = $('#secondNum').val();
			
			$.ajax({
				url: 'jQueryAjax3',
				data: {n1:n1, n2:n2},
				type: 'post',
				datatype: 'text',
				success: function(data){
					console.log('전송 성공');
					console.log("받아온 data값 = " +data);
				},
				error: function(data){
					console.log('전송 실패');
				},
				async: true
			});
		});
	</script>
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

		int n1 = Integer.parseInt(request.getParameter("n1"));
		int n2 = Integer.parseInt(request.getParameter("n2"));
	
		int sum = n1 + n2;
		
		response.getWriter().print(sum);
		
	}

 

 

 

4. 객체형태 데이터를 서버에 전송하고 서버에서 처리하기

 

<h3>4. Object형태의 데이터를 서버에 전송, 서버에서 데이터 처리 후 서버 console로 출력</h3>
	<!-- 여기서 말하는 콘솔은 이클립스 콘솔을 의미함 -->
	학생1 : <input type="text" id="student1"><br>
	학생2 : <input type="text" id="student2"><br>
	학생3 : <input type="text" id="student3"><br>
	<button id="studentTest">결과확인</button>
	<script>
		// 결과확인 버든을 누르면 학생1, 학생2, 학생3의 이름이 jQuery4.do 쪽으로 전송
		// 전송된 학생들의 이름은 서버의 console창에 아래 예시와 같이 출력되고
		// 화면에서는 "전송 성공"이라는 알람창이 뜸
		// console 출력 예시 : 수업을 들을 하생은 ooo,xxx,ㅁㅁㅁ입니다
		$('#studentTest').on('click',function(){
			var student1 = $('#student1').val();
			var student2 = $('#student2').val();
			var student3 = $('#student3').val();
			
			$.ajax({
				url:'jQueryAjax4',
				data: {student1:student1, student2:student2, student3:student3},
				type: 'post',
				/* datatype: 'text', */
				success:function(data){
					alert('전송 성공');	
				},
				error: function(data){
					alert('fail');
				},
				complete: function(){
					alert('another func');
				},
			});
		
		});
	</script>​

 

		request.setCharacterEncoding("UTF-8");
		
		String s1 = request.getParameter("student1");
		String s2 = request.getParameter("student2");
		String s3 = request.getParameter("student3");
		
		System.out.printf("이름 출력 %s, %s, %s",s1,s2,s3);

 

728x90
반응형
728x90

jQuery 통하여 Ajax 구현

 

jQuey의 Ajax 속성

url : request해서 데이터 전송할 url

data : 서버로 전송할 데이터의 parameter 설정값

datatype : 서버의 response 데이터의 형식(xml, text, json, html 등) 지정 값

 - 디폴트시 auto

success(data) : 통신 성공 시, 호술되는 함수 지정값. 파라미터로 response 데이터(data)를 받음

error : 통신 실패 시, 호출되는 함수 지정값. 역시 파라미터로 response  데이터(data)를 받음

complete : 통신 성패 여부 관계 없이 통신 실행완료 후 실행되는 함수 지정값

async : 비동기(true)/동기(false) 지정

 

 

1.버튼 누르면 전송값을 서버에 출력하기

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<script src="js/jquery-3.6.0.min.js"></script>

<title>Insert title here</title>

<style>.test{width:300px; min-height:50px; border:1px solid red;}</style>

</head>
<body>
	
	<h1>jQuery-Ajax구현</h1>
	
	<h3>1.client가 server에 requset</h3>
	이름 : <input type="text" id="myName">
	<button id="nameBtn">전송</button>
	<script>
		$('#nameBtn').on('click',function(){
			var userName = $('#myName').val();
	        
			$.ajax({
	        	url: 'jQueryAjaxServlet1',
	        	type: 'get',
	            data: {userName:userName},
	            success: function(){
	            	alert('전송 성공');
	            },
	            error: function(){
	            	alert('전송 실패');
	            },
	            complete: function(){
	            	alert('성공실패 상관없이 무조건 실행되는 complete');
	            }
			});
		});

	</script>
	
	
</body>
</html>
@WebServlet("/jQueryAjaxServlet1")
public class JQueryAjax1 extends HttpServlet {
	private static final long serialVersionUID = 1L;

    public JQueryAjax1() {
        super();
    }
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

		System.out.println("서블릿도착");
		
		String name = request.getParameter("userName");
		System.out.println(name);	
	}
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}
}

 

 

2.버튼 누르면 서버에서 보낸 값을 사용자가 수신하기

 

<h3>2.버튼 선택 시, 서버에서 보낸 값 사용자가 수신</h3>		<!-- 서버가 클라이언트에 response -->
	<button id="getServerTextBtn">서버에서 보낸 값 확인</button>
	<p class="test" id="p1"></p>
	<script>
$('#getServerTextBtn').click(function(){
			$.ajax({
				url:'jQueryAjax2',
				// data : 서버에서 사용자에게 보낼 데이터가 없으므로 기술x
				type : 'get',
				success: function(data){
					alert('성공');
					console.log(typeof data);
					$('#p1').text(data);
				},
				error: function(){
					alert("에러 발생");	
				},
				complete: function(){
					alert('comeplete work');
				}
			});
		});
	</script>

 

response.getWriter().print("서버에서 전송한 데이터 입니다");

 

728x90
반응형

+ Recent posts