JavaEE编程基础:Servlet核心API用法详解

一、核心API简介1、Servlet执行流程
Servlet是JAVAWeb的三大组件之一(Servlet、Filter、Listener) , 它属于动态资源 。Servlet的作用是处理请求 , 服务器会把接收到的请求交给Servlet来处理 , 在Servlet中通常需要:接收请求数据;处理请求;完成响应 。
2、核心API简介

JavaEE编程基础:Servlet核心API用法详解

文章插图
 
二、ServletConfig接口1、接口简介
容器在初始化servlet时 , 为该servlet创建一个servletConfig对象 , 并将这个对象通过init()方法来传递并保存在此Servlet对象中 。核心作用:1.获取初始化信息;2.获取ServletContext对象 。
2、代码案例
  • 配置文件
<servlet> <init-param> <param-name>my-name</param-name> <param-value>cicada</param-value> </init-param> <servlet-name>servletOneImpl</servlet-name> <servlet-class>com.node02.servlet.impl.ServletOneImpl</servlet-class></servlet><servlet-mApping> <servlet-name>servletOneImpl</servlet-name> <url-pattern>/servletOneImpl</url-pattern></servlet-mapping>
  • API用法
public class ServletOneImpl implements Servlet { @Override public void init(ServletConfig servletConfig) throws ServletException { String servletName = servletConfig.getServletName() ; System.out.println("servletName="+servletName); String myName = servletConfig.getInitParameter("my-name") ; System.out.println("myName="+myName); Enumeration paramNames = servletConfig.getInitParameterNames() ; while (paramNames.hasMoreElements()){ String paramKey = String.valueOf(paramNames.nextElement()) ; String paramValue = https://www.isolves.com/it/cxkf/yy/JAVA/2019-12-11/servletConfig.getInitParameter(paramKey) ; System.out.println("paramKey="+paramKey+";paramValue="+paramValue); } ServletContext servletContext = servletConfig.getServletContext() ; servletContext.setAttribute("cicada","smile"); }}三、ServletContext接口1、接口简介
一个项目只有一个ServletContext对象 , 可以在多个Servlet中来获取这个对象 , 使用它可以给多个Servlet传递数据 , 该对象在Tomcat启动时就创建 , 在Tomcat关闭时才会销毁!作用是在整个Web应用的动态资源之间共享数据 。
  • 获取方式
1、ServletConfig#getServletContext();2、GenericServlet#getServletContext();3、HttpSession#getServletContext()4、ServletContextEvent#getServletContext()2、四大域对象
ServletContext是JavaWeb四大域对象之一:
1、PageContext;2、ServletRequest;3、HttpSession;4、ServletContext;所有域对象都有存取数据的功能 , 因为域对象内部有一个Map , 用来存储数据 。
3、代码案例
  • 配置文件
<context-param> <param-name>my-blog</param-name> <param-value>2019-11-19</param-value></context-param><servlet> <servlet-name>servletTwoImpl</servlet-name> <servlet-class>com.node02.servlet.impl.ServletTwoImpl</servlet-class></servlet><servlet-mapping> <servlet-name>servletTwoImpl</servlet-name> <url-pattern>/servletTwoImpl</url-pattern></servlet-mapping>
  • API用法
public class ServletTwoImpl extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); // 1、参数传递 ServletContext servletContext = this.getServletContext() ; String value = https://www.isolves.com/it/cxkf/yy/JAVA/2019-12-11/String.valueOf(servletContext.getAttribute("cicada")) ; System.out.println("value="+value); // 2、获取初始化参数 String myBlog = servletContext.getInitParameter("my-blog") ; System.out.println("myBlog="+myBlog); // 3、获取应用信息 String servletContextName = servletContext.getServletContextName() ; System.out.println("servletContextName="+servletContextName); // 4、获取路径 String pathOne = servletContext.getRealPath("/") ; String pathTwo = servletContext.getRealPath("/WEB-INF/") ; System.out.println("pathOne="+pathOne+";pathTwo="+pathTwo); response.getWriter().print("执行:doGet; value:"+value); }}四、ServletRequest接口1、接口简介
HttpServletRequest接口继承ServletRequest接口 , 用于封装请求信息 , 该对象在用户每次请求servlet时创建并传入servlet的service()方法 , 在该方法中 , 传入的servletRequest将会被强制转化为HttpservletRequest对象来进行HTTP请求信息的处理 。核心作用:1.获取请求报文信息;2.获取网络连接信息;3.获取请求域属性信息 。


推荐阅读