会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132358个问题

canvas.png

<servlet>
    <servlet-name>autoStartServlet</servlet-name>
    <servlet-class>com.bjsxt.servlet.AutoStartServlet</servlet-class>
    <init-param>
        <param-name>path</param-name>
        <param-value>image</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>autoStartServlet</servlet-name>
    <url-pattern>/auto.do</url-pattern>
</servlet-mapping>
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;

public class AutoStartServlet extends HttpServlet {
    @Override
    public void init(ServletConfig config) throws ServletException {
        ServletConfig servletConfig = this.getServletConfig();
        String value = servletConfig.getInitParameter("path");
        ServletContext servletContext = this.getServletContext();
        servletContext.setAttribute("path",value);

    }
}


package com.bjsxt.servlet;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;

public class DemoServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        ServletContext servletContext = this.getServletContext();
        String path = (String) servletContext.getAttribute("path");
        String realPath = servletContext.getRealPath(path+"/zhw.jpg");
        File file =new File(realPath);
        FileInputStream fis=new FileInputStream(file);
        byte[] buff=new byte[fis.available()];
        fis.read(buff);

        resp.addHeader("Context-disposition","attachment;filename="+new String(file.getName().getBytes("gbk"),"iso-8859-1"));
        OutputStream os=resp.getOutputStream();
        os.write(buff);
        os.flush();
        os.close();
    }
}

老师我的状态码报错五百。  demo目录下为什么是空啊!  我去了本地文件里看了,里面是有图片的。

JAVA 全系列/第五阶段:JavaWeb开发/Servlet技术详解(旧) 1291楼
JAVA 全系列/第五阶段:JavaWeb开发/Servlet技术详解(旧) 1292楼
JAVA 全系列/第五阶段:JavaWeb开发/Servlet技术详解(旧) 1296楼

老师遇到状态码500的错误

canvas.png

package com.bjsxt.servlet;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;

public class respByteServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        /*图片载入*/
        File file=new File("d:/zhw.jpg");
        /*输出流*/
        FileInputStream fis=new FileInputStream("file");
        /*存入数组*/
        byte[] buff=new byte[fis.available()];
        fis.read(buff);/*读数据*/


        /*设置响应类型*/
        resp.setContentType("image/jpeg");
       /*用字节输出流*/
        OutputStream os=resp.getOutputStream();
        os.write(buff);/*写数据*/
        os.flush();
        os.close();
     }1
}
<servlet>
    <servlet-name>respByteServlet</servlet-name>
    <servlet-class>com.bjsxt.servlet.respByteServlet</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>respByteServlet</servlet-name>
    <url-pattern>/byte.do</url-pattern>
</servlet-mapping>

老师麻烦指导一下。。

JAVA 全系列/第五阶段:JavaWeb开发/Servlet技术详解(旧) 1298楼
JAVA 全系列/第五阶段:JavaWeb开发/Servlet技术详解(旧) 1299楼

帮忙看一下,为什么会遍历了两次,

jsp代码:

<%--
  Ajax小案例
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <script src="js/jquery.js"></script>
    <script>

        $(function () {
            //获取页面数据
            getData();
        })
        //获取页面数据
        function getData() {
            $.getJSON("Users.do",{flag:"getData"},function (result) {
                showData(result);
            })
        }

        //遍历展示数据
        function showData(obj) {
            var str = "";
            $.each(obj,function () {
                str +=
                    "<tr align='center'>" +
                    "       <td id='"+this.userid+"'>"+this.userid+"<td/>" +
                    "       <td>"+this.username+"<td/>" +
                    "       <td>"+this.usersex+"<td/>" +
                    "       <td>"+this.userbirth+"<td/>" +
                    "       <td>" +
                    "           <a href='#' onclick='preUpda()'>选择更新<a/>" +"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" +
                    "           <a href='#' onclick='delete("+this.userid+")'>删除数据<a/>" +
                    "       <td/>"
                    "<tr/>";

                $("#tbody").prepend(str);

            });
        }




    </script>
    <title>Title</title>
</head>
<body>
    <table align="center" border="1px" width="60%">
        <tr>
            <td>ID</td>
            <td><input type="text" name="userid" id="userid"></td>
            <td>用户名</td>
            <td><input type="text" name="username" id="username"></td>
        </tr>
        <tr>
            <td>性别</td>
            <td>
                <input type="radio" name="usersex" value="1" id="usersex_1">男
                <input type="radio" name="usersex" value="0" id="usersex_0">女
            </td>
            <td>生日</td>
            <td><input type="text" name="userbirth" id="userbirth"></td>
        </tr>
        <tr align="center">
            <td colspan="4">
                <input type="button" value="添加用户" id="add">
                <input type="button" value="更新用户" id="update">
            </td>
        </tr>
    </table>

    <hr/>

    <table align="center" width="60%" border="1px" id="mybody">
        <tr align="center">
            <td>ID</td><td></td>
            <td>姓名</td><td></td>
            <td>性别</td><td></td>
            <td>生日</td><td></td>
            <td>操作</td>
        </tr>
        <tbody id="tbody"></tbody>
    </table>

</body>
</html>

servlet代码

package com.bjsxt.servlet;

import com.bjsxt.commons.JsonUtils;
import com.bjsxt.pojo.User;
import com.bjsxt.pojo.Users;

import javax.servlet.ServletContext;
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.Date;
import java.util.List;

@WebServlet("/Users.do")
public class UsersServlet extends HttpServlet {

    //初始化数据,当作是数据库操作了
    @Override
    public void init() throws ServletException {
        Users users1 = new Users(1, "oldlu", "1", new Date());
        Users users2 = new Users(2, "Kavin", "0", new Date());
        Users users3 = new Users(3, "Tian", "0", new Date());
        List<Users> list = new ArrayList<>();
        list.add(users1);
        list.add(users2);
        list.add(users3);
        ServletContext servletContext = this.getServletContext();
        servletContext.setAttribute("list", list);
    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String flag = req.getParameter("flag");
        if (flag.equals("getData")){
            getDate(req, resp);
        }
    }

    private void getDate(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException{
        List<Users> list = (List<Users>) this.getServletContext().getAttribute("list");
        String s = JsonUtils.objectToJson(list);
        System.out.println(s);
        resp.setContentType("application/json");
        PrintWriter pw = resp.getWriter();
        pw.print(s);
        pw.flush();
        pw.close();

    }
}

展示结果:image.png


控制台,打印输出的json对象:

[{"userid":1,"username":"oldlu","usersex":"1","userbirth":"2020-10-09"},{"userid":2,"username":"Kavin","usersex":"0","userbirth":"2020-10-09"},{"userid":3,"username":"Tian","usersex":"0","userbirth":"2020-10-09"}]

确实是一个list没错

JAVA 全系列/第五阶段:JavaWeb开发/Ajax技术详解(旧) 1302楼
JAVA 全系列/第五阶段:JavaWeb开发/Web实战案例 1304楼
JAVA 全系列/第五阶段:JavaWeb开发/Ajax技术详解(旧) 1305楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637