Servlet

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进行数据的传输,

但是可以访问外部资源;

你可能感兴趣的:(JavaWeb)