当前位置: 代码迷 >> Java Web开发 >> jsp文件载入servlet,该如何解决
  详细解决方案

jsp文件载入servlet,该如何解决

热度:82   发布时间:2016-04-16 22:16:52.0
jsp文件载入servlet
我写了一个servelt类,把数据库中的信息放入一个集合中,然后写了一个jsp文件用于
展示这个集合中的信息。

servlet类:(该类已通过测试)

package com.bookstore.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.bookstore.dao.*;
import com.bookstore.Book;

import java.util.*;
//import java.lang.reflect.Method;
public class ShowAllBooks extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
 * The doGet method of the servlet. <br>
 *
 * This method is called when a form has its tag value method equals to get.
 * 
 * @param request the request send by the client to the server
 * @param response the response send by the server to the client
 * @throws ServletException if an error occurred
 * @throws IOException if an error occurred
 */
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request,response);
}

/**
 * The doPost method of the servlet. <br>
 *
 * This method is called when a form has its tag value method equals to post.
 * 
 * @param request the request send by the client to the server
 * @param response the response send by the server to the client
 * @throws ServletException if an error occurred
 * @throws IOException if an error occurred
 */
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
int currPage=1;//当前页
if(request.getParameter("page")!=null){
currPage=Integer.parseInt(request.getParameter("page"));
}
BookDao bookdao=null;
Collection<Book> books=null;
try{
bookdao=new BookDao();
books=bookdao.getBooksByPage(currPage);
request.setAttribute("books", books);
int pages;//总页数
int totalBooks=bookdao.getNumberOfBooks();//获取总的图书数量
if(totalBooks%Book.PAGE_SIZE==0){
pages=totalBooks/Book.PAGE_SIZE;
}else{
pages=totalBooks/Book.PAGE_SIZE+1;
}
StringBuffer sb=new StringBuffer();
for(int i=1;i<=pages;i++){
if(i==currPage){
sb.append("["+i+"]");
}else{
sb.append("<a href='ShowAllBooks?page='"+i+">"+i+"</a>");
}
}
request.setAttribute("page",sb.toString());
request.getRequestDispatcher("index.jsp").forward(request, response);
}catch(Exception e){
e.printStackTrace();
}
}
}


index.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="com.bookstore.Book" %>
<html>
<head>
</head>
<body>
<div class="books">
<ul class="books-show">
<%
Collection<Book> books=(Collection<Book>)request.getAttribute("books");
for(Book b:books){
 %>
<li>
<div class="book_pic">
<img src="Images/<%=b.getId() %>.jpg"/>
</div>
<h3>作者:<%=b.getAuthor() %></h3>
<h3>书名:<%=b.getTitle() %></h3>
<h3>价格:<%=b.getPrice() %></h3>
</li>
<%
}
 %>
</ul>
<div class="page">
<%=request.getAttribute("page") %>
</div>
</div>
</body>
</html>


我想问的是如何实现运行index.jsp就能载入servlet类?
------解决方案--------------------
引用:
Quote: 引用:

用include 还不如用javabean 为什么非要在jsp中国include一个servlet?

用javabean的话会不会在jsp文件中写入过多的jsp脚本代码??因为我想把逻辑部分通过
servlet实现,jsp只是用来展示

不会比你上面写的jsp代码多
<jsp:useBean id=""bookList" class="..." />
<c:foreach var="b" items="${bookList}">
<c:out value="${b.author}" />
....
</c:foreach>
  相关解决方案