Web

JSP에서 javascript로 페이지 이동 시 URL에 질의 문자열 넣는 방법

개발잘하고싶은개발자 2024. 2. 18. 01:39

이번에 JSP 웹 게시판에 댓글 작성 기능을 추가하려던 중 JSP페이지에서 javascript 코드에 Java 변수를 포함시켜야될 필요가 생기게 되었다. 이 방법은 다음에 또 필요할 것 같아서 이참에 기록해두려고 한다.  

 

 

 

댓글 등록 페이지 이동 시나리오

* 현재 보고있는 게시물의 bbsID가 1이라고 가정

 

 

1) ~/bbs.jsp : 등록된 게시물 목록, 게시물을 선택하면 선택한 게시물로 이동 

2) ~/viewBbs.jsp?bbsID=1 : 게시물을 보여줌(bbsID는 게시물 식별번호), 작성된 댓글 확인, 댓글 작성이 가능

3) ~/writeCommentAction.jsp?bbsID=1 : 게시물에서 작성된 댓글을 등록

4) ~/viewBbs.jsp?bbsID=1 : 다시 게시물로 되돌아와서 작성된 댓글을 확인

 

위와 같은 순서로 웹 페이지 이동이 일어난다고 가정했을때  3)에서 게시물 식별값을 담고있는 Java 변수 bbsID를 javascript코드에서 사용하여 4)과 같이 질의 문자열이 포함된 페이지로 이동시키려 한다.

 

JSP페이지에서 javascript 코드 작성 시 Java 변수 사용하는 방법

 

//writeCommentAction.jsp
...
<!DOCTYPE html>
<html>
<head>
...
<title>댓글 등록 진행 웹페이지</title>
</head>
<body>
	
	<%
		//로그인 확인
        if(userID == null){
        ...
		}else{//로그인됨
			//게시글ID 추출
			int bbsID = 0;
			if(request.getParameter("bbsID") != null){
				bbsID = Integer.parseInt(request.getParameter("bbsID"));
			}
			if(bbsID == 0){//유효한 게시글인지 확인
				...
			}
			//댓글 내용 확인
			if(comment.getCommentContent() == null){
				...
			}else{//댓글 등록 처리
				...
				if(result == -1){//DB오류 발생
					...
				}else{
					PrintWriter script = response.getWriter();
					script.println("<script>");
					//script.println("location.href = 'viewBbs.jsp?bbsID='")//자바스크립트 코드에 자바 변수 사용 불가(질의 문자열을 넣을 수 없음)
					String test = "location.href = \'viewBbs.jsp?bbsID="+bbsID+"\'";//이렇게하면 자바스크립트 코드에 자바 변수를 사용해서 질의 문자열을 넣을 수 있음
					script.println(test);
					script.println("</script>");
				}
			}	
		}
		
	%>
</body>
</html>

 

위 코드처럼 Java 문자열 변수에 javascript코드를 저장하면 질의 문자열이 포함된 URL로 이동할 수 있다.