首页 > 其他分享 >Servlet粗略了解

Servlet粗略了解

时间:2022-09-02 19:46:16浏览次数:58  
标签:粗略 String 对象 Servlet 获取 了解 上下文 servlet

Servlet是运行在Web服务器(容器)中的特殊JAVA类,用来处理用户的HTTP请求

开发一个Servlet程序的步骤

实现Servlet接口

  • init(ServletConfig):用来初始化Servlet类的方法,在整个生命周期中只会被执行一次
  • service(SErvletRequest, ServletResponse):用来处理用户的请求,用户每次请求都会调用
  • destroy():销毁方法,当该servlet被从容器中移除,或关闭容器之前该方法被调用
  • getServletConfig(),getServletInfo()

继承GenericServlet类

  • 该类实现了Servlet接口和ServletConfig接口

继承HttpServlet类:在开发中通常会采用这种

  • 该类是继承自GenericServlet

如何把一个Servlet映射为对外可以访问的路径

1.基于XML配置的方式

在web.xml文件中通过如下的标签实现

	<servlet>
		<servlet-name>别名</servlet-name>
		<servlet-calss>自定义类的包名+包类</servlet-class>
			<init-param>
				<param-name>参数名称</param-name>
				<param-value>参数值</param-value>
			</init-param>
	</servlet>
	<servlet-mapping>
		<servlet-name>要和前面的某个注册中的别名相同</servlet-name>
		<url-pattern>/映射路径</url-pattern>
	</servlet-mapping>

2.基于注解的方式:Servlet3.0后才支持的

  • @WebServlet():
    • urlPatterns/value属性:
      • 用来指定对外映射的路径,该值是字符数组类型,每个值必须以"/"反斜杠开头,作用和XMl配置中的url-pattern相同
  • initParams属性:用来设置为该servlet配置初始化参数,作用 和xml中的init-param标签类似
  • name属性:作用是指定该servlet类的别名,和xml中的servlet-name标签作用类似
  • loadOnStartup属性:用来设置创建servlet对象的实际,值越小优先级越高,如果是复数表示当用户第一次请求时被创建

掌握Servlet的生命周期(重要)

  • 当用户请求该servlet,由容器来查找该对应的servlet,如果存在,则直接执行service方法,如果不存在则创建servlet类的对象,并执行init()方法来初始化,接着执行service方法
  • 当servlet对象被从容器中移除或销毁,或关闭容器都会执行destroy方法来完成销毁工作。
  • 在整个生命周期中init方法只会被执行一次,servlet是单实例的(只创建一次)

ServletConfig接口

用来获取为某个Servlet类配置的初始化参数:
getInitParameter(String):
getInitParamterNames():
获取上下文对象:
getServletContext()

ServletContext接口:

表示上下文对象,在每个web应用中只有一个该上下文对象。该上下文对象对于当前web中的所有servlet都是可用的,而且是同一个对象
该对象有三方面作用:

  • 1.设置上下文初始化参数,在web.xml中同时使用

    参数名称
    参数值

    getInitParameter(String paramName):获取定义名称的参数值
    getInitParameterNames():获取所有参数名称
  • 2.用来表示一个域对象,可以在上下文中存在key->value的对象
    setAttribute(String name, Object value):在上下文域中设置名称及值
    getAttribute(String name):获取对应名称上存储的值
    getAttributeNames():获取所有上下文域中存储的名称
    removeAttribute(String name):把某个名称的值从上下文中移除掉
  • 3.用来访问资源
    getRealPath(String path):
    getResourceAsStream(String path)

HttpServletRequest和HttpServletResponse中的部分方法:

获取表单中的参数:request.getParameter(String paramName)
设置请求所用的编码:request.setCharacterEncoding(String encoding):
获取客户端IP地址:getRemoteAddr()
设置响应的头信息:response.setContentType():
获取向客户端输出的字符流对象:PrintWriter response.getWriter():
获取向客户端输出的字节流对象:ServletOutputStream response.getOutputStream()

标签:粗略,String,对象,Servlet,获取,了解,上下文,servlet
From: https://www.cnblogs.com/instser/p/16637119.html

相关文章