HttpServletRequest 클래스에는 getAttribute() 메서드와 getParameter() 메서드가 모두 있습니다. 두 메서드에는 다음과 같은 차이점이 있습니다.
1. HttpServletRequest 클래스에는 setAttribute() 메서드가 있지만 setParameter() 메서드는 없습니다.
2. 두 개의 웹 구성요소 사이에 링크 관계가 있는 경우, 링크된 구성요소는 getParameter() 메소드를 통해 요청 매개변수를 얻습니다.
예를 들어,welcome.jsp와 authenticate.jsp 사이에 링크 관계가 있다고 가정하면,welcome.jsp에는 다음 코드가 있습니다.
다음과 같이 코드 코드를 복사합니다 .
<a href="authenticate.jsp?username=qianyunlai.com">authenticate.jsp </a>
//또는:
<form name="form1" method="post" action="authenticate.jsp">
사용자 이름을 입력하십시오:<input type="text" name="username">
<input type="submit" name="제출" value="제출">
</form>
authenticate.jsp의 request.getParameter("username") 메소드를 통해 요청 매개변수 사용자 이름을 얻으십시오.
<% String 사용자 이름=request.getParameter("사용자 이름") %>
3. 두 웹 컴포넌트 사이에 전달 관계가 있는 경우 전달 대상 컴포넌트는 getAttribute() 메소드를 통해 전달 소스 컴포넌트와 요청 범위 내의 데이터를 공유합니다.
authenticate.jsp와 hello.jsp 사이에 전달 관계가 있다고 가정합니다. authenticate.jsp는 현재 사용자 이름을 hello.jsp에 전달하려고 합니다. 이 데이터를 전달하는 방법은 무엇입니까? 먼저 authenticate.jsp에서 setAttribute() 메소드를 호출하십시오:
다음과 같이 코드 코드를 복사합니다 .
<%
String 사용자 이름=request.getParameter("사용자 이름");
request.setAttribute("사용자 이름",사용자 이름);
%>
<jsp:forward page="hello.jsp" />
hello.jsp의 getAttribute() 메소드를 통해 사용자 이름을 얻습니다.
다음과 같이 코드 코드를 복사합니다 .
<% String 사용자 이름=(String)request.getAttribute("사용자 이름") %>
안녕하세요: <%=사용자 이름 %>
4. request.getAttribute는 Object를 반환하고 request.getParameter는 String을 반환합니다.