失效链接处理 |
java各阶段重点知识点 PDF 下载
本站整理下载:
相关截图:
主要内容:
1、什么是Servlet?
Servlet是SUN公司推出的在服务器端处理HTTP协议的组件规范.
2、Servlet的运行原理?(面)
1)浏览器通过向服务器发送的ip地址,端口号等信息与服务器建立连接
2)建立连接后浏览器端通信组件将请求数据打包,然后将请求数据发送给服务器.
3)服务器接收要用户请求数据后服务器端通信组件将数据拆包.
4)创建request请求对象和response响应对象.
5)创建Servlet实例对象后调用该实例对象的doGet/doPost/service方法传入request请求对象和response响应对象.
6)request请求对象接收请求信息数据,处理完毕后由response响应对象将处理结果进行响应.
7)服务器端通信组件将响应信息打包并发送给浏览器.
8)浏览器接收到响应信息后通信组件将其拆包并将数据展示在浏览器页面
9)响应结束与服务器端口连接.
3、Servlet生命周期? (面)
实例化:在第一次访问或启动tomcat时,tomcat会调用此无参构造方法实例化servlet
初始化:tomcat在实例化此servlet后,会立刻调用init方法初始化servlet
就绪:容器收到请求后会调用servlet的service方法来处理请求
销毁:容器依据自身算法删除servlet对象,删除前会调用destroy方法
其中实例化,初始化和销毁只执行一次,service方法执行多次,默认情况下servlet 是在第一次接收到用户请求的情况下才会被实例化,可以在web.xml中的<servlet></servlet>标签内添加一个<load-on-startup>1</load-on-startup>配置,此时在启动tomcat时就会创建servlet实例.
4、如何实现一个自定义的servlet? (面)
1)写一个Servlet类extends HttpServlet 并重写doPost或doGet或service方法2)在web.xml中进行部署
<servlet>
<servlet-name>别名</servlet-name>
<servlet-class>包名.项目名</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>别名</servlet-name>
<url-pattern>/网络路径名</url-pattern>
</servlet-mapping>
5、HttpServlet抽象类中有两个service()的区别?
public void service(ServletRequest req, ServletResponse res){}
protected void service(HttpServletRequest req, HttpServletResponse resp){}
第一个访问权限public的service方法是有tomcat调用的, 它将接收的客户端请求转交给HttpServlet中的第二个访问权限为protected的service方法.
第二个访问权限为protected的service方法再把将请求依据请求类型将get请求分发给doGet()方法,将post请求分发给doPost()方法进行处理.
当我们自定义一个Servlet时继承HttpServlet重写的是访问权限为protected的service()方法来替代doGet()和doPost()方法.因为只会调用重写后的方法.
6、重写HttpServlet抽象类中doGet(),doPost(),service()方法后使用中的区别?
若自定义一个Servlet时继承HttpServlet抽象类时,如果重写doGet()和doPost()方法后,会先执行HttpServlet类中的两个service方法,然后根据请求的类型调用我们自定义类中重写的doGet和doPost方法,若请求的类型是get请求,将会执行重写后的doGet()方法,若请求类型是post请求,将会执行重写后的doPost()方法.
若在自定义一个Servlet时继承HttpServlet抽象类时,重写了访问权限是protected的service方法,那么会执行HttpServlet类访问权限是public的service,然后在调用我们重写后的service方法,不再将请求分发给doPost和doGet方法,因为我们自己重写的service方法即可处理get请求也可以处理post请求.
|