---servlet(三)HttpServletResponse对象和 HttpServletRequest对象

来源:互联网 发布:单片机按键程序 编辑:程序博客网 时间:2024/06/01 09:50

servlet总结四

web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象和代表响应的response对象。request和response对象既然代表请求和响应,那我们获取客户机提交过来的数据,只需要request对象即可,要向客户机输出数据,只需要response对象即可。

#### HttpServletResponse对象和 HttpServletRequest对象。

public class TestRequestAndResponse extends HttpServlet {    /**     *      */    private static final long serialVersionUID = 1L;    @Override    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {        // TODO Auto-generated method stub        /**         * request封装了用户的请求信息,         */        // uri标识一个资源,url标识互联网上的一个资源,url是uri的子集        System.out.println(req.getRequestURL());// http://localhost:8080/WebApp2/TestRequestAndResponse        System.out.println(req.getRequestURI());// /WebApp2/TestRequestAndResponse        // 请求http://localhost:8080/test/servlet/req?name=tuxianchao        System.out.println(req.getQueryString());// 打印出name=tuxianchao        System.out.println(req.getRemoteAddr());// 打印出来访地址:127.0.0.1        System.out.println(req.getRemoteHost());// 打印来访主机:127.0.0.1        System.out.println(req.getRemotePort());// 打印来访端口号:28861        System.out.println(req.getLocalAddr());// 打印出服务器地址:127.0.0.1        System.out.println(req.getMethod());// 打印访问方式:GET/POST        String param1 = req.getParameter("paramName");// 回去表单里提交过来的数据。        Enumeration<String> params = req.getParameterNames();        while (params.hasMoreElements()) {            String name = (String) params.nextElement();            String value = req.getParameter(name);        }        /**         *          * response向用户返回信息,         */        PrintWriter out = resp.getWriter();// 获取输出字符流        out.write("hello!!!");        ServletOutputStream outputStream = resp.getOutputStream();// 获取输出的字节流        // resp.setContentType("");设置输出内容类型    }    @Override    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {        // TODO Auto-generated method stub        doPost(req, resp);    }}

向浏览器输出一张随机图片:

//  设置头,浏览器不要缓存图片数据        resp.setHeader("cache-control", "no-cache");        //  通知浏览器以图片方式打开        resp.setHeader("content-type", "image/jpeg");        // 创建图片        BufferedImage bufferedImage = new BufferedImage(90, 30, BufferedImage.TYPE_INT_RGB);        // 得到图片        Graphics2D graphics2d = (Graphics2D) bufferedImage.getGraphics();        graphics2d.setColor(Color.WHITE);        graphics2d.fillRect(0, 0, 90, 30);        graphics2d.setColor(Color.RED);// 设置图片背景        graphics2d.setFont(new Font(null, Font.BOLD, 30));        graphics2d.drawString(getRandomNum(), 0, 30);        // 写给浏览器        ImageIO.write(bufferedImage, "jpg", resp.getOutputStream());

getRandomNum():

private String getRandomNum() {        // TODO Auto-generated method stub        Random random = new Random();        return new StringBuilder().append(random.nextInt(10) + "").append(random.nextInt(10) + "")                .append(random.nextInt(10) + "").append(random.nextInt(10) + "").toString();    }

效果:这里写图片描述

这里写图片描述

0 0
原创粉丝点击