D02 Sping Boot 入门 Sping框架--Java Web之Servlet
Servlet
1、什么是Servlet
1、servlet是JavaEE的规范之一。规范就是接口。
2、servlet是Javaweb三大组件之一。三大组件分别是Servlet程序、Filter过滤器、Listener监听器。
3、servlet是运行在服务器上的一个Java小程序,它可以接收客户端发过来的请求并响应数据给客户端。
2、手动实现Servlet程序
1、编写一个类去实现Servlet接口。
2、实现service方法,处理请求并响应数据。
3、到web.xml中去配置servlet程序的访问地址。
在src中新建一个package,在package中新建一个类
接着按快捷键alt+insert选择implements methods
接着在web.xml中配置信息
接着重启tomcat访问ip:port和ip:port/hello
3、Servlet生命周期
1、执行构造函数 // 第一次访问时创建servlet程序时调用
2、执行init初始方法 // 第一次访问时创建servlet程序时调用
3、执行service方法 // 每次访问时都会调用
4、执行destroy销毁方法 // 在web工程停止时调用
4、Servlet请求的分发处理
在web文件夹里新建a.html
在Servlet里的service函数里判断请求方式并处理请求
5、通过继承HttpServlet类实现Servlet程序(实际开发常用这种方式)
1、编写一个类继承HttpServlet类
2、根据业务需要重写doGet和doPost方法
3、到web.xml中配置Servlet的访问地址
在package中新建HelloServlet2类,继承HttpServlet类
重写doGet和doPost方法 (在这里把super注释掉)
到web.xml文件里去配置访问路径(servlet-class写错,改成<servlet-class>com.gychen.servlet.HelloServlet2</servlet-class>)
写请求的页面(form)
6、IDEA菜单生成Servlet程序
在web.xml中配置路径,在html中配置按钮
7、Servlet的继承体系
8、ServletConfig类(Servlet的配置信息类)
ServletConfig类的三大作用
1、可以获取Servlet程序的别名,即servlet-name的值
2、获取初始化参数init-param
3、获取ServletContext对象
在Servlet程序里写入代码
在web.xml中配置初始化信息
结果
9、ServletContext类
a)什么是ServletContext类
1、ServletContext是一个接口,它表示Servlet上下文对象。
2、一个web工程,只有一个ServletContext对象实例。
3、ServletContext对象是一个域对象。
域对象是可以像Map一样存取数据的对象,这里的域指的是存取数据的操作范围。
存数据 取数据 删除数据
Map put() get() remove()
域对象 setAttribute() getAttribute() removeAttribute()
b)ServletContext类的四个作用
1、获取web.xml中配置的上下文参数context-param。
2、获取当前的工程路径。
3、获取工程部署后在服务器硬盘上的绝对路径。
4、向Map一样存取数据。
新建一个contextServlet类
在web.xml中写入context-param信息
结果
像Map一样存取数据:新建一个contextServlet2类
10、HttpServletRequest类
a)HttpServletRequest类的作用
每次只要有请求进入Tomcat服务器,Tomcat服务器就会把请求过来的HTTP协议信息解析好封装到Request对象中。
然后传递到service方法(doGet和doPost)中供我们使用。可通过HttpServletRequest对象获取到所有请求的信息。
b)HttpServletRequest类的常用方法
Ⅰ、getRequestURI() 获取请求的资源路径
Ⅱ、getRequestURL() 获取请求的统一资源定位符(绝对路径)
Ⅲ、getRemoteHost() 获取客户端的ip地址
Ⅳ、getHeader() 获取请求头
Ⅴ、getParameter() 获取请求的参数
Ⅵ、getParameterValues() 获取请求的参数(多个值的时候使用)
Ⅶ、getMethod() 获取请求的方式(GET或POST)
Ⅷ、setAttribute(key,value) 设置域数据
Ⅸ、getAttribute(key) 获取域数据
Ⅹ、getRequestDispatcher() 获取请求转发对象
如何获取请求参数
请求的转发
什么是请求的转发?
是指服务器收到请求后,从一个资源跳到另一个资源的操作。
Servlet1
Servlet2
10、HttpServletResponse类
解决字符乱码
请求重定向推荐用法