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로 이동할 수 있다.