Caché entrée en JSP produit null lors du passage à la servlet
Dans ma JSP je ne les suivants :
<!-- Bank manager's permissions -->
<!--more stuff goes here -->
<fieldset>
<legend>To open a new account</legend>
<form action="blablabla">
<input type="hidden" name="hdField" value="myValue" /> //note I pass a "myValue" as string
<a href="employeeTransaction1">Press here to continue</a>
</form>
</fieldset>
Et dans ma Servlet, je prends le caché entrée :
@WebServlet("/employeeTransaction1")
public class Employee1 extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
String getHiddenValue=request.getParameter("hdField");
System.out.println("Hidden field Value :"+getHiddenValue);
//forwards to the page employeeOpenNewAccount.jsp
request.getRequestDispatcher("/WEB-INF/results/employeeOpenNewAccount.jsp").forward(request, response);
}
}
Et System.out.println
produit : null
à la Console
Pourquoi dois-je obtenir un null
de pas la valeur réelle est que je passe ?
Ce qui concerne
EDIT:
Après modification :
<fieldset>
<legend>To open a new account</legend>
<form action="/employeeTransaction1" method="GET">
<input type="hidden" name="hdField" value="myValue"/>
<a href="employeeTransaction1">Press here to continue</a>
</form>
</fieldset>
Un null
est toujours présenté lors de la console .
- soumettez-vous à l'uri?
- pouvez-vous ajouter le formulaire d'ouverture de la balise ?
- Oui, lorsque l'attaquant a lieu , le résultat est correct , cependant, le
hidden value
est null . a côté de cela , tout le reste est ok . - Je ne suis pas à l'aide de qui fait . Est-il vraiment nécessaire ?
Vous devez vous connecter pour publier un commentaire.
À l'aide d'un href balise ne pas soumettre votre formulaire, c'est à dire qu'il ne passe pas les paramètres définis dans le formulaire de la demande. Vous devez utiliser input type="submit" ou bouton tags lieu. Assurez-vous également que l'action du formulaire correspond à votre @WebServlet définition.
Ce que vous essayez de faire est d'envoyer un formulaire au serveur. Mais, en fait, vous ne le faites pas. Vous venez d'émettre une requête GET (lorsque l'utilisateur clique sur votre lien:
<a href="employeeTransaction1">Press here to continue</a>
)Si vous souhaitez envoyer le formulaire, assurez-vous de définir les attributs de la balise form correctement et ajouter un bouton de soumission du formulaire:
En fonction de votre manière préférée de l'envoi du formulaire, vous pouvez modifier la
method="GET"
paramater àmethod="POST"
et assurez-vous que dans la servlet vous manipulez le formulaire dans ladoPost()
méthodeAlternativement, si votre but est de ne pas envoyer la de de du serveur, mais juste de passer la valeur de l'caché d'entrée, vous devez ajouter sa valeur en tant que prameter codé dans la requête GET. Quelque chose comme:
Pour y parvenir, vous avez besoin d'un traitement client, c'est à dire lorsque l'utilisateur clique sur le lien, le caché, l'entrée devrait être ajouté à l'obtenir et ensuite la demande doit être émise.
null
lors de la modification de cette : ` <fieldset> <legend>ouvrir un nouveau compte</legend> <form action="/employeeTransaction1" method="GET"> <input type="hidden" name="hdField" value="mavaleur"/> <a href="employeeTransaction1">cliquez ici pour continuer</a> </form> </fieldset> `href
bouton , alors pourquoi en ajouter un autre ? J'ai testé votre suggestion ,mais cela ne fonctionne toujours pas - sens, j'ai ajouté laSubmit
mais il met en situation d'échec .Et BTW - je n'ai pas besoin d'envoyer le formulaire, juste pour envoyer lehidden input
.