[英]Is there any downfall of using JQuery with Servlets without JSPs?
[英]Database search using servlets and jsps
我正在學習Java Servlet,並嘗試編寫一個程序,要求用戶輸入名稱,並在數據庫中列出所有具有匹配名稱的行。 我的問題是,我將用戶給定的值存儲在控制器類的bean類的setter方法中。 但是,我無法從dao類中檢索它。 沒有得到任何異常或錯誤,代碼沒有產生任何結果。 任何幫助,將不勝感激。
控制器類別:
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
SearchDataHolder sch = new SearchDataHolder();
String fname = (String) request.getParameter("fname");
String lname = (String) request.getParameter("lname");
String email = (String) request.getParameter("email");
sch.setFname(request.getParameter("fname"));
sch.setLname((String) request.getParameter("lname"));
sch.setEmail((String) request.getParameter("email"));
if (((fname).isEmpty()) && ((lname).isEmpty()) && (((email).isEmpty() ))) {
response.sendRedirect("BlankError.jsp");
return;
} else {
RequestDispatcher rd = request
.getRequestDispatcher("SearchList.jsp");
rd.forward(request, response);
return;
}
道課:
Connection con = ConnectionUtils.createConnection();
PreparedStatement ps;
List<SearchDataHolder> users = new ArrayList<SearchDataHolder>();
SearchDataHolder sdh = new SearchDataHolder();
String firstName = sdh.getFname();
String lastName = sdh.getLname();
String email = sdh.getEmail();
try {
String userList = "select * from Personal_Info where Fname='"
+ firstName + "' or Lname='" + lastName + "' or Email='"
+ email + "'";
ps = con.prepareStatement(userList);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
sdh.setFname((String) rs.getString("Fname"));
sdh.setLname((String) rs.getString("Lname"));
sdh.setMname((String) rs.getString("Mname"));
sdh.setSex(rs.getString("Sex"));
sdh.setDob((String) rs.getString("Date"));
sdh.setEmail((String) rs.getString("Email"));
sdh.setPtype((String) rs.getString("PhoneType"));
sdh.setPhone((String) rs.getString("Phone"));
sdh.setStreet((String) rs.getString("Street"));
sdh.setCity((String) rs.getString("City"));
sdh.setCity((String) rs.getString("State"));
sdh.setZip((String) rs.getString("ZipCOde"));
sdh.setCountry((String) rs.getString("Country"));
users.add(sdh);
}
} catch (SQLException e) {
e.printStackTrace();
}
return users;
我猜您正在嘗試應用“模型2”模式,以便在不同的層中隔離3個不同的組件。
一種是放置代碼以處理用戶請求(稱為controller
)並構建其他不同組件的地方,即Bean
/ DTO
,在其中放置通常涉及響應的數據。 最后是一個jsp存檔( view
),在其中放置了如何使用先前加載的Bean編寫響應。
允許將視圖和控制器分開的關鍵抽象是bean
,並且知道將bean 放置在何處,以使其對於Controller
和View
都可見。 在您的情況下,我看到您正在使用一個Controller,正在構建一個Bean,我想您忘記了將該bean
傳遞給view
,然后在一些scriplet標簽中使用了該bean。
在您的控制器內部應該有這樣一條線:
request.setAttribute("nameOfTheBeanToUseInsideTheJSPScriptlet",bean)
然后在jsp上(在您的情況下為“ SearchList.jsp”中),您可能會放置以下內容:
<%
Bean bean = request.getAttribute("nameOfTheBeanToUseInsideTheJSPScriptlet");
out.print(bean.getAValue());
%>
這是模型2的基礎,它是復合模式(由其他模式構成的模式),畢竟,復合模式是用於制作Java Web應用程序(Spring MVC,其余所有已知框架都將Struts置於此components
之上,因為它只是用於構建Web應用程序的JSEE規范的一部分。
我建議閱讀《 Head First Servlets and JSP,第二版》這本書,非常適合開始使用作為服務器的普通Servlet,jsp和普通類。
我想這是您開始做一些搖擺不定的servlet所需的非常基本的信息! 繼續練習!
問候!
希望對您有所幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.