Servlet是使用Java语言编写的运行在服务器端的程序。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。Servlet主要用于处理客户端传来的HTTP请求,并返回一个响应,它能够处理的请求有doGet()和doPost()等方法。
Servlet由Servlet容器提供,所谓的Servlet容器是指提供了Servlet 功能的服务器,Servlet容器将Servlet动态的加载到服务器上。与HTTP 协议相关的Servlet使用HTTP请求和HTTP响应与客户端进行交互。因此,Servlet容器支持所有HTTP协议的请求和响应。Servlet应用程序的体系结构如图。
Servlet的请求首先会被HTTP服务器接收,HTTP服务器只负责静态HTML页面的解析,对于Servlet的请求转交给Servlet容器,Servlet容器会根据web.xml文件中的映射关系,调用相应的Servlet,Servlet将处理的结果返回给Servlet容器,并通过HTTP服务器将响应传输给客户端。Servlet技术具有如下特点:
方便:Servlet提供了大量的实用工具例程,如处理很难完成的HTML表单数据、读取和设置HTTP头,以及处理Cookie和跟踪会话等。
跨平台:Servlet用Java类编写,可以在不同操作系统平台和不同应用服务器平台下运行。
灵活性和可扩展性:采用Servlet开发的Web应用程序,由于Java类的继承性及构造函数等特点,使得应用灵活,可随意扩展。
除了上述几点外,Servlet还具有功能强大、能够在各个程序之间共享数据、安全性强等特点。
获取servlet转发和响应重定向的方式是什么?
(1) 重定向和转发的区别
1)重定向是浏览器发送请求并受到响应以后再次向一个新地址发请求;转发是服务器受到请求后为了完成响应转到一个新的地址。
2)重定向中有两次请求对象,不共享数据;转发只产生一次请求对象且在组件间共享数据。
3)重定向后地址栏地址改变;而转发则不会。
4)重定向的新地址可以是任意地址;转发的新地址必须是同一个应用内的某地址。
(3)问题扩展
获取servlet的转发和响应重定向的方式?
转发的方法:
1)通过HttpServletRequest的getRequestDispatcher()方法获得
2)通过ServletContext的getRequestDispatcher()方法获得
重定向的方法:
3)HttpServletResponse的sendRedirect()方法。
(4)结合项目使用
重定向可以实现图片的异步上传。
一般访问web-inf下面文件,只能通过转发来实现
Java最新课程:
Java零基础视频教程(2022最新Java入门,含斯坦福大学练习题+力扣算法题
Java基础入门:
java零基础自学首Java入门教程(含Java项目和Java真题)
Javaweb核心基础
JavaWeb基础教程,Java web从入门到企业实战完整版
Spring Cloud最全微服务架构:
史上最全面的springcloud微服务技术栈
SSM框架教程:
SSM框架教程_Spring+SpringMVC+Maven高级+Spring
SpringBoot2全套视频教程:
SpringBoot2全套视频教程,springboot零基础到项目实战