HttpServlet

一、简介
HttpServlet是Servlet接口的一个实现类,并且它是一个抽象类,servlet.http包中定义了采用HTTP通信协议(一个无状态协议)的HttpServlet类。

二、响应流程
1.Web客户向Servlet容器发出Http请求
2.Servlet容器解析Web客户的Http请求
3.Servlet容器创建一个HttpRequest对象,在这个对象中封装Http请求信息
4.Servlet容器创建一个HttpResponse对象
5.Servlet容器调用HttpServlet的service方法,把HttpRequest和HttpResponse对象作为service方法的参数传给HttpServlet对象
6.HttpServlet调用HttpRequest的有关方法,获取HTTP请求信息
7.HttpServlet调用HttpResponse的有关方法,生成响应数据
8.Servlet容器把HttpServlet的响应结果传给Web客户
其中HttpServlet首先必须读取Http请求的内容,Servlet容器负责创建HttpServlet对象,并把Http请求直接封装到HttpServlet对象中。

三、创建HttpServlet步骤
1.继承HttpServlet抽象类
2.重写HttpServlet的部分方法,如doGet()或doPost()方法
3.获取HTTP请求信息。通过HttpServletRequest对象来检索HTML表单所提交的数据或URL上的查询字符串
4.生成HTTP响应结果。通过HttpServletResponse对象生成响应结果
四、具体实现
HttpServlet的实现由两种方式:

实现方式一:.xml配置实现
A.配置xml文件(实现方式同Servlet接口的.xml配置相同,此处不再重复) //或者使用注解
B.继承HttpServlet抽象类
C.重写get()、post()方法 或者重写service()方法
代码实现如下:

参考文献:

https://blog.csdn.net/qq_41007534/article/details/99696559

在这里插入图片描述
在这里插入图片描述

转发和重定向的区别

相同点:
作用:在Java后台的servlet中跳转到另一个servlet或者jsp

区别:
1.实现语句不同
重定向:response.sendRedirect()
请求转发:request.getRequestDispatccher().forward()
2.跳转效率不同
请求转发效率高于重定向

3.受否共享同一个request的数据
请求转发中,源组件和目标组件共享同一个request的数据
重定向中,不共享数据(可使用session共享数据)
4.浏览器地址不同
请求转发地址不变
重定向地址会改变
5.跳转范围
请求转发的范围只能是同一个项目的url
重定向可以到任何一个服务器

6.“/”路径的含义不同
转发时“/”代表当前项目的根路径
重定向时“/”代表当前服务器的根路径

7.刷新是否导致表单的重复提交
转发会导致表单重复提交
重定向不会导致表单的重复提交

8.是否经过过滤器
转发不经过过滤器
重定向经过过滤器

**9.**转发不会销毁request,可以传递request参数
转发只是原有的request请求上再做一次资源的跳转,所以不能访问外部资源,而重定向可以访问,例如 访问百度
如果需要传值,又需要重定向,那么用session存值
session好比一个房间,request好比你在房间做的事情。

转发和重定向的区别

https://blog.csdn.net/qq_34111779/article/details/78164027

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值