1

我正在做一个广告页面,它提供代码以粘贴到某人的页面上并获取图片或文本。

我得到了 servlet,它只显示数据库中的图片或文本,并希望将其包含在某人的页面上。

我尝试 <script src="http://mylocalhost/myservlet?someparameters=x"></script> 但它不起作用。

当我做简单的 HTML 页面并 <img src="http://mylocalhost/myservlet?someparameters=x"> 显示图像时(我需要提供参数和 servlet 解析它应该是图像或文本)。

我的小服务程序:

protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    try {
        String wielkosc = request.getParameter("wielkosc");
        String typ = request.getParameter("typ");
        ArrayList<Integer> lista = new ArrayList<Integer>();
//WYŚWIETLANIE OBRAZKÓW  -------------------------------------------------------------------------
        if (typ.equals("1")) {

            PreparedStatement ps = con.prepareStatement("SELECT Id FROM Reklamy WHERE Typ=? AND Size=?");
            if (wielkosc.equals("0")) {
                ps.setInt(1, 1);
                ps.setInt(2, 0);
            } else if (wielkosc.equals("1")) {
                ps.setInt(1, 1);
                ps.setInt(2, 1);
            }

            ResultSet rs = ps.executeQuery();
            while (rs.next()) {
                lista.add(rs.getInt("Id"));
            }
            Random r = new Random();
            PreparedStatement ps2 = con.prepareStatement("SELECT Content FROM Reklamy WHERE Id=?");
            int los = r.nextInt(lista.size());
            ps2.setInt(1, lista.get(los));

            rs = ps2.executeQuery();
            if (rs.next()) {
                Blob blob = rs.getBlob(1);
                InputStream stream = blob.getBinaryStream();
                int len = (int) blob.length();
                System.out.println(len);
                byte[] rb = new byte[len];
                int read = stream.read(rb, 0, len);
                response.setContentType("image/jpg");
                response.getOutputStream().write(rb, 0, len);
                response.getOutputStream().flush();
            }
// WYŚWIETLANIE TEKSTU -------------------------------------------------------------------------
        } else if (typ.equals("0")) {
            PreparedStatement ps = con.prepareStatement("SELECT Id FROM Reklamy WHERE Typ=? AND Size=?");
            if (wielkosc.equals("0")) {
                ps.setInt(1, 0);
                ps.setInt(2, 0);
            } else if (wielkosc.equals("1")) {
                ps.setInt(1, 0);
                ps.setInt(2, 1);
            }

            ResultSet rs = ps.executeQuery();
            while (rs.next()) {
                lista.add(rs.getInt("Id"));
            }
            System.out.println(lista.size());
            Random r = new Random();
            PreparedStatement ps2 = con.prepareStatement("SELECT Content FROM Reklamy WHERE Id=?");
            int los = r.nextInt(lista.size());
            ps2.setInt(1, lista.get(los));                
            rs = ps2.executeQuery();
            if (rs.next()) {
                Blob blob = rs.getBlob(1);
                InputStream stream = blob.getBinaryStream();
                int len = (int) blob.length();
                System.out.println(len);
                byte[] rb = new byte[len];
                int read = stream.read(rb, 0, len);
                response.setContentType("text/html;charset=UTF-8");
                response.getOutputStream().write(rb, 0, len);
                response.getOutputStream().flush();
            }
        }
    }
4

0 回答 0