20230327 수업 중 에러 백업
include, forward 배우면서 수업시간 예제 따라 타이핑 하였음. 본래 라디오 버튼의 사용자 또는 관리자 선택에 따라 login 후 화면이 userMain 또는 manageMain 화면으로 이동되어야 하는데 500 에러 발생함.
<!-- actionTagForm.jsp -->
<%@ 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>
<form action="actionTest.jsp" method="post">
아이디 : <input type="text" name="id"> <br>
비밀번호 : <input type="password" name="pw"><br>
<input type="radio" name="loginCheck" value="user" checked="checked"> 사용자
<input type="radio" name="loginCheck" value="manager"> 관리자 <br>
<input type="submit" value="로그인">
</form>
</body>
</html>
<!-- actionTagForm.jsp -->
<%@ page import="java.net.URLEncoder"%>
<%@ 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>
<%
request.setCharacterEncoding("utf-8");
String id = request.getParameter("id");
String pw = request.getParameter("pw");
String loginCheck = request.getParameter("loginCheck");
out.println("id : " + id);
out.println("pw : " + pw);
if (loginCheck.equals("user")) {
%>
<jsp:forward page="userMain.jsp"></jsp:forward>
<jsp:param value="<%=URLEncoder.encode("전 고객", "UTF-8")%>" name="userName" />
<%
} else {
%>
<jsp:forward page="managerMain.jsp"></jsp:forward>
<jsp:param value="<%=URLEncoder.encode("성 관리", "UTF-8") %>" name="manager" />
<%
}
%>
</body>
</html>
<!-- userMain.jsp -->
<%@ page import="java.net.URLDecoder"%>
<%@ 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 bgcolor="pink">
사용자 로그인 성공
<%=URLDecoder.decode(request.getParameter("userName"), "UTF-8")%>
<%=request.getParameter("id")%>님 환영합니다.
</body>
</html>
<!-- managerMain.jsp -->
<%@ page import="java.net.URLDecoder"%>
<%@ 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 bgcolor="yellow">
관리자 로그인 성공
<%=URLDecoder.decode(request.getParameter("userName"), "UTF-8")%>
<%=request.getParameter("id")%>님 환영합니다.
</body>
</html>
<!-- 문제 1 해결 -->
if (loginCheck.equals("user")) {
%>
<jsp:forward page="userMain.jsp">
<jsp:param value='<%=URLEncoder.encode("전 고객", "UTF-8")%>' name="userName" />
</jsp:forward>
<%
} else {
%>
<jsp:forward page="managerMain.jsp">
<jsp:param value='<%=URLEncoder.encode("성 관리", "UTF-8") %>' name="manager" />
</jsp:forward>
<%
}
%>
이와 같이 param 문을 forward 안에 넣어 500에러는 해결하였으나 관리자 선택 시 페이지에서 추가 오류 발생함.
<!-- 문제 2 해결 -->
<body bgcolor="yellow">
관리자 로그인 성공
<%=URLDecoder.decode(request.getParameter("manager"), "UTF-8")%>
<%=request.getParameter("id")%>님 환영합니다.
</body>
원인 : userMain.jsp 복사+붙여넣기 하다가 manager 페이지 로그인 성공 시 Parameter 값을 수정 않았음.