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
注解方式
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应用中的资源