1、Servlet
1.1、Servlet概述:1.2、Servlet入门案例1.3、Servlet访问流程1.4、Servlet生命周期1.5、Servlet的体系结构1.6、实际开发中,Servlet推荐的书写方式
1、Servlet 1.1、Servlet概述: servlet 是运行在 Web 服务器中的小型 Java 程序。servlet 通常通过 HTTP(超文本传输协议)接收和响应来自 Web 客户端(浏览器)的请求。
Servlet的作用:
1、Servlet可以接收web客户端发送的请求,接收请求数据。
2、Servlet对请求进行处理,然后响应数据给web客户端。
Servlet是SUN公司制定的动态资源程序标准,提供的是一个SErvlet接口。我们程序员开发Servlet自定义一个类,去实现Servlet接口,重写接口中的方法。Servlet入门程序
步骤一:IDEA创建一个web项目。步骤二:项目的src目录,创建一个包。步骤三:在包内新建一个自定义类,导入import javax.servlet.Servlet;。自定义类实现Servlet接口中的方法。步骤四:在自定义的类里配置访问路径。步骤五:测试,在浏览器的地址栏中http://localhost:tomcat端口号/项目名称/servlet访问路径。
1.3、Servlet访问流程
要求:需要创建一个Web项目,把部署到服务器,通过浏览器去访问servlet资源。在浏览器地址栏输入的servlet访问路径:http://域名:端口/项目名称/servlet访问路径。
地址一:输入:http://域名/端口
作用:访问到主机安装的omcat服务器。地址二: /项目名称
作用: 访问的tomcat服务器部署的项目。地址三: /servlet访问路径
作用: 访问tomcat服务器部署的项目里面的servlet资源。
1.4、Servlet生命周期
生命周期:指的是对象从被创建到销毁的完整过程,这个过程就是生命周期。
在完整的过程中,涉及到方法的执行,那么这些方法,我们称之为生命周期方法。
1.5、Servlet的体系结构
顶层接口:
Servlet里面都是抽象方法抽象子类,实现了Servlet接口
GenericServlet里面有抽象方法,也有普通方法。抽象子类,继承了GenericServlet
HttpServlet里面有抽象方法,也有普通方法。
问1:为什么要设计Servlet体系结构?
答:如果开发者定义一个类,实现Servlet接口,这种方式不好。
缺点:自定义类重写接口的所有方法,即使方法不需要,也要全部全写接口中的方法
问2:如果开发者定义一个类,继承GenericServlet这种方式不好。
优点:解决了(实现Servlet接口全部重写方法)的缺点。
缺点:不能明确指定浏览器发送的是什么请求,以及不能处理请求的数据。
问3:如果开发者定义一个类,继承HttpServlet这种方式好。
优点:解决上传1,2中存在的问题了。
明确指定浏览器发送的是http请求,处理请求数据以及响应数据。
http协议:作用规范请求和响应过程的数据交互格式。
结论:企业开发中,通过继承HttpServlet来定义我们的类,处理请求和响应数据。
自定义一个类,继承HttpServlet,重写dog
doGet(请求对象request, 响应对象response):接收浏览器发送的get请求。doPost(请求对象request, 响应对象response):接收浏览器发送的post请求。
为什么不重写service方法,而重写doGet方法和doPost方法
结论:service方法内部,不知道浏览器发送的是get请求还是post请求。都会接收,最终在处理get请求的数据和处理post请求的数据时,处理方式不一样,所以不重写service方法。
HttpServlet中的service方法和doGet方法和doPost方法有关系吗?
答案肯定有:
什么关系,查询HttpServlet的源代码
快捷方式有两种:
方式一:在代码中,找到HttpServlet,按住Ctrl键,鼠标点击HttpServlet。
方式二:在当前项目中,Ctrl+n快捷键,在它的输入框中输入HttpServlet。
通过源码分析:
浏览器发送请求时—>service方法:根据请求方式的不同—>去调用doGet方法或者doPost方法。
通过DeBug源码调试:
浏览器发送的get请求—>HttpServlet中的service方法:
1、获取浏览器的提交请求方式:method
2、if判断(method.equals(“Get”)){
//this指代的就是当前HttpServlet
this.doGet(req,response);
} else if(method.equals(“Post”)){
this.doPost(req,response);
}
结论1:(请求方式一共有七种,常见的请求方式有两种)。
结论2:浏览器发送请求时---->service方法: 根据请求方式的不同---->去调用doGet或者doPost方法
结论3:浏览器发送get请求---------------->doGet方法
浏览器发送post请求---------------->doPost方法



