request.getParameter("companyName"); 양식으로 제출된 데이터를 가져오는 것입니다(첫 페이지 양식의 이름은 companyName 입니다).
request.getAttribute("cc")는 setAttribute의 데이터를 가져오는 것입니다(얻은 값은 사용자가 직접 저장한 매개변수 cc의 값입니다.)
하이퍼링크의 매개변수에 사용됩니다. . request.getParameter(매개변수 이름)
HttpServletRequest 클래스에는 getAttribute() 메서드와 getParameter() 메서드가 모두 있습니다. 두 메서드에는 다음과 같은 차이점이 있습니다.
(1) HttpServletRequest 클래스에는 setAttribute() 메서드가 있지만 setParameter() 메서드는 없습니다.
(2) 두 웹 컴포넌트 사이에 링크 관계가 있는 경우, 링크된 컴포넌트는 getParameter() 메소드를 통해 요청 매개변수를 획득합니다. 예를 들어,welcome.jsp와 authenticate.jsp,welcome.jsp 사이에 링크 관계가 있다고 가정합니다. 다음 코드가 있습니다.
<a href="authenticate.jsp?username=weiqin">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("사용자 이름") %>
안녕하세요: <%=사용자 이름 %>
더 깊은 수준에서 살펴보면 request.getParameter() 메서드에 의해 전달된 데이터는 웹 클라이언트에서 웹 서버로 전달되어 HTTP 요청 데이터를 나타냅니다. request.getParameter() 메소드는 String 유형의 데이터를 리턴합니다.
request.setAttribute() 및 getAttribute() 메소드에 의해 전달된 데이터는 웹 컨테이너 내부에만 존재하며 전달 관계를 통해 웹 구성 요소 간에 공유됩니다. 이 두 가지 방법은 Object 유형의 공유 데이터를 설정할 수 있습니다.
간단히 말하면 request.getParamenter() 메소드는 HTTP 프로토콜을 사용하여 데이터를 전송하며 String 유형의 정보만 전송할 수 있는 반면, request.setAttribtute() 메소드는 WEB 컨테이너의 데이터를 전송하며 모든 유형의 객체 정보를 전달할 수 있습니다. 예를 들어, listAction 서블릿이 LIST 컬렉션을 list.jsp에 전달하려는 경우 setAttribute를 사용해야 합니다.