栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

第三周

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

第三周

请求和响应 HttpServletResponse对象

在servlet api中定义了一个httpservletresponse接口,它继承自servletresponse接口,专门用来封装http响应消息,由于http响应消息分为状态行,响应消息头,消息体三部分,因此在httpservletresponse接口中定义了向客户端发送响应状态码,响应消息头,响应消息体的方法。

发送状态码相关的方法

Servlet向客户端回送响应消息时,需要在响应消息中设置状态码,为此,在httpservletresponse接口中定义了两个发送状态码的方法。

setStatus(int status)方法 sendError(int sc)方法 发送响应消息头 发送响应消息体相关的方法

由于在 HTTP 响应消息中,大量的数据都是通过响应消息体传递的,因此,ServletResponse
遵循以I0 流传递大量数据的设计理念。在发送响应消息体时,定义了两个与输出流相关的方法,具体如下。

  1. getOutputStream()方法
    该方法所获取的字节输出流对象为 ServletOutputStream 类型。由于 ServletOutputStream
    是 OutputStream 的子类,它可以直接输出字节数组中的二进制数据。因此,要想输出二进制格式的响应正文,就需要使用 getOutputStream()方法。
  2. getWriter()方法
    该方法所获取的字符输出流对象为 PrintWriter 类型。由于 PrintWriter 类型的对象可以直接输出字符文本内容,因此,要想输出内容全为字符文本的网页文档,需要使用 getWriter()方法
Httpservletrespons应用 解决中文输出乱码问题

1.创建 Servlet
在chapter04项目的cn.icast,chapter04.response包中编写一个名为 ChineseServlet的类,在该类中定义一个中文字符串,然后使用字符输出流输出。
2.配置映射信息,查看运行结果
在web.xml中,配置完chineseservlet的映射后,启动tomcat服务器

实现网页定时刷新并跳转

1.创建 Servlet
在chapter04项目的cn.icast,chapter04.response包中编写一个名为RefreshServlet的类,该类使用response对象的set Header()方法实现了网页的定时刷新并跳转的功能。
2.配置映射信息,查看运行结果
在web.xml中,配置完refreshservlet的映射后,启动tomcat服务器

实现请求重定向

在某些情况下,针对客户端的请求,一个 Servet 类可能无法完成全部工作。这时,可以使用请求重定向来完成。所谓请求重定向,指的是 Web 服务器接收到客户端的请求后,可能由于某些条件限制,不能访问当前请求URL所指向的Web 资源,而是指定了一个新的资源路径,让客户端重新发送请求。
为了实现请求重定向,在 HttpServletResponse接口中,定义了一个 sendPediect()方法,该方法用于生成 302 响应码和 Location响应头,从而通知客户端重新访问 Location 响应头中指定的 URL,sendRedirect()方法的完整语法。

HttpServletRequest对象

在Senvlet API中,定义了一个 HtpServletRequest 接口,它继承自 SenvletRequest接口,专门用来封装 HTTP 请求消息。由于 HTTP 请求消息分为请求行、请求消息头和请求消息体 3部分,因此,在 HttpServietRequest接口中定义了获取请求行、请求头和请求消息体的相关方法。

获取请求行信息的相关方法

当访问 Senvlet 时,会在请求消息的请求行中,包含请求方法、请求资源名、请求路径等信息,为了获取这些信息,在 HtpServietRequest接口中,定义了一系列用于获取请求行的方法。

获取请求消息头的相关方法

当请求 Servlet 时,需要通过请求头向服务器传递附加信息,例如,客户端可以接收的数据类型、压缩方式、语言等。

代码级成果展示
package cn.itcast.chapter04.request;

import java.io.IOException;
import java.util.Enumeration;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


@WebServlet("/head")
public class RequestHead extends HttpServlet {
	private static final long serialVersionUID = 1L;

	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		System.out.println("yuanxuehua");
		response.setContentType("text/heml;charset=utf-8");
		Enumeration er=request.getHeaderNames();
		while(er.hasMoreElements()) {
			String name=er.nextElement();
			String value=request.getHeader(name);
			System.out.println("消息头:"+name +" : "+value);
			//System.out.println("消息头:"+name +" : "+value+"
"); } } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); } }
package cn.itcast.chapter04.request;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


@WebServlet("/line")
public class RequestLine extends HttpServlet {
	private static final long serialVersionUID = 1L;

	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String method=request.getMethod();
		System.out.println("请求方式:"+method);
		String proto=request.getProtocol();
		System.out.println("请求协议方式:"+proto);
		String contextpath=request.getContextPath();
		System.out.println("请求路径:"+contextpath);
		String servletpath=request.getServletPath();
		System.out.println("servletpath:"+servletpath);
		String pathURI=request.getRequestURI();
		StringBuffer pathURL=request.getRequestURL();
		System.out.println("URI: "+pathURI+"   URL: "+pathURL);
		
		
	}

	
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}
package cn.itcast.chapter04.request;

import java.io.IOException;
import java.util.Arrays;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


@WebServlet("/Param")
public class RequestParamServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	System.out.println("get请求");
		String username= request.getParameter("username");
		System.out.println("username:"+username);
		String password= request.getParameter("password");
		System.out.println("password:"+password);
		String[] hobbys=request.getParameterValues("hobby");
		System.out.println("hobbys:"+Arrays.toString(hobbys));

	}

	
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    System.out.println("post请求");
		request.setCharacterEncoding("utf-8");
		String username= request.getParameter("username");
		System.out.println("username:"+username);
		String password= request.getParameter("password");
		System.out.println("password:"+password);
		String[] hobbys= request.getParameterValues("hobby");
		System.out.println("hobbys:"+Arrays.toString(hobbys));

	}

}
package cn.itcast.chapter04.response;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


@WebServlet("/Chinese")
public class ChineseServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("text/heml;charset=utf-8");
		String data="2020080605045 袁雪华 大数据2005";
		PrintWriter pw=response.getWriter();
		pw.print(data);
	}

	
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}
package cn.itcast.chapter04.response;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


@WebServlet("/loc")
public class Loc extends HttpServlet {
	private static final long serialVersionUID = 1L;

	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setStatus(302);
		response.setHeader("Location","/chapter04/login.html");
	}

	
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}
package cn.itcast.chapter04.response;

import java.io.IOException;
import java.util.Date;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


@WebServlet("/Refresh")
public class RefreshServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setHeader("Refresh", "3");
		response.getWriter().print(new Date());
	}

	
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}



2020080605045 袁雪华 大数据2005
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/451025.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号