我是新來的,一直在這裏工作。我知道這應該很簡單,我只是想念一些愚蠢的東西。我有一個jsp頁面和一個servlet(代碼如下)。我試圖從我的數據庫中搜索出一個客戶,該客戶可以工作。但是,如果未找到客戶,我想在相同的jsp頁面上發佈錯誤消息,以便用戶可能重新輸入電話號碼以防萬一他們犯了錯誤。我不確定如何做到這一點。我可以轉發到新的「客戶」頁面,我已經嘗試成功重定向到同一頁面,但我不知道如何將消息放在那裏。請幫助!JSP/Servlet如果錯誤停留在同一頁面上而不是轉發
jsp頁面:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1" isELIgnored="false" %>
<%@ page import="java.util.*" %>
<%@ include file="staticpages/pageHeader.html" %>
<br />
<hr />
<br />
<form name="custform" method="POST" action="ChooseCustomer.do" >
<span class="sectionheader">Look Up Customer by Phone Number:</span>
<input type="text" name="phone1" size="3" maxlength="3" onKeyUp="checklen(this)" />
<input type="text" name="phone2" size="3" maxlength="3" onKeyUp="checklen(this)" />
<input type="text" name="phone3" size="4" maxlength="4" onKeyUp="checklen(this)" />
<input type="submit" name="formaction" value="Search" />
<input type="submit" name="formaction" value="Enter New Customer" />
</form>
<%@ include file="staticpages/pageFooter.html" %>
servlet代碼:
package pizzapkg;
import java.io.IOException;
import java.sql.ResultSet;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class ChooseCustomer
*/
@WebServlet("/ChooseCustomer")
public class ChooseCustomer extends HttpServlet {
private static final long serialVersionUID = 1L;
/** @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Customer c = null;
if (request.getParameter("formaction").equals("Search")) {
Database db = (Database) getServletContext().getAttribute("db");
/* Search Database for existing customer */
String searchPhone = request.getParameter("phone1")
+ request.getParameter("phone2")
+ request.getParameter("phone3");
String sql = "SELECT * FROM customers WHERE cust_phone=\"" + searchPhone + "\";";
ResultSet rs;
try {
rs = db.runSqlQuery(sql);
rs.next();
c = new Customer(rs.getString("cust_id"), rs.getString("cust_fname"),
rs.getString("cust_lname"), rs.getString("cust_address"),
rs.getString("cust_city"), rs.getString("cust_state"),
rs.getString("cust_zip"), rs.getString("cust_phone"),
rs.getString("cust_notes"));
} catch (Exception e) { e.printStackTrace(); }
request.setAttribute("customer", c);
}
RequestDispatcher rd = request.getRequestDispatcher("/customer.jsp");
rd.forward(request, response);
}
}
PS這在我第一次建立了一個servlet的,所以這是所有新的給我。我愛的例子,所以任何幫助你可以給予將不勝感激。
雖然Yoigendra的答案在技術上是正確的,但他的整個答案使用的技術已被認爲已死,已被棄用,並且已經有十多年的氣餒。我熱烈推薦你去看看我們的servlets wiki頁面。它包含一個具體的例子,它根據MVC思想體系正確使用JSP和Servlet,並涵蓋了驗證:http://stackoverflow.com/tags/servlets/info – BalusC