Servlet的一些简单操作

Servlet注册

xml方式

<servlet>
	<servlet-name></servlet-name>
  	<servlet-class></servlet-class>
</servlet>
<servlet-mapping>
	<servlet-name></servlet-name>
  	<url-pattern></url-pattern>
</servlet-mapping>

可以匹配多个路径

多个路径对应一个servlet

不能一个相同的路径对应多个不用servlet

路径匹配:

精确匹配 /hello

后缀匹配 *.do

路径匹配 /* 匹配任意资源

缺省匹配 / 匹配任意资源,除了jsp

注解方式

@WebServlet

name

value 和urlPatterns功能相同,互斥

urlPatterns

Servlet开发

请求 HttpServeltRequest

获取请求参数:getParameter()

解决post提交的乱码问题:request.setCharactorEncoding(“utf-8”);

响应 HttpServletResponse

返回响应数据:response.getWriter().writer()

响应数据的乱码问题:response.setContentType(“text/html;charset=utf-8”)

响应对象 了解

重定向

response.setStatus(302);
response.setHeader("location", "地址")

刷新

response.setHeader("refread", "3");
response.setHeader("refread", "3;url=路径")

servlet的生命周期

四个阶段

创建 构造方法 调用一次

初始化 init() 调用一次

运行阶段 service() 每次访问资源都会调用

销毁阶段 destroy() 关闭服务器

默认,第一次调用的时候,创建servlet对象

设置loadOnStartup 可以在加载web应用的时候,创建servlet对象

一般设置大于0的值,值越小,优先级越高

ServletConfig 理解

主要目的:读取servlet的初始化参数

xml中在里面设置初始化参数

注解中,initParams={@WebInitParam()}

ServletContext 掌握

每个web应用对应一个ServletContext对象

读取应用的初始化参数

web.xml 中

实现不同的资源间共享数据

setAttribute()

getAttribute()

removeAttribute()

转发和重定向 重点

实现资源的跳转

request.getRequestDispatcher().forward()

重定向:

response.sendRedirect()

不同:

服务端的行为,web应用内部进行资源跳转

浏览器中路径不会发生变化

共享请求和响应对象,不同资源间可以共享请求对象中的数据

/ 相对于web应用

重定向

浏览器端行为,服务端通知浏览器端访问新的资源

浏览器中路径会发生变化

不能共享请求和响应对象

/ 相对于服务器

可以重定向到其他web应用中的资源

经验分享 程序员 微信小程序 职场和发展