Servlet
什么是Servlet
-
Servlet是JavaEE规范之一。规范就是接口
-
Servlet是JavaEE三大组件之一。三大组件分别是: Servlet程序 Filter过滤器、Listener监听器
-
Servlet是运行在服务器上的一个Java小程序,可以接收客户端发送来的请求,并响应客户端请求。
手动实现Servlet
-
编写一个类去实现Servlet接口
-
实现service方法,处理请求,并响应数据 service方法就是专门处理请求相应的
-
到web.xml中配置Servlet程序的访问地址
Servlet的生命周期
-
执行Servlet的构造方法
-
执行init初始化方法
-
执行service方法
-
执行destroy销毁方法
通过继承HttpServlet实现Servlet程序
一般在实际项目开发中,都是继承HttpServlet类
-
编写一个类继承HttpServlet类
-
根据业务需要重写doGet或者doPost方法
-
到web.xml中配置程序的访问地址
ServletConfig类
servletConfig类从类名就可知道,就是Servlet程序的配置信息类
ServletConfig类的三大作用
-
可以获取servlet程序的别名
-
获取初始化参数init-param
-
init-param是初始化参数,在<servlet-class>下面配置
-
-
获取ServletContext对象
一般在init中使用
// 1.获取servlet程序的别名
public void init(ServletConfig servletConfig) throws ServletException {
// 获取servlet的别名
System.out.println("程序的别名是:" + servletConfig.getServletName());
}
// 2.获取初始化参数init-param
servletconfig.getInitParamter("username");
// 3.获取ServletContext对象
servletconfig.getServletContext();
servlet程序和servletConfig对象都是由Tomcat负责创建,我们负责使用。
servlet程序默认第一次访问的时候,ServletConfig是每个servlet程序创建时,就创建一个ServletConfig对象。
ServletContext类
什么是ServletCOntext?
-
ServletContext是一个接口,它表示Servlet上下文对象
-
一个web工程,只有一个ServletContext对象实例
-
ServletContext对象是一个域对象
常见的作用
-
获取web.xml中配置的上下文参数context-param
-
获取当前的工程路径,格式:/工程路径
-
获取工程部署后在服务器硬盘上的绝对路径
-
向Map一样存取数据
域对象方法
// 1. 存数据 setAttribute(); // 2.取数据 getAttribute(); // 3.删除数据 removeAttribute();
ServletContext context = getServletConfig().getServletContext();
//1. 获取web.xml中配置的上下文参数context-param
context.getInitParameter("username");
//2. 获取当前的工程路径,格式:/工程路径
context.getContextPath();
//3. 获取工程部署后在服务器硬盘上的绝对路径
context.getRealPath("/");
HttpServletRequest类
有什么作用
每次只要有请求进入Tomcat服务器,Tomcat服务器就会把请求过来的Http协议信息解析好封装到Requsst对象中。然后传递到service方法中给我们使用。我们可以通过HttpServletRequest对象,获取到所有请求的信息。
常用方法:
getRequestURI(); // 获取请求的资源路径 getRequestURL(); // 获取请求的统一资源定位符(绝对路径) getRemoteHost(); // 获取客户端ip getHeader(); // 获取请求头 getParameter(); // 获取请求参数 getParameterValues(); // 获取请求值 getMethod(); // 获取求情方法
请求转发
什么是请求转发?
请求转发是指。服务器收到请求后,从一次资源跳到另一个资源的操作叫请求转发。
请求转发的特点
-
浏览器地址栏没有变化
-
他们是一次请求
-
他们共享Request域中的数据
-
可以转发到WEB-INF文件夹下
-
不可以访问工程之外的资源
base标签
可以设置当前页面中所有相对路径工作时,参照那个路径进行跳转,base标签一般在<title>的后面,href属性就是参照的地址值
HttpServletResponse类
表示所有的相应的消息
两种流的说明
字节流 getOutputStream(); 常用于下载(传递二进制数据)
字符流 getWriter(); 常用于回传字符串
两个流只能使用一个
请求重定向
是指客户端向服务器发请求,然后客户端高速客户端说。我给你一个新地址,让你去新地址访问,叫请求重定向
请求重定向特点:
-
浏览器地址栏会发生变化
-
两次请求
-
不共享request中的数据
-
不能访问WEB-INF中的数据
-
可以访问外部的资源

浙公网安备 33010602011771号