纯Servlet简单分页代码

运行方式:

1)直接复制代码,可以直接拉到底下复制

2)启动Tomcat

3)跳转请求/top10

 

分页功能主要注意点:

1)London:只有一个?表示在当前页传值,主要是为了完成分页功能

2)Select City当前页不传值跳转的超链接格式

3)List如何赋值给另一个List

List londonAttractions= new ArrayList(3){{
    add("b1");
    add("b2");
    add("b3");
}};
List attractions = null;
attractions = londonAttractions;

注意点1、2相关内容,点击跳转

注意点3相关内容,点击跳转

 

分页主要代码:

判断当前第几页Page

int page = 1;
String pageParameter = req.getParameter("page");
if (pageParameter != null){
   try{
      page = Integer.parseInt(pageParameter);
   }catch (NumberFormatException e){
      e.printStackTrace();
   }
   if (page > 2){
       page = 1;
   }
}

根据page的值来决定显示哪一页消息

int start = page * 5 - 5;
for (int i = start; i < start + 5; i++) {
     writer.println(attractions.get(i) + "
"); }

 

完整Servlet代码:

package com.fxy.servlet;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;

@WebServlet(name = "Top10Servlet",urlPatterns = {"/top10"})
public class Top10Servlet extends HttpServlet{
    private static final long serialVersionUID = 987654321L;

    private List londonAttractions;
    private List parisAttractions;
    public void init() throws ServletException{
        londonAttractions = new ArrayList(10);
        londonAttractions.add("a1");
        londonAttractions.add("a2");
        londonAttractions.add("a3");
        londonAttractions.add("a4");
        londonAttractions.add("a5");
        londonAttractions.add("a6");
        londonAttractions.add("a7");
        londonAttractions.add("a8");
        londonAttractions.add("a9");
        londonAttractions.add("a10");

        parisAttractions = new ArrayList(10){{
            add("b1");
            add("b2");
            add("b3");
            add("b4");
            add("b5");
            add("b6");
            add("b7");
            add("b8");
            add("b9");
            add("b10");
        }};

    }

    /**
     * urlPatterns = {"/top10"}拦截请求第一次进入这个servlet调用的方法
     * 快捷键:Ctrl+O 重写方法
     */
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String city = req.getParameter("city");
        if (city != null && ( city.equals("london") || city.equals("paris") )) {
            showAttractions(req,resp,city);
        }else {
            showMainPage(req,resp);
        }
    }

    /**
     * 首页,注意超链接格式
     * London
     * 只有一个?表示在当前页传值,主要是为了完成分页功能
     */
    private void showMainPage(HttpServletRequest req, HttpServletResponse resp) throws IOException {
        resp.setContentType("text/html");
        PrintWriter writer = resp.getWriter();
        writer.print(""+"Top10Tourist Attractions"+
            ""+
            "Please select a city:"+
            "
London"+ "Paris
" ); } /** * 显示数据页面,注意: * 1)List如何赋值给另一个List * 2)当前页不传值跳转的超链接格式Select City */ private void showAttractions(HttpServletRequest req, HttpServletResponse resp, String city) throws IOException { int page = 1; String pageParameter = req.getParameter("page"); if (pageParameter != null){ try{ page = Integer.parseInt(pageParameter); }catch (NumberFormatException e){ e.printStackTrace(); } if (page > 2){ page = 1; } } List attractions = null; if (city.equals("london")){ attractions = londonAttractions; }else if (city.equals("paris")){ attractions = parisAttractions; } resp.setContentType("text/html"); PrintWriter writer = resp.getWriter(); writer.println(""+ "Top 10 Tourist Attractions"+ ""); writer.println("Select City"); writer.println("
Page"+ page + "
"); int start = page * 5 - 5; for (int i = start; i < start + 5; i++) { writer.println(attractions.get(i) + "
"); } writer.print("
"+ "Page 1" ); writer.print("
"+ "Page 2" ); writer.println(""); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { super.doPost(req, resp); } }

 

你可能感兴趣的:(Servlet)