理解MVC

MVC设计模式

	M: model 模型 :一个功能,用JavaBean实现
	V: view	视图 :前端来实现
	C:controller 控制器 : 接受请求 ,将请求跳转到模型处理;
		模型处理完毕后,在将结果返回给 请求处(一般用servlet)
	jsp->java(servlet)->jsp

理解MVC_第1张图片

servlet:

java类必须符合一定的规则:
		a、必须继承 java.servlet.http.HttpServlet
		b、重写其中的doGet方法或doPost方法
	servlet 要使用,必须配置
	servlet2.5:web.xml
	servlet3.0:@WebServlet

项目的根目录:webContent、src
所在的jsp是在webcontent目录中,因此 发出的请求 是去请求项目

servlet执行过程

servlet2.5:web.xml
	请求-》-》根据-》中的
	去匹配中的然后寻找到	,
	最终将请求交给

理解MVC_第2张图片

servlet3.0:@WebServlet

在servlet类的的定义智商编写注解@WebServlet("url-pattern的值 ")
匹配流程:请求地址与@WebServlet中的值进行匹配,如果匹配成功,则说明 请求

根路径:webcontent src(所有的构建路径)

例如:
webcontent中有一个文件index.jsp
src中有一个servlet.java

如果:index.jsp中请求 ...寻找范围: 即会在scr根目录中找 也会在webcontent根目录中找 abc
如果:index.jsp中请求 ...寻找范围: 即会在scr或/webcontent根目录中找a  然后在a中找abc 

/:

	web.xml 中的 /:项目路径
	http://localhost:8888/myJsp/sessionDemo/login.jsp
	jsp 中:服务器根路径
	http://localhost:8888/
	构建路径,webcontent:根目录

servlet生命周期:5个阶段

理解MVC_第3张图片
初始化:init(),该方法会在servlet被加载并实例化以后执行
服务:service ()-----doget dopost
销毁:destory() servlet被系统收回时执行

init():

		a、	默认第一次访问servlet时会被执行(只执行一次)
		b、	可以修改为tomcat启动时执行

启动顺序: load-on-startup

	当值为0或者大于0时,表示容器在应用启动时就加载这个servlet;
	当是一个负数时或者没有指定时,则指示容器在该servlet被选择时才加载。
	正数的值越小,启动该servlet的优先级越高。
	如果我们在web.xml中设置了多个servlet的时候,可以使用load-on-startup来指定servlet的加载顺序,
	服务器会根据load-on-startup的大小依次对servlet进行初始化。
	不过即使我们将load-on-startup设置重复也不会出现异常,服务器会自己决定初始化顺序。


配置load-on-startup后,servlet在startup后立即加载,但只是调用servlet的init()方法,
	用以初始化该servlet相关的资源。初始化成功后,该servlet可响应web请求;如未配置load-on-startup,
	容器一般在第一次响应web请求时,会先检测该servlet是否初始化,如未初始化,则调用servlet的init()先初始化,
	初始化成功后,再响应请求。
配置这个参数,有两个好处:
	1、如果初始化过程失败,则容器会提示启动失败,此时我们能够提前知道相关错误;
	2、配置该参数相当于将初始化servlet的工作转移到容器启动过程,使得容器只要启动成功后,
		就可立即响应web请求。

配置:

i、2.5
	
		1 
	 
ii.3.0
	@WebServlet(value="/WelcomServlet",loadOnStartup=1)

service():

doget /dopost调用几次,则执行几次

destroy():

服务器关闭时执行,执行一次
servlet API:
	有两个软件包组成:对应于http协议、和非http协议
	即servlet API可以适用于任何 通信协议
	我们学习的servlet 是位于javax.servlet.http

servlet继承关系

servletConfig:接口
ServletContext  getServletContext()获取servlet上下文对象  application是由他产生
String getInitParameter(string name):在当前servlet范围内,获取名叫name的参数值(初始化参数)

ServletContext 中常见方法:(application)

1、	application中的方法
2、	String getInitParameter(string name):在当前web容器范围内,获取名叫name的参数值(初始化参数)

配值:

	2.5在web.xml中配置
	3.0:在servlet中配局部,在web.xml中配全局(2.5同)
initParams={@WebInitParam(name="serletParaname",value="serletPara value")}

拿值

	2.5
		//那当前servlet中的
		String value = super.getInitParameter("serletParaname");
		System.out.println(value);
		//拿web容器中的
		ServletContext servletContext = super.getServletContext();
		String golobValue = servletContext.getInitParameter("globalParam");
		System.out.println(golobValue);

3.0:与2.5同

你可能感兴趣的:(JavaWeb)