我是服務器端編程的新手。我有一個在線圖書銷售管理系統的最後一年項目。我想知道如何爲每個點擊購買的圖書圖片生成一個動態頁面。我的意思是說,如果用戶請求任何書籍X,怎麼可能生成一個顯示其所有細節,圖像等信息的頁面。我應該使用什麼樣的網址?如何鏈接到jsp的動態生成頁面
回答
只需傳遞書籍的唯一標識符作爲請求參數或請求路徑信息,並根據標識符在doGet()
方法中執行servlet數據查找,將其存儲在請求範圍內並轉發到JSP文件生成所有必需的HTML。
E.g.與這個servlet
@WebServlet("/book")
public class BookServlet extends HttpServlet {
@EJB
private BookService service;
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Book book = service.find(request.getParameter("id"));
request.setAttribute("book", book);
request.getRequestDispatcher("/WEB-INF/book.jsp").forward(request, response);
}
}
或者作爲請求路徑信息/book/123
與這個servlet
@WebServlet("/book/*")
public class BookServlet extends HttpServlet {
@EJB
private BookService service;
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Book book = service.find(request.getPathInfo().substring(1));
request.setAttribute("book", book);
request.getRequestDispatcher("/WEB-INF/book.jsp").forward(request, response);
}
}
無論哪種方式,請求參數/book?id=123
,該/WEB-INF/book.jsp
可能只是看起來像這樣的常用方法。
<p>Title: <c:out value="${book.title}" /></p>
<p>Author: <c:out value="${book.author}" /></p>
<p>Summary: <c:out value="${book.summary}" /></p>
爲了產生/WEB-INF/books.jsp
這些鏈接到servlet,只是遍歷一個List<Book>
如下,假設你希望網址喜歡/book/123
:
<ul>
<c:forEach items="${books}" var="book">
<li>
<a href="${pageContext.request.contextPath}/book/${book.id}">
View book with title: <c:out value="${book.title}" />
</a>
</li>
</c:forEach>
</ul>
感謝您的幫助。我不明白 - >
這只是一個循環,而不是'List
我假定這是一個小規模的項目。
首先爲你的書保留一個數據庫..給他們每個人一個唯一的ID。 如果您顯示所有常見的詳細信息,例如...已發佈,價格,圖書名稱,作者,評論,評分....然後您無需擔心。創建常見的JSP頁面以顯示基於indo上UNIQUEID ...
JSP說:books.jsp
<form name="books" action="getInfo.jsp">
<a href="YourJSP/?bookid=pass_an_id_for_your_bookX">Book X(Image)</a> //Book X
<a href="YourJSP/?bookid=pass_an_id_for_your_bookY">Book Y(Image)</a> //Book Y
<a href="YourJSP/?bookid=pass_an_id_for_your_bookZ">Book Z(Image)</a> //Book Z
....
.... an on..
</form>
BOOKID將是你的芳族聚酰胺?
pass_an_id_for_your_bookX將成爲您存儲在數據庫中的bookX的唯一ID。
你的第二JSP中說:getInfo.jsp
設計你的JSP呈現,到diplay有關您的BookX/BookY WRT到BOOKID 在你的JSP得到BOOKID的價值和查詢數據庫。 ..
String bookId = request.getParameter("bookid"):
//This will get the value of your bookId for BookX
//Connect to your DB
//Use PreparedStatement or StoredProcedure to make a query pass your bookId in where condition.
其餘的很簡單,通過查詢數據庫,你會得到所有常見的值,即。在公佈價格,書名,作者,評論,評級...在你的JSP頁面中相應地顯示他們..
<%
Connection con = null;
PreparedStatement pst = null;
ResultSet rs = null;
String BookName=null;
String AuthorName=null;
String Price=null;
String Rating=null;
try {
Class.forName(driver);
con = DriverManager.getConnection(connection);
String sql =
"select * from BOOKS_TABLE where bookId =?";
pst = con.prepareStatement(sql);
pst.setString(1, bookId);
rs = pst.executeQuery();
while (rs.next()) {
BookName = rs.getString(1);
AuthorName = rs.getString(2);
Price = rs.getString(3);
Rating = rs.getString(4);
}
// 1 , 2, 3... denotes column numbers
} catch (SQLException e) {
System.out.println(e.getMessage());
}
}
}
%>
現在你得到了所有你的價值觀..那麼,相應地顯示他們..
<%=BookName%>
<%=AuthorName%>
<%=Price%>
<%=Rating%>
A注意:在JSP頁面中不鼓勵使用腳本(Java代碼)。您可能想要檢入Beans或JSTL。我只是給你一個IDEA!
全部最好
- 1. 動態生成CMS的頁面鏈接
- 2. 如何在MIddleman中鏈接動態生成的頁面?
- 3. JSP動態網頁生成
- 4. JSP - 如何創建從jsp頁面到另一個jsp頁面的鏈接
- 5. 獲取鏈接的會話ID並生成動態頁面PHP
- 6. 動態鏈接的動態頁面
- 7. ASP.NET動態頁面生成
- 8. 動態生成.aspx頁面
- 9. 動態鏈接到Facebook公司頁面
- 10. 動態鏈接到子頁面WordPress
- 11. 動態錶鏈接到新頁面
- 12. 自動生成頁面鏈接到Octopress上的導航欄
- 13. Firebase動態鏈接:如何從生成的動態鏈接獲取URI方案?
- 14. 將jsp頁面鏈接到java類
- 15. 從JSP頁面生成PDF?
- 16. 如何在點擊後保持鏈接懸停狀態,當另一個鏈接點擊動態生成頁面
- 17. 如何在JSP中動態生成URL?
- 18. 發貼的鏈接不生成頁面
- 19. 如何在PHP中創建到頁面的動態鏈接?
- 20. 如何動態創建JSP頁面?
- 21. 從laravel的動態頁面鏈接到另一個頁面
- 22. 如何使用JSP生成非JSP擴展的內容頁面?
- 23. 如何創建從jsp頁面到war文件的鏈接
- 24. JVM參數作爲jsp動態鏈接的動態鏈接
- 25. Rails]動態生成靜態頁面
- 26. 動態生成的HTML深度鏈接
- 27. iframe問題動態生成的鏈接
- 28. 從動態href鏈接鏈接到另一個php頁面php
- 29. 如何將鏈接添加到頁面動態地在Rails中
- 30. 將Jetty嵌入到動態jsp頁面
你可以給模式的細節? –
這是一個在線圖書銷售管理系統,人們可以在線購買圖書。我想知道如何從數據庫中獲取圖書信息,並在任何用戶點擊任何圖書圖像或鏈接時將其顯示在另一個頁面中。我的意思是說如何鏈接這兩個頁面,因爲我以前不知道用戶點擊哪本書。我的問題摘要是如何知道哪本書已被點擊,然後將用戶帶到該書的詳細頁面。 –