request.getParameter("companyName"); フォームによって送信されたデータを取得します (フロントページのフォームでは名前は companyName です)。
request.getAttribute("cc") は、setAttribute のデータを取得することです (取得された値は、自分で保存したパラメーター cc の値です)。
ハイパーリンク内のパラメータに使用されます。 。 request.getParameter(パラメータ名)
HttpServletRequest クラスには getAttribute() メソッドと getParameter() メソッドの両方があります。これら 2 つのメソッドには次のような違いがあります。
(1) HttpServletRequest クラスには setAttribute() メソッドはありますが、setParameter() メソッドはありません。
(2) 2 つの Web コンポーネント間にリンク関係がある場合、リンク先コンポーネントは 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="submit" value="submit">
</form>
リクエスト パラメータのユーザー名を、authenticate.jsp の request.getParameter("username") メソッドを通じて取得します。
<% String ユーザー名=request.getParameter("ユーザー名");
(3) 2つのWebコンポーネント間に転送関係がある場合、転送先コンポーネントはgetAttribute()メソッドにより転送元コンポーネントとリクエスト範囲内のデータを共有します。 authenticate.jsp と hello.jsp の間には転送関係があると想定されます。 authenticate.jsp は現在のユーザー名を hello.jsp に渡すことを望んでいます。このデータを渡すにはどうすればよいですか?まず、authenticate.jsp の setAttribute() メソッドを呼び出します。
<%
文字列ユーザー名=request.getParameter("ユーザー名");
request.setAttribute("ユーザー名", ユーザー名);
%>
<jsp:forward page="hello.jsp" />
hello.jsp の getAttribute() メソッドを通じてユーザー名を取得します。
<% String ユーザー名=(String)request.getAttribute("ユーザー名");
こんにちは: <%=ユーザー名 %>
より深いレベルで考えると、request.getParameter() メソッドによって渡されるデータは、Web クライアントから Web サーバーに渡され、HTTP リクエスト データを表します。 request.getParameter() メソッドは String 型のデータを返します。
request.setAttribute() メソッドと getAttribute() メソッドによって渡されるデータは、Web コンテナ内にのみ存在し、転送関係を持つ Web コンポーネント間で共有されます。これら 2 つのメソッドは、オブジェクト型の共有データを設定できます。
簡単に説明すると、 request.getParamenter() メソッドは HTTP プロトコルを使用してデータを転送するため String 型の情報のみを転送できますが、 request.setAttribtute() メソッドは WEB コンテナ内のデータを転送し、あらゆる種類のオブジェクト情報を転送できます。たとえば、listAction サーブレットが LIST コレクションを list.jsp に渡したい場合は、setAttribute を使用する必要があります。