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);

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

目录
相关文章
|
10月前
|
C# 图形学 开发者
Unity开发中使用UnityWebRequest从HTTP服务器下载资源。
总之,UnityWebRequest就是游戏开发者手中的万能钓鱼竿,既可以获取文本数据,也能钓上图片资源,甚至是那声音的涟漪。使用UnityWebRequest的时候,你需要精心准备,比如确定URL、配置请求类型和头信息;发起请求;巧妙处理钓获的数据;还需要机智面对网络波澜,处理各种可能出现的错误。按照这样的过程,数据的钓取将会是一次既轻松愉快也效率高效的编程钓鱼之旅。
594 18
|
10月前
|
应用服务中间件 网络安全 数据安全/隐私保护
网关服务器配置指南:实现自动DHCP地址分配、HTTP服务和SSH无密码登录。
哇哈哈,道具都准备好了,咱们的魔术秀就要开始了。现在,你的网关服务器已经魔法满满,自动分配IP,提供网页服务,SSH登录如入无人之境。而整个世界,只会知道效果,不会知道是你在幕后操控一切。这就是真正的数字世界魔法师,随手拈来,手到擒来。
498 14
|
9月前
|
JSON 前端开发 Go
Go语言实战:创建一个简单的 HTTP 服务器
本篇是《Go语言101实战》系列之一,讲解如何使用Go构建基础HTTP服务器。涵盖Go语言并发优势、HTTP服务搭建、路由处理、日志记录及测试方法,助你掌握高性能Web服务开发核心技能。
|
9月前
|
Go
如何在Go语言的HTTP请求中设置使用代理服务器
当使用特定的代理时,在某些情况下可能需要认证信息,认证信息可以在代理URL中提供,格式通常是:
652 0
|
11月前
|
存储 安全 数据安全/隐私保护
HFS-快速创建HTTP服务器
鉴于HFS的操作简便和方便快捷,它在满足快速,临时的文件分享和传输需求上,能够发挥出巨大的作用。只要明确了以上的安全警告,并做好了必需的安全设置,HFS将是一款实用的HTTP服务器工具。
1418 9
|
缓存 安全 Java
Java服务器端技术:Servlet与JSP的集成与扩展
Java服务器端技术:Servlet与JSP的集成与扩展
259 3
|
存储 Java 关系型数据库
基于Servlet和JSP的Java Web应用开发指南
基于Servlet和JSP的Java Web应用开发指南
588 1
|
存储 缓存 前端开发
Servlet与JSP在Java Web应用中的性能调优策略
Servlet与JSP在Java Web应用中的性能调优策略
270 1
|
前端开发 安全 Java
在Java服务器端开发的浩瀚宇宙中,Servlet与JSP犹如两颗璀璨的明星,它们联袂登场,共同编织出动态网站的绚丽篇章。
在Java服务器端开发的浩瀚宇宙中,Servlet与JSP犹如两颗璀璨的明星,它们联袂登场,共同编织出动态网站的绚丽篇章。
210 1
|
自然语言处理 前端开发 Java
Servlet与JSP:Java Web开发的基石技术详解
【6月更文挑战第23天】Java Web的Servlet与JSP是动态网页的核心。Servlet是服务器端的Java应用,处理HTTP请求并响应;JSP则是结合HTML与Java代码的页面,用于动态内容生成。Servlet通过生命周期方法如`init()`、`service()`和`destroy()`工作,而JSP在执行时编译成Servlet。两者在MVC架构中分工,Servlet处理逻辑,JSP展示数据。尽管有Spring MVC等框架,Servlet和JSP仍是理解Web开发基础的关键。
424 12

热门文章

最新文章