Servlet入门学习(二)

从上一篇Servlet入门学习(一)中我们大致了解了servlet的特点,以及使用过程,这一篇我们将针对servlet中两个重要的对象Request和Response做一个大致的讲述。

一、Request对象学习

作用:封存了当前请求的所有请求信息。
使用方式

  • 获取请求头数据
req.getMethod()//获取请求方式
req.getRequestURL()//获取请求URL信息
req.getRequestURI()//获取请求URI信息
req.getScheme()//获取传输协议
  • 获取请求行数据
req.getHeader()//获取指定的请求头信息
req.getHeaderNames()//获取请求头的键名的枚举集合
  • 获取用户数据
req.getParameter()//返回指定的用户数据
req.getParameterValues()//返回同键不同值的请求数据(多选)返回的是数组
req.getParameterNames()//返回所有用户请求数据的枚举集合。

注意:

  1. resquest对象由tomcat服务器创建,并作为实参传递给处理请求的servlet的service方法;
  2. 如果要获取的请求数据不存在,不会报错,返回null。

实例代码展示:

import java.io.IOException;
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 reequest_demo extends HttpServlet {
	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		// 获取请求头信息
		// 获取请求方式
		String method = req.getMethod();
		// 获取请求URL
		StringBuffer requestURL = req.getRequestURL();
		// 获取请求URI
		String requestURI = req.getRequestURI();
		// 获取协议
		String scheme = req.getScheme();
		System.out.println(method + " " + requestURL + " " + requestURI + " " + scheme);
		// 获取请求行数据
		// 获取指定的请求行信息
		String header = req.getHeader("User-Agent");
		System.out.println(header);
		// 获取所有的请求行的键的枚举
		Enumeration e = req.getHeaderNames();
		while (e.hasMoreElements()) {
			String name = (String) e.nextElement();
			String value = req.getHeader(name);
			System.out.println(name + ":" + value);
		}

		// 获取用户数据(不管是get还是post都是用req.getParameter)
		String parameter = req.getParameter("uname");
		String parameter2 = req.getParameter("id");
		System.out.println(parameter + " " + parameter2);

		// 如果有多个键值相等的时候使用
		String[] parameterValues = req.getParameterValues("fav");
		for (String val : parameterValues) {
			System.out.println(val);
		}
	}

}

二、Response对象学习

作用:用来响应数据到浏览器的一个对象
使用方式:

  • 设置响应头
setHeader(String name,String value);//在响应头中添加响应信息,但是同键会覆盖
addHeader(String name,String value);//在响应头中添加响应信息,但是同键不会覆盖,并同时存在
  • 设置响应状态
sendError(int num,String msg);//自定义响应状态码
  • 设置响应实体
resp.getWrite().write(String str);//响应具体的数据给浏览器
  • 设置响应编码格式
resp.SetContentType(“text/html”,”charset=utf-8);

实例代码展示:

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

public class response_demo extends HttpServlet{
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  
  /*Service请求处理代码流程*/
	//1 获取请求信息
	   //获取请求头
	   //获取请求行
	   //获取用户数据
	//2 处理请求
	//3 响应处理结果
	//---------------以下是response对象操作--------------------------
	//设置响应头
	  //设置响应编码格式
	//resp.setHeader("content-type", "text/html;charset=utf-8");
	resp.setContentType("text/html;charset=utf-8");
	//resp.setContentType("text/plain;charset=utf-8");
	//resp.setContentType("text/xml;charset=utf-8");
	resp.setHeader("mouse", "66");
	resp.setHeader("mouse", "89");
	resp.addHeader("hlc", "23");
	resp.addHeader("hlc", "66");
	//设置响应状态码
	//resp.sendError(405, "this is a mistake test");
	//设置响应实体
	resp.getWriter().write("<b>resp study 测试</b>");
    }
}

三、总结

Service请求处理代码流程:

  • 设置响应编码格式
  • 获取请求数据
  • 处理请求数据
    • 数据库操作(mvc思想)
  • 响应处理结果
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鲸落寰宇

小编会不断努力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值