Servlet服务器 HTTP 响应

上一篇博客《Servlet处理客户端HTTP请求》中简单介绍了如何使用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("<html>");
      writer.print("<head>");
      writer.print("<meta charset='UTF-8'>");
      writer.print("</head>");
      writer.print("<body>");
      writer.print("<h1>Hello!</h1>");
      writer.print("</body>");
      writer.print("<html>");
      writer.flush();
      writer.close();
   }
}

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

查看页面源代码如下:

<html><head><meta charset='UTF-8'></head><body><h1>Hello!</h1></body><html>

这正是我们输出内容。

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

response.sendRedirect("index.html");

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

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

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

时间: 2024-12-26 23:08:14

Servlet服务器 HTTP 响应的相关文章

Win7电脑DNS服务器未响应怎么解决?

  DNS服务器对我们来说十分重要的,如果它不能响应的话,我们就上不了网了.据说很多用户就碰到了这个问题,那么当你遇到Win7系统DNS服务器未响应该怎么办呢?不懂的朋友赶紧来看看小编提供的解决方法吧! 方法/步骤: 1.首先检查一下除了电脑外的其他无线设备能否连上同一个无线网络,如果也连不上,那就说明是网络原因;如果能连上,那就是电脑本身的问题,重新启动一下电脑看看能否连上. 2.如果电脑重启之后还是不行,那就修改一下DNS,例如修改成114.114.114.114. 3.一般完成第2步之后就

普联路由宽带拨号提示“服务器无响应”怎么办

  解决普联路由宽带拨号提示"服务器无响应"的方法一.检查物理链路 设置路由器上网时,路由器WAN口宽带拨号不成功,在路由器管理界面 常用设置 >> 上网设置 页面出现"服务器无响应"的提示,如下图. 解决普联路由宽带拨号提示"服务器无响应"排查方法如下. 可能原因:线路接错或者网线接口接触不良. 解决办法:请根据您的入户宽带线路类型,确认线路连接正确,如下. 如果线路连接正常,但WAN口指示灯不亮,检查是否网线接口接触不良,请换一条

dns服务器未响应解决方法

相信在平日上网中,很多朋友遇到过dns服务器未响应的问题,那么出现此故障是什么原因呢?又该如何解决呢? dns服务器支持多线解析,特别适合有多条出口线路的运营商.dns服务器对于外部DNS服务器对于外部INTERNET访问本地站点时候,可 以针对不同的用户解析到不同的IP地址(如来自网通的访问者,则解析到网通的镜像服务器,来自教育网的访问者,则解析到教育网的镜像服务器) 因此,dns服务器未响应状况的发生很可能是以下3种原因造成: ①由于网络故障与主控服务器的连接断开: ②为主控服务器配置的IP

dns服务器未响应怎么解决

  dns服务器未响应的解决方法 第一步:遇到这种情况,首先是先看看其它人的电脑或手机等设备连接网络是否正常,是否能打开网站.如果其它设备也都打不开,那当然是网络有问题了.否则就是电脑有问题了,这时首先尝试重启下电脑吧. 第二步:电脑重启后还不行,可以尝试将自己的DNS地址固定为一些免费的.速度比较快的DNS,比如:114.114.114.114(或者114.114.115.115)等. 第三步:一般,这时应该OK的.如果不OK,则可能是DNS服务没有开启.可按windows键+R键,在打开的"

配置正确但该设备或资源(DNS服务器)没有响应解决

  您的计算机配置似乎是正确的,但该设备或资源(DNS服务器)没有响应解决 这几天遇到了一个问题,新买的笔记本在公司老是上不去网,ping网关,时通时不通,丢包率大约在1%~5%左右,然后我怀疑是网卡驱动或是系统的问题,都重装了,问题仍然没有解决,然后我把笔记本拿回家去,家里是电信的宽带,自动获取IP和DNS那种,在家ping了一晚上网关,没丢一个包,ping回环127.0.0.1也不丢包,肯定不是本的问题我猜. 公司的上网方式是静态路由,绑定MAC,我怀疑是公司的无线路由器有问题,但其他同事的

phpmyadmin出现#2003服务器无响应解决方法小结_Mysql

1.在APMServ5.2.6出现问题的最简单的解决办法是 在本地计算机无法启动APMServ-MySQL5.1服务,错误1067,进程意外中止"的方法很简单,只要进入"D:\Program Files\APMServ5.2.6\MySQL5.1\bin"文件夹,找到mysqld-nt.exe文件执行即可. 默认情况下,当启动APMServ的时候,在服务中MySql5.1都是没有启动的,需要执行mysqld-nt.exe文件,开启MySql服务 2.我们还是来检查phpmya

ASP.NET 生成报表,超时时间已到。在操作完成之前超时时间已过或服务器未响应

问题描述 问题描述:系统每季度需生成报表数据,以前都没问题,这季度生成报表数据时提示超时时间已到.在操作完成之前超时时间已过或服务器未响应错误,初步分析原因是本季度生成的数据量很大,按照网上大家给的办法都没没有解决,请各位大侠帮忙.本人已尝试的设置:1.<httpRuntimemaxRequestLength="102400"executionTimeout="720"/>2.数据库服务器端连接超时等设置都是最大值但此方法都不管用,CommandTime

Windows 8系统中LOL登陆错误出现的服务器未响应怎么处理?

当你怀着闲情逸致的心情打开英雄联盟的时候,一条"登录服务器未响应,您可能遇到一个网络错误,请检查您的网络." 让你当场石化,还有比这更坑的事吗?切莫心急,请使用下方教程解决Win8系统中LOL登陆错误出现的服务器未响应的问题.  Win8系统中LOL登陆错误出现的服务器未响应的故障: 英雄联盟登录报错,无论用游戏平台,还是直接启动英雄联盟都会遇见这种问题 Win8系统中LOL登陆错误出现的服务器未响应的解决方法: 1.首先打开控制面板找到"查看网络状态和任务"点击进

DNS服务器不能响应的四大解决办法

使用电脑操作系统上的windows疑难解答会得到这样的提示:DNS服务器未响应.一般通过电脑操作系统上的windows疑难解答检测出来的结果是. 我们在日常上网的时候,有时候网络(网线)会突然的连接异常,打不开网站页面,但是QQ或者其他的网络即时通讯软件可以正常使用,但是却不能正常打开网页.使用电脑操作系统上的windows疑难解答会得到这样的提示:DNS服务器未响应.一般通过电脑操作系统上的windows疑难解答检测出来的结果是. 为什么像QQ.阿里旺旺等部分网络即时通讯软件和部分遨游浏览器可