request.getParameter("companyName"); dient dazu, die vom Formular übermittelten Daten abzurufen (der Name lautet firmenname im Formular auf der Startseite).
request.getAttribute("cc") dient dazu, die Daten Ihres setAttribute abzurufen (der erhaltene Wert ist der Wert des Parameters cc, den Sie selbst gespeichert haben.)
Wird für Parameter in Hyperlinks verwendet. . request.getParameter(Parametername)
Die HttpServletRequest-Klasse verfügt sowohl über die Methode getAttribute() als auch über die Methode getParameter(). Die beiden Methoden weisen die folgenden Unterschiede auf:
(1) Die HttpServletRequest-Klasse verfügt über eine setAttribute()-Methode, aber keine setParameter()-Methode
(2) Wenn zwischen zwei Webkomponenten eine Linkbeziehung besteht, erhält die verknüpfte Komponente die Anforderungsparameter über die Methode getParameter(). Angenommen, es besteht eine Linkbeziehung zwischen Welcome.jsp und Authenticate.jsp, Welcome.jsp hat den folgenden Code:
<a href="authenticate.jsp?username=weiqin">authenticate.jsp </a>
oder:
<form name="form1" method="post" action="authenticate.jsp">
Bitte geben Sie den Benutzernamen ein: <input type="text" name="username">
<input type="submit" name="Submit" value="Submit">
</form>
Rufen Sie den Benutzernamen des Anforderungsparameters über die Methode request.getParameter("Benutzername") in Authenticate.jsp ab:
<% String username=request.getParameter("username" %>
(3) Wenn zwischen zwei Webkomponenten eine Weiterleitungsbeziehung besteht, teilt die Weiterleitungszielkomponente die Daten innerhalb des Anforderungsbereichs über die Methode getAttribute () mit der Weiterleitungsquellkomponente. Es wird davon ausgegangen, dass zwischen Authenticate.jsp und Hello.jsp eine Weiterleitungsbeziehung besteht. Authenticate.jsp hofft, den aktuellen Benutzernamen an hello.jsp weitergeben zu können. Rufen Sie zunächst die Methode setAttribute() in Authenticate.jsp auf:
<%
String username=request.getParameter("username");
request.setAttribute("Benutzername", Benutzername);
%>
<jsp:forward page="hello.jsp" />
Rufen Sie den Benutzernamen über die Methode getAttribute() in hello.jsp ab:
<% String username=(String)request.getAttribute("username" %>).
Hallo: <%=Benutzername %>
Auf einer tieferen Ebene werden die von der Methode request.getParameter() übergebenen Daten vom Web-Client an den Webserver übergeben und stellen HTTP-Anforderungsdaten dar. Die Methode request.getParameter() gibt Daten vom Typ String zurück.
Die von den Methoden request.setAttribute() und getAttribute() übergebenen Daten sind nur innerhalb des Webcontainers vorhanden und werden zwischen Webkomponenten mit einer Weiterleitungsbeziehung gemeinsam genutzt. Diese beiden Methoden können gemeinsam genutzte Daten vom Typ Objekt festlegen
Vereinfacht ausgedrückt verwendet die Methode request.getPamenter() das HTTP-Protokoll zum Übertragen von Daten und kann nur Informationen vom Typ String übertragen, während die Methode request.setAttribtute() Daten im WEB-Container überträgt und jede Art von Objektinformationen weiterleiten kann. Wenn beispielsweise ein listAction-Servlet eine LIST-Sammlung an list.jsp übergeben möchte, muss es setAttribute verwenden.