Czy można użyć request.setAttribute
na stronie JSP, a następnie w HTML Submit uzyskać ten sam atrybut żądania w Servlet
?Korzystanie z request.setAttribute na stronie JSP
Odpowiedz
Nie. Niestety obiekt Żądaj jest dostępny tylko do momentu zakończenia ładowania strony - po jej zakończeniu utracisz wszystkie zawarte w nim wartości, o ile nie zostały one gdzieś zapisane.
Jeśli chcesz utrzymywać atrybutów poprzez wniosków trzeba albo:
- Posiada ukrytą wejście w swojej formie, jak
<input type="hidden" name="myhiddenvalue" value="<%= request.getParameter("value") %>" />
. Będzie to wówczas dostępne w serwecie jako parametr żądania. - Umieścić go w sesji (patrz
request.getSession()
- w JSP ten jest dostępny jako po prostusession
)
Polecam przy użyciu sesji, gdyż łatwiej jest zarządzać.
Popraw mnie jeśli źle ... Myślę prośba nie utrzymują między kolejnymi stronami ..
Pomyśl przechodzić od strony 1 -> strona 2 -> strona 3.
Masz jakąś wartość ustawić w obiekcie żądania przy użyciu metody setAttribute ze strony 1, którą pobieramy na stronie 2 za pomocą metody getAttribute, a następnie, jeśli spróbujemy ponownie ustawić coś w tym samym obiekcie żądania, aby pobrać go na stronie 3, wówczas nie powiedzie się podanie wartości pustej jako "żądanie, które utworzyło strona JSP, a żądanie generowane podczas przesyłania strony JSP to zupełnie inne żądania, a atrybuty umieszczone na pierwszej nie będą dostępne w drugim ".
mam na myśli coś takiego na stronie 2 zawiedzie:
Gdzie tak samo pracował w przypadku strony 1, takich jak:
Więc myślę, że muszę kontynuować albo dwóch opcji sugerowanych przez Phill.
Odpowiedź Phila Sacre'a była poprawna, jednak sesja nie powinna być używana tylko dla piekła. Powinieneś używać tego tylko dla wartości, które naprawdę muszą być spełnione przez cały czas trwania sesji, takich jak login użytkownika. Często zdarza się, że użytkownicy nadużywają sesji i napotykają więcej problemów, zwłaszcza gdy zajmują się kolekcją lub gdy użytkownicy powracają na stronę, którą odwiedzili wcześniej, aby znaleźć wartości, które pozostały z poprzedniej wizyty. Inteligentny program minimalizuje zakres zmiennych tak bardzo, jak to możliwe, zły używa zbyt wiele sesji.
Myślę, że phil to właściwa opcja żądania jest dostępna do momentu wczytania strony. więc jeśli chcemy przesłać wartość do innej strony, chcemy ustawić ją w ukrytym tagu lub w sesji po stronie, jeśli tylko potrzebujesz wartości tylko na innej stronie i nie więcej niż to, wtedy ukryte tagi są najlepszą opcją, jeśli potrzebujesz tej wartości na więcej niż jednej stronie w tym czasie sesja jest lepszą opcją niż ukryte tagi.
Spróbuj
request.getSession().setAttribute("SUBFAMILY", subFam);
request.getSession().getAttribute("SUBFAMILY");
Jeśli chcesz, aby wnioski o dopuszczenie do nadal występuje spróbuj tego:
przykład: na JSP lub serwletu stronie
request.getSession().setAttribute("SUBFAMILY", subFam);
i na dowolnej stronie odbiorczej skorzystać z poniższych linii aby odzyskać sesję i dane:
SubFamily subFam = (SubFamily)request.getSession().getAttribute("SUBFAMILY");
Można to zrobić za pomocą atrybutów pageContext, choć:
W JSP:
<form action="Enter.do">
<button type="SUBMIT" id="btnSubmit" name="btnSubmit">SUBMIT</button>
</form>
<% String s="opportunity";
pageContext.setAttribute("opp", s, PageContext.APPLICATION_SCOPE); %>
W Servlet (związany z "Enter.do" url-pattern):
String s=(String) request.getServletContext().getAttribute("opp");
Istnieją inne zakresy oprócz APPLICATION_SCOPE, takie jak SESSION_SCOPE. APPLICATION_SCOPE jest używany dla atrybutów ServletContext.
- 1. Uzyskaj atrybut z ServletContext na stronie JSP.
- 2. JasperReports: Jak wywołać raport na stronie jsp
- 3. Uruchamianie pliku .jar na stronie JSP
- 4. Jak wyłączyć żądania GET na stronie JSP?
- 5. Jak sprawdzić zmienną na stronie JSP
- 6. Wyświetlanie wyników serwletu na stronie jsp.
- 7. Korzystanie zarówno Thymeleaf i JSP
- 8. Jak mogę posortować listę na kilka sposobów na stronie JSP?
- 9. Jak przesłać żądanie na inną stronę JSP po kliknięciu łącza na stronie JSP?
- 10. Korzystanie git do publikowania na stronie internetowej
- 11. Jak utworzyć klienta usługi WWW na stronie .jsp?
- 12. Debuguj javascript na stronie jsp w przeglądarce Chrome?
- 13. Pozostań na tej samej stronie nawet po przesłaniu formularza jsp.
- 14. read email Korzystanie z klienta Pop3 na stronie asp.net
- 15. Dostęp do zasobów na stronie JSP aplikacji Spring MVC
- 16. jak uzyskać dostęp do obiektu ModelAndView na stronie jsp.
- 17. Jak wyświetlić tabelę bazy danych na stronie JSP
- 18. Korzystanie z API WebRequest stronie wydarzenia
- 19. JSP EL i autouzupełnianie
- 20. wiosna - różnica między request.setAttribute i model.addAttribute?
- 21. Jak stosować zastępczy HTML z wiosennym <form:input> tagu na stronie jsp
- 22. Korzystanie z operatora warunkowego zerowego po lewej stronie przypisania
- 23. jak przekierować z serwletu na stronę JSP
- 24. tagi Script niewytapiane w stronie JSP (używając wiosna + Płytki + JSPX)
- 25. jsp: param z klasą Java
- 26. Request.getParameter z JSP
- 27. Jak przekazywać informacje z serwletu na stronę JSP?
- 28. Korzystanie z Docker na Androidzie
- 29. Korzystanie z jQuery na konsoli?
- 30. Zmień jsp na przycisku kliknij
Może to nie jest niefortunne. Skrypty JSP to zła praktyka. Zachowaj ostrożność podczas korzystania z sesji, łatwiej jest nią zarządzać, ale czasami jest ona "droga" pod względem skalowalności. –
cóż, ułóż to w ten sposób - sesja jest prawdopodobnie lepsza niż cokolwiek, co sam napiszesz :) Jeśli jesteś na przyzwoitym serwerze aplikacji, możesz wykonać replikację itd. I masz opcje do przechowywania (nie tylko w pamięci). –