Servlet 应用

本文详细介绍了Servlet中的请求处理,包括GET与POST的区别,重点讨论了POST请求的中文乱码问题及其解决方案。此外,还讲解了request和response对象的主要方法,以及在业务逻辑和显示结果分离后如何使用转发和重定向进行页面跳转,并分析了两者的特性和数据传递方式。
摘要由CSDN通过智能技术生成

request 对象

在Servlet中用来处理客户端请求需要用doGet或doPost方法的request对象

在这里插入图片描述

get和post区别

get请求

  • get 提交的数据放在URL之后,以?分割URL和传输数据,参数之间以& 相连
  • get方式明文传递,数据量小,不安全
  • 效率高,浏览器默认请求方式为GET请求
  • 对应的Servlet的方法是doGet

Post请求

  • post 方法时把提交的数据放在HTTP包的body中 ;
  • 密文传递数据,数据量大,安全
  • 效率相对没有GET高
  • 对应的Servlet的方法时doPost

request主要方法

方法名 说明
String getParameter(String name) 根据表单组件名称获取提交数据
void setCharacterEncoding(String charset) 指定每个请求的编码

post请求中文乱码问题

get请求在Tomcat8之后中文乱码问题进行了解决,但是post请求 ,由于客户端是以UTF-8 字符编码将表单数据传输到服务器端的,因此服务器也需要设置以UTF-8字符编码进行接收.
解决方案: 使用从ServletRequest接口继承而来的setCharacterEncoding(charset) 方法进行统一的编码设置.

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws Exception{
   
	//对request 请求对象设置统一的编码
	req.setCharacterEncoding("utf-8");
	...
} 

response对象

response对象用于响应客户端请求并向客户端输出信息.

response主要方法

方法名称 作用
setHeader(name,value) 设置响应信息头
setContentType(String) 设置响应文件类型,响应式的编码格式
setCharacterEncoding(String) 设置服务端响应内容编码格式
getWriter() 获取字符输出流
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws Exception{
   
	//对request 请求对象设置统一的编码
	req.setCharacterEncoding("utf-8");
	//1.获取用户请求发送的数据
	String username = req.getParameter("username");
	//2.响应数据给客户端
	PrintWriter printWriter = resp.getWriter();
	printWriter.println("success");
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值