1、Servlet技术
(一)什么是Servlet
(二)手动实现Servlet程序
(1)先建一个工程
(2)建立Java Enterprise工程并选择Tomcat服务器并建立动态web工程
(3)点击下一步并且取名
(4)在src里建package写class
(5)类内进行implements Servlet
(6)按住快捷键alt+insert
(7)关注service
(8)配置xml
关于手动实现servlet程序,我们以后大多不会用到,所以了解即可
(三)url地址如何定位到Servlet程序去访问
(四)Servlet的生命周期
(1)alt+insert生成构造器
(2)初始化方法----init
(3)service方法
(4) 销毁方法
(五)Servlet请求的分发处理
我们知道,平常我们会有get和post两种操作,那么,我们如何对对应的两种操作来进行分别处理呢?
解决方案:
由于一般情况get和post请求会做许多事,直接按照上面的方式去写会使代码变得十分臃肿。这时我们可以将对应操作封装在分别封装在两个方法里面,然后再分别进行调用即可封装思想!!!
(六)通过继承HttpServlet实现Servlet程序
实际开发中,我们通常很少会用实现servlet接口来实现servlet程序,开发的时候一般都是使用继承httpservlet类的方式去实现Servlet程序。
(1) 编写一个类去继承HttpServlet
①、创建新类
②、doget()和dopost()你想重写谁就选谁,如果两个都重写就都选上
(3)重写完成对应方法的时候去调用方法
(七)使用IDEA创建Servlet程序
菜单->new->Create New Servlet
①
②配置servlet信息
(八)Servlet类的继承体系
①
②
前言:从翻译上看,就知道是Servlet程序的配置信息类
2、ServletConfig类
(一)ServletConfig类的三大作用
具体实现:
①获取servlet-name的值
②获取初始化参数 int-param
在标签中去配置初始化参数,初始化参数可以定义多个
③获取ServletContext对象
(二)补充说明
3、ServletContext类
(一)、什么是ServletContext
①:
②:
(二)ServletContext类的四个作用
对应配置内容:
①获取xml配置中的上下文参数
②获取当前的工程路径,格式:/工程路径
③获取工程部署后在服务器上的绝对路径
④像map一样存取数据
获取ServletContext对象的方法
a、先获得ServletConfig再获得ServletContext
b、直接获得ServletContext
域对象的补充
4、Http协议
(一)什么HTTP是协议
(二)请求的HTTP协议格式
客户端给服务器发送数据叫请求
服务器给客户端回传数据叫相应
请求又分为GET请求和POST请求
①GET请求
a、格式:
b、具体实例介绍:
②POST请求
a、格式:
b、发起post请求:
c、具体实例介绍:
③常用请求头的说明
④哪些是GET请求,哪些是POST请求
a、GET请求 :
b、POST请求 :
(三)相应的HTTP协议格式
①、格式:
②、具体实例介绍:
(四)常用的相应码说明
(五)MIME类型说明
常见的MIME类型:
(六)谷歌和火狐浏览器如何查看HTTP协议
谷歌:
火狐:
5、HttpServletRequest类
(一)HttpServletRequest类有什么作用
(二)HttpServletRequest类的常用API
xml文件配置:
具体操作:
- 代码1:
对应结果1:
- 代码二:
对应结果:
- 代码三:
对应结果:
- 代码四:
对应结果(敲回车键后,回车是GET):
(三)获取请求的参数值<补充>
对应HTML代码:
对应自定义类的doGet():
不正确写法:
正确写法:
正确结果:
(四)解决POST请求中文乱码问题
当post中文出现乱码情况的时候,需要通过req调用setCharacterEnCoding()方法来解决问题,即:
- req.setCharacterEnCoding(“UTF-8”);
注意:setCharacterEnCoding()方法要在获取请求参数之前调用才有效
(五) 请求的转发
①、什么是请求转发?
②、原理理解图:
③代码实现:
原理理解图中的servlet1:
原理理解图中的servlet2:
④、请求转发的特点:
(六) base标签的作用
a标签跳转时(可以正常反复横跳):
请求转发进行跳转时(出现错误):
为了解决这个无法快乐反复横跳的问题,我们可以使用base标签!
因此
注:结尾的c.html是可以省略的,但是b后面的斜杠不能省略
(七) 回顾web中的相对路径和绝对路径
(八) 回顾web中 / 斜杠的不同意义
6、HttpServletResponse类
(一)HttpServletResponse类的作用
(二)两个输出流的说明
浏览器报错信息:
(三)如何往客户端回传数据
具体操作如下:
(四)解决相应的中文乱码
方案一:
写在相应的doGet()方法内: