servlet与javabean实现长文本数据分页显示

类别:Java 点击:0 评论:0 推荐:

这是做wap的时候遇到的问题,您遇到类似的问题可以参考一下!
javabean文件:
DataConnection.java;//数据库连接
BasicInfo.java;//数据bean容器
DataWork.java;//数据操作
servlet文件:
OrderInfoServlet.java;//servlet实现长文本数据分页显示
xml配置文件:
web.xml;//servlet配置

DataConnection.java文件内容为:

package wap_cctv_film;

import java.sql.*;

public class DataConnection {

  public static Connection getDataConnection() {
    Connection conn = null;
    try {
      Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
      conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=wapvod","cctv_sql_user","cctv_sql_user");
    }
    catch (Exception ex) {
      ex.printStackTrace();
    }
    return conn;
  }
}


BasicInfo.java文件内容:

package wap_cctv_film;

import java.io.*;

public class BasicInfo
    implements Serializable {
  private String basicName;
  private int basicHits;
  private int basicID;
  private String basicText;
  private int basicIsShow;
  private int basicType;
  public String getBasicName() {
    return basicName;
  }

  public void setBasicName(String basicName) {
    this.basicName = basicName;
  }

  public int getBasicHits() {
    return basicHits;
  }

  public void setBasicHits(int basicHits) {
    this.basicHits = basicHits;
  }
  public int getBasicID() {
    return basicID;
  }
  public void setBasicID(int basicID) {
    this.basicID = basicID;
  }
  public String getBasicText() {
    return basicText;
  }
  public void setBasicText(String basicText) {
    this.basicText = basicText;
  }
  public int getBasicIsShow() {
    return basicIsShow;
  }
  public void setBasicIsShow(int basicIsShow) {
    this.basicIsShow = basicIsShow;
  }
  public int getBasicType() {
    return basicType;
  }
  public void setBasicType(int basicType) {
    this.basicType = basicType;
  }

}

DataWork.java文件内容:

package wap_cctv_film;

import java.sql.*;
import java.util.*;

public class DataWork {
  private Connection conn;
  public DataWork() {
    this.conn = DataConnection.getDataConnection();
  }
  public BasicInfo getBasciInfo(String sql) throws Exception {
    Statement stmt = conn.createStatement();
    ResultSet rst = stmt.executeQuery(sql);
    BasicInfo basicinfo = null;
    while (rst.next()) {
      basicinfo = new BasicInfo();
      basicinfo.setBasicID(rst.getInt("basicID"));
      basicinfo.setBasicType(rst.getInt("basicType"));
      basicinfo.setBasicName(rst.getString("basicName"));
      basicinfo.setBasicText(rst.getString("basicText"));
      basicinfo.setBasicHits(rst.getInt("basicHits"));
      basicinfo.setBasicIsShow(rst.getInt("basicIsShow"));
    }
    return basicinfo;
  }

OrderInfoServlet.java文件内容:

package wap_cctv_film;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;

public class OrderInfoServlet
    extends HttpServlet {
  private static final String CONTENT_TYPE = "text/vnd.wap.wml;charset=gb2312";

  //Initialize global variables
  public void init() throws ServletException {
  }

  //Process the HTTP Get request
  public void doGet(HttpServletRequest request, HttpServletResponse response) throws
      ServletException, IOException {
    response.setContentType(CONTENT_TYPE);
    PrintWriter out = response.getWriter();
    int articleID;
    if (request.getParameter("articleID") == null) {
      articleID = 0;
    }
    else {
      articleID = Integer.parseInt(request.getParameter("articleID"));
    }
    try {
      DataWork getInfo = new DataWork();
      BasicInfo basicinfo = getInfo.getBasciInfo(
          "select * from BasicInfo where basicID=" + articleID);
      out.println("<?xml version='1.0'?>");
      out.println("<wml>");
      out.println("<head>");
      out.println("<meta http-equiv='Cache-Control' content='max-age=0' />");
      out.println("</head>");
      out.println("<card id='MAIN' title='梦幻掌上剧场--剧情简介--" +
                  basicinfo.getBasicName() +
                  "'>");
      out.println("<p>");
      out.println("《" + basicinfo.getBasicName() + "》剧情简介<br />");
      int pagewords = 199; //每一页显示的字数
      int pageCount; //所有的页数
      int pages; //当前页
      //若pages为空,则付值1;否则等于
      if (request.getParameter("pages") == null) {
        pages = 1;
      }
      else {
        pages = Integer.parseInt(request.getParameter("pages"));
      }
      int textLen = basicinfo.getBasicText().length();//文本长度
      //求出文本分段得出的总页数;
      if (textLen % pagewords == 0) {
        pageCount = (int) Math.ceil(textLen / pagewords);
      }
      else {
        pageCount = (int) Math.ceil(textLen / pagewords) + 1;
      }
      //当前页面总文本剩余的长度,得出两种条件选择;
      int lastTextLen = textLen - pages * pagewords;
      //一种是剩余长度大于一页文字的长度,即大于199个字;
      if (lastTextLen > pagewords) {
        out.println(basicinfo.getBasicText().substring( (pages - 1) *
            pagewords,
            pages * pagewords) + "(第" + pages + "/" + pageCount + "页)<br />");
      }
      //一种是剩余文本长度小于一页文字的长度;即是最后一页;
      else if (lastTextLen < pagewords) {
        out.println(basicinfo.getBasicText().substring( (pages - 1) *
            pagewords, textLen - 1) + "(第" + pages + "/" + pageCount +
                    "页)<br />");
      }
      //分页
      int lastPage = pages - 1; //上一页
      int nextPage = pages + 1; //下一页
      //总页数大于一则显示分页
      if (pageCount > 1) {
        if (pages < pageCount) {
          out.println("<a href='?articleID=" + articleID +
                      "&amp;pages=" + nextPage + "'>下一页</a><br />");
        }
        if (pages != 1) {
          out.println("<a href='?articleID=" + articleID +
                      "&amp;pages=" + lastPage + "'>上一页</a><br />");
        }
      }
      out.println("<a href='indexservlet'>[返回首页]</a><br />");
      out.println("<a href='http://wap.monternet.com'>[梦网首页]</a><br />");
      out.println("</p>");
      out.println("</card>");
      out.println("</wml>");
    }
    catch (Exception ex) {
    }
  }

  //Clean up resources
  public void destroy() {
  }
}

web.xml文件中新增:

 <servlet>
    <servlet-name>orderinfoservlet</servlet-name>
    <servlet-class>wap_cctv_film.OrderInfoServlet</servlet-class>
  </servlet>
 <servlet-mapping>
    <servlet-name>orderinfoservlet</servlet-name>
    <url-pattern>/orderinfoservlet</url-pattern>
  </servlet-mapping>

其他编译配置就不多说了,这里面有什么错误或者您有好的建议请mail:[email protected],谢谢!让我们共同学习!!

本文地址:http://com.8s8s.com/it/it12470.htm