1:Servlet:
1) Servlet的基本概念:
servlet是一个普通的Java类,必须继承HttpServlet,Servlet类是不能直接运行的,需要交给tomcat来运行
2) Servlet程序的执行过程
先运行项目下的web.xml文件,然后在web.xml中url-pattern中找相应的名称,然后在通过servlet-name找到相应的路径,
然后通过servlet-class找到class文件,通过反射进行加载类,然后调用server()方法,它是程序的入口,然后在执行相应的
doGet()或者doPust()方法.
3) 映射路径
映射路径就是在地址栏中最终访问的地址,在web.xml中设置url-pattern;
精确匹配: 就在url-pattern中设置的是一个精确的地址,
模糊匹配: 第一个是/* ; 表示的是其他没有出现的地址;
第二个是*.(action,do,html) 表示以其结尾的地址
精确匹配优先于/* 优先于 *.(action,do,html)
4) servlet的生命周期
servlet是一个单例的,只创建一个对象, 使用init()方法,来进行初始化;
使用server()方法,来运行这个类, destory()方法,来对这个servlet进行销毁.
自动加载: 在web.xml文件中servlet标签下添加一个
1 其中数字越小,优先级越高,
servlet是一个单例的,但是是一个多线程的,所以在servlet类中如果有成员变量,在使用时,就需要注意使用同步方法.
5) ServletConfig
用来对servlet进行配置,只能对当前servlet有效,对其他的servlet没有作用,
在servlet标签下
设置名称和值 getInitParamater(String name) ; 获取参数的值, getInitParameterNames() ; 获取所有的参数,返回值是一个Enumeration
6) ServletContext
代表的是上下文路径, 获取的是getContextPath() ; 获取到是项目名称
设置全局参数
设置名称和值 getInitParameter(String name) ; 获取到参数的值,
还可以作为域对象,来进行数据的发送,
添加数据: setAttribute("name","value") ;
获取数据: getAttribute("name") ; value的类型是任意的,可以是字符串,也可以是数组,集合.
7) 请求转发:
请求转发是,通过context的getQuestDispatcher(uri).forward(request,response);
请求转发是服务器行为,只有一次request,并且地址栏不会发生改变,同时,request中的数据也会被转发,
但是不可以访问外部资源,只可以访问项目中的资源.
重定向: 是通过response的sendRedirect("uri");
重定向是浏览器行为,有两次request,地址栏也会发生变换,不能通过request进行数据的传输,
但是可以访问外部资源;