Servlet
1.Servlet快速入门
创建web项目,创建servlet(class im...),配置映射
2.Servlet的执行过程,生命周期,三种方式实现方式。
实例化:第一次访调用构造 (创建时机:load-on-startup 小于0或者不配置,则请求时候创建servelt)
设置服务器启动时候就加载从2开始起,1已经被默认的servlet占用了
初始化:
服务
销毁:应用卸载,服务销毁。(程序停止,才会调用)
------------------------------------------------------------------
imp Servlet
ex GenericSer
ex HttpSer
Servlet的结构
老爷/爷/爸/儿子(自己)
--------------------------------------------
Servlet的映射
配置映射的时候,路径加斜杠,否则报错
@WebServlet("/login")
Servlet线程安全问题。
Servlet单例,多线程每次访问同一个对象
解决:不写全局变量,尽量写局部变量
Servlet2.5以前web.xml配置
Servlet3.0以后注解配置@WebServlet("/login");
Context上下文
ServletContext域对象,代表整个应用。一个应用只有一个域对象。他是单例对象(Servlet当前应用中数据共享)
setAttribute(str,obj); //域对象中添加map
getAttribute(str)//
removeAttribute();//
全局配置
<context-param>
<param-name>encoding
<param-value>UTF-8
获取全局配置信息
String encoding = this.getServletContext().getInitParameter("encoding");
获取资源路径
getRealPath(String path); //获取绝对路径,获取该应用任何位置的资源
获取路径资源案列
Servlet转发
//解决乱码问题,doGet 设置相应类型和字符编码
response.setContentType("text/html");
response.setCharacterEncoding("UTF-8");
RequesetDispatcher rd = request.getRequestDispatcher("/servelet3");
//相应数据
response.getWriter().write("servlet5");
Http消息头包含请求头和响应头。