博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Servlet服务器 HTTP 响应
阅读量:6226 次
发布时间:2019-06-21

本文共 2280 字,大约阅读时间需要 7 分钟。

上一篇博客中简单介绍了如何使用Servlet处理客户端的请求,只处理请求,我们的工作其实只做了一半,请求处理完后,我们要对客户端的请求进行响应,这一篇博文将介绍Servlet如何响应。

同样的,我们在之前的工程上进行修改。

package com.gujin.servlet;import java.io.IOException;import java.io.PrintWriter;import java.util.Enumeration;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class Test extends HttpServlet{
private static final long serialVersionUID = 1L; protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); // 获得请求头信息 System.out.println("======HEAD INFO======"); Enumeration enumeration = request.getHeaderNames(); while (enumeration.hasMoreElements()) { String name = (String) enumeration.nextElement(); Enumeration headers = request.getHeaders(name); while (headers.hasMoreElements()) { System.out.println(name + ":" + headers.nextElement()); } } // 获得请求参数 System.out.println("======REQUEST PARAM======"); // 获得指定参数 // request.getParameter("userId"); // 获得所有请求参数名称 // request.getParameterNames(); // 获得请求参数集合 // request.getParameterMap(); Enumeration names = request.getParameterNames(); while (names.hasMoreElements()) { String name = (String) names.nextElement(); System.out.println(name + ":" + request.getParameter(name)); } // 设置响应内容类型 response.setContentType("text/html;charset=UTF-8"); PrintWriter writer = response.getWriter(); // 想输出流写的内容就是客户端接收到的内容 writer.print(""); writer.print(""); writer.print("
"); writer.print(""); writer.print(""); writer.print("

Hello!

"); writer.print(""); writer.print(""); writer.flush(); writer.close(); }}

这样服务端就像客户端输出了一个网页,显示效果如下:

这里写图片描述

查看页面源代码如下:

Hello!

这正是我们输出内容。

在上面的例子中,我们直接的向客户端输出了HTML,我们还可以控制跳转到指定的页面,代码如下:

response.sendRedirect("index.html");

这样可以将页面重定向到index.html页面,除了重定向外,我们还可以实现请求转发,代码如下:

request.getRequestDispatcher("index.html").forward(request, response);

重定向和请求转发都可以控制页面的跳转,二者的区别在于重定向是由客户端重新请求,而请求转发是服务端进行跳转,在浏览器上现实的地址还是原请求地址,重定向显示新的地址。

你可能感兴趣的文章
Io流的概述
查看>>
App 卸载记录
查看>>
JavaScript变量和作用域
查看>>
开源SIP服务器加密软件NethidPro升级
查看>>
百度页面分享插件源代码
查看>>
《别做正常的傻瓜》的一些读书心得
查看>>
作业:实现简单的shell sed替换功能和修改haproxy配置文件
查看>>
spring配置多数据源问题
查看>>
Altium 拼板方法以及 注意的 地方
查看>>
简明Linux命令行笔记:tail
查看>>
PMP考试的过与只是
查看>>
java 监控 收集资料3(收集中)
查看>>
实例演示如何使用AgileEAS.NET SOA平台工作流进行业务流程自定义
查看>>
Spring Cloud Alibaba迁移指南(二):零代码替换 Eureka
查看>>
聊聊BOM的那些事
查看>>
Apache Pulsar中的地域复制,第1篇:概念和功能
查看>>
getRealPath()和getContextPath()的区别
查看>>
Hadoop MapReduce编程 API入门系列之wordcount版本2(六)
查看>>
一个页面标题和过滤输出的解决方案(上)
查看>>
解决windows使用rsync同步到Linux权限问题
查看>>