我正在構建一個簡單的Web應用程序並嘗試創建登錄頁面。該頁面由一個帶有加載Servlet的表單的JSP組成。使用POST將參數從JSP發送到Servlet
我已經得到形式使用GET方法工作:
JSP看起來像這樣:
<form method="get" action="Login">
Email:<input name="email"/>
Password:<input name="password"/>
<input type="Submit" value="Log in"/>
而在Servlet:
@WebServlet(name = "Login", urlPatterns = {"/Login"})
public class Login extends HttpServlet {
/**
* Processes requests for both HTTP
* <code>GET</code> and
* <code>POST</code> methods.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
//Assign variables from the request parameters
String loginFormEmail = request.getParameter("email");
String loginFormPassword = request.getParameter("password");
此代碼工作但它包含URL字符串中的用戶名和密碼,所以顯然不是很好的做法。我試圖用POST來做這個,但是我得到一個錯誤。 (HTTP狀態405 - HTTP方法POST不受此URL支持)
我需要知道如何使用POST將參數從JSP發送到Servlet。我認爲這可能涉及到使用RequestDispatcher對象,但是我發現使用RequestDispatcher將數據從Servlet發送到JSP的所有教程都解釋了,而不是相反。你能/你應該使用請求分派器從JSP發送POST數據到Servlet嗎?以及如何從Servlet訪問這些參數? (是否有一個相當於POST的request.getParameter()?)
我知道使用POST仍然不安全,但它比在查詢字符串中包含密碼要好很多,我會以後再考慮安全問題。
對於基本問題的道歉,我發現很多在線教程,但他們都沒有回答這個具體問題。謝謝。
你使用POST時,你得到了什麼錯誤? – 2013-05-21 12:58:05
查看該問題的答案:http://stackoverflow.com/questions/2349633/servlets-doget-and-dopost –
使用POST時出現的錯誤是HTTP狀態405 - 此方法不支持HTTP方法POST – Jon