Servlet课堂案例回顾
一、Servlet规范作用
----------------------------------------------------------------------------------------------------------
1.在Servlet规范中,指定【动态资源文件】开发步骤 --- 02_Servlet接口实现类
1)创建一个java类继承HttpServlet类,使之成为Servlet的实现类
2)在实现类中重写doGet/doPost方法
3)将Servlet接口实现类信息【注册】到Tomcat服务器
【网站】->【web】->【WEB-INF】->【web.xml】
<servlet>
<servlet-name>ll</servlet-name> <!--声明一个变量存储servlet接口实现类路径-->
<servlet-class>com.bjpowernode.controller.OneServlet</servlet-class> <!--声明servlet接口实现类路径-->
</servlet>
<!--需要起一个简短的别名-->
<servlet-mapping>
<servlet-name>ll</servlet-name>
<url-pattern>/one</url-pattern> <!--起别名 /开头-->
</servlet-mapping>
----GenericServlet抽象类,重写了Servlet接口中的所有抽象方法(抽象类降低开发难度)
----HttpServlet抽象类,继承了GenericServlet抽象类,同时对service方法进行了重写,写好了什么时候调用doGet方法,什么时候调用doPost方法
----Serivlet的接口实现类继承HttpServlet类,只需重写一下doGet/doPost方法,届时服务器会创建此接口实现类的实例对象,然后调用方法
----------------------------------------------------------------------------------------------------------
2.在Servlet规范中,指定Http服务器调用动态资源文件规则
Tom服务器调用接口实现类的规则:
1)Tomcat服务器创建Servlet接口实现类实例对象 Servlet oneServlet = new oneServlet();
2)Tomcat服务器会根据实例对象调用service()方法处理当前请求 oneServlet.service();
service()方法在HttpServlet抽象类中已经重写过,里面写好了什么情况下使用doGet/doPost,
调用的时候会调用一开始在Servlet接口实现类中重写好的doGet/doPost方法
----------------------------------------------------------------------------------------------------------
3.在Servlet规范中,指定Http服务器管理动态资源文件实例对象规则 --- 03_Servlet生命周期
1)Servlet接口实现类只能由服务器创建
2)默认情况下,Http服务器接收到Servlet接口实现类的第一次请求时自动创建Servlet接口实现类
3)手动配置下,可以要求Http服务器在启动时自动创建Servlet接口实现类的实例对象
servlet>
<servlet-name>mm</servlet-name> <!--声明一个变量存储servlet接口实现类类路径-->
<servlet-class>com.bjpowernode.controller.OneServlet</servlet-class>
<load-on-startup>30<load-on-startup><!--填写一个大于0的整数即可-->
</servlet>
----------------------------------------------------------------------------------------------------------
二、HttpServletResponse接口
1.介绍
1)HttpServletResponse接口来自于Servlet规范中,在Tomcat中存在servlet-api.jar
2)HttpServletResponse接口实现类由Http服务器负责提供
3)HttpServletResponse接口负责将doGet/doPost方法执行结果写入到【响应体】交给浏览器
4)响应对象
2.主要功能
-------------------------------------------------------------------
1)将执行结果写入【响应体】
通过响应对象向Tomcat服务器索要输出流
Print out=response.getWrite();
out.write(); 【字符】,【字符串】,【ASCII码】,50-> '48'
out.print(); 将真实数据写入到响应体中
-------------------------------------------------------------------
2)设置响应头【content-type】属性值,从而控制浏览器使用对应编译器
response.setContentType("text/html;charset=utf-8");
-------------------------------------------------------------------
3)设置响应头中【location】属性,将一个请求地址赋值给【location】,从而控制浏览器向指定服务器发送请求
response.sendRedirect(url);
浏览器接收到响应包后,如果发现响应包中有location属性
自动通过地址栏向location指定网站发送请求
redirect:重定向
-------------------------------------------------------------------
三、HttpServletRequest接口
1.介绍
1)HttpServletRequest接口来自于Servlet规范中,在Tomcat中存在servlet-api.jar
2)HttpServletRequest接口实现类由Http服务器负责提供
3)HttpServletRequest接口负责在doGet/doPost运行时读取Http请求协议包中信息
4)请求对象
2.主要功能
-------------------------------------------------------------------
1)读取Http请求协议包中【请求行】信息
通过响应对象向Tomcat服务器索要输出流
请求对象.getRequestURL().toString()
.getMethod();
.getRequestURI();
-------------------------------------------------------------------
2)可以读取保存在Http请求协议包中【请求头】或【请求体】中请求参数信息
获取所有参数的名字返回枚举类型,用类似迭代器的方式,通过参数名字
得到对应的参数值
doPost需要:
request.setCharacterEncoding("utf-8");//使用utf-8字符集对请求体二进制内容进行一次重写解码
-------------------------------------------------------------------
3)可以代替浏览器向Http服务器申请资源文件调用
-------------------------------------------------------------------