⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 boardservlet.java

📁 java结合ajax编写的简易留言本
💻 JAVA
字号:
package anni.gbook.ajax;

import java.io.IOException;
import java.io.PrintWriter;

import java.util.List;
import java.util.logging.Logger;

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

import anni.gbook.BoardInfo;
import anni.gbook.FileDAO;
import anni.gbook.IBoardDAO;


/**
 * 显示留言.
 * @author Lingo
 * @version 1.0
 * @since 2006-01-19
 */
public class BoardServlet extends HttpServlet {
    /**
     * 日志.
     */
    private Logger log = Logger.getLogger(BoardServlet.class.getName());

    /**
     * 标题.
     */
    private String title = Constants.TITLE;

    /**
     * 版权.
     */
    private String copyright = Constants.COPYRIGHT;

    /**
     * 图片.
     */
    private String[] images = Constants.IMAGES;

    /**
     * dao接口.
     */
    private IBoardDAO dao = null;

    /**
     * 初始化dao.
     * @param config 配置
     * @throws ServletException servlet异常
     */
    public final void init(final ServletConfig config)
        throws ServletException {
        super.init(config);
        dao = FileDAO.getInstance();
    }

    /**
     * 销毁servlet.
     */
    public final void destroy() {
        super.destroy();
        dao = null;
    }

    /**
     * 处理get请求.
     * @param request 请求
     * @param response 响应
     * @throws ServletException servlet异常
     * @throws IOException io异常
     */
    protected final void doGet(final HttpServletRequest request,
        final HttpServletResponse response)
        throws ServletException, IOException {
        log.info("start");

        //System.out.println("service");
        String currentPage = request.getParameter("currentPage");

        response.setContentType("text/xml");
        response.setCharacterEncoding("GBK");

        StringBuffer buff = new StringBuffer();

        buff.append("<?xml version=\"1.0\" encoding=\"GBK\"?>")
            .append("<constants>").append("<title>").append(title)
            .append("</title>").append("<copyright>").append(copyright)
            .append("</copyright>").append(getImages())
            .append(getInfos(currentPage)).append("</constants>");

        PrintWriter out = response.getWriter();
        out.print(buff.toString());

        log.info("end");
    }

    /**
     * 获得所有图片的信息.
     * @return String xml
     */
    private String getImages() {
        StringBuffer buff = new StringBuffer();
        int len = images.length;

        for (int i = 0; i < len; i++) {
            buff.append("<image>").append(images[i]).append("</image>");
        }

        return buff.toString();
    }

    /**
     * 获得当前页的留言信息.
     * @param currentPage 当前页
     * @return String xml
     */
    private String getInfos(final String currentPage) {
        List list = dao.findAll();
        int pageSize = 6;
        int sum = list.size();
        int num = ((sum - 1) / pageSize) + 1;

        int curr = 0;

        try {
            curr = Integer.parseInt(currentPage);
        } catch (NumberFormatException ex) {
            System.err.println(ex);
        }

        if (curr < 0) {
            curr = 0;
        } else if (curr >= num) {
            curr = num - 1;
        }

        int start = curr * pageSize;
        int end = start + pageSize;

        if (end > sum) {
            end = sum;
        }

        StringBuffer buff = new StringBuffer();
        BoardInfo info;

        //for(int i=start; i<=start; i++)
        for (int i = start; i < end; i++) {
            info = (BoardInfo) list.get(i);
            buff.append("<info>").append("<id>").append(info.getId())
                .append("</id>").append("<username>")
                .append(info.getUsername().replaceAll("<", "&lt;"))
                .append("</username>").append("<emailmessage>")
                .append(info.getEmailMessage().replaceAll("<", "&lt;"))
                .append("</emailmessage>").append("<homepage>")
                .append(info.getHomePage().replaceAll("<", "&lt;"))
                .append("</homepage>").append("<img>").append(info.getImg())
                .append("</img>").append("<contentformat>")
                .append(info.getContentFormat().replaceAll("<", "&lt;"))
                .append("</contentformat>").append("<dateformat>")
                .append(info.getDateFormat()).append("</dateformat>")
                .append("<reply>")
                .append(info.getReply().replaceAll("<", "&lt;"))
                .append("</reply>").append("</info>");

            //log.info(info.getContentFormat());
        }

        //log.info(buff.toString());
        buff.append("<currentpage>").append(curr).append("</currentpage>")
            .append("<sum>").append(sum).append("</sum>").append("<num>")
            .append(num).append("</num>");

        return buff.toString();
    }

    /*
            String getPageInfo(String currentPage)
            {
                    List list = dao.findAll();
                    int pageSize = 6;
                    //int sum = list.size();
                    int num = (sum-1)/pageSize + 1;
                    int curr = 0;
                    try
                    {
                            curr = Integer.parseInt(currentPage);
                    }
                    catch (NumberFormatException ex){}
                    if(curr < 0)
                    {
                            curr = 0;
                    }
                    else if(curr >= num)
                    {
                            curr = num-1;
                    }
                    StringBuffer buff = new StringBuffer();
                    buff.append("<currentpage>").append(curr).append("</currentpage>")
                            .append("<sum>").append(sum).append("</sum>")
                            .append("<num>").append(num).append("</num>");
                    return buff.toString();
            }
    */
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -