MVC设计模式及Servlet

MVC设计模式:

M:Model ,模型 : 一个功能,使用JavaBean实现;
V: View , 视图: 用于展示,以及与用户进行交互。使用 html ,js , css ,jsp 等前端技术;
C: Controller , 控制器: 接收请求,将请求跳转到模型进行处理; 模型处理完毕后, 再将结果集返回给请求处; 一般使用Servlet 实现控制器;



Servlet:

Java类必须符合一定的规范:
a、必须继承 javax.servlet.http.HttpServlet
b、重写其中的 doGet() 或者 doPost() 方法
doGet() : 接收并处理所有get提交方式的请求;
doPost():接收并处理所有post提交方式的请求;
Servlet要想使用,必须配置:
Servlet2.5:web.xml
Servlet3.0: @WebServlet

<servlet>
  		<servlet-name></servlet-name>
  		<servlet-class></servlet-class>
  </servlet>
  	
  <servlet-mapping>
  		<servlet-name></servlet-name>
  		<url-pattern></url-pattern>
  </servlet-mapping>

1、手写创建Servlet;

步骤:1、编写一个类,继承HttpServlet
2、重写doGet()doPost() 方法
3、编写  web.xml  中的 servlet 映射关系

2、借助Eclipse 快速生成Servlet;

新建Servlet 类,即可;

Servlet3.0: @WebServlet
Servlet3.0,与Servlet2.5 的区别:
Servlet3.0不需要再web.xml 中配置;但是需要在 Servlet 类的定义处之上 编写注解;

@WebServlet("url-pattern的值");

匹配流程:请求地址与 @WebServlet 中的值进行匹配,如果匹配成功,那么 说明请求的就是该注解所对应的类

项目根目录

例如:WebContent ,src(所有的构建路径 source folder)
WebContent中有一个文件 index.jsp
src 中有一个Servlet. java

如果:index.jsp中请求<a href="abc">...</a>,则寻找范围:既会在src 根目录中寻找,也会在WebServlet根目录中寻找;
如果:index.jsp中请求<a href="a/abc">...</a>,则寻找范围:既会在src 根目录或者WebContent 中寻找 a目录,找到之后,再在a目录中找 abc 文件;

Servlet 生命周期

1、加载

2、初始化:init( ); 该方法会在 Servlet 被加载并实例化以后,执行;

a、默认第一次访问 Servlet 时会访问,并执行(只执行这一次)
b、可以修改默认 Tomcat 启动时自动执行
		i、Servlet2.5:web.xml
				<servlet>
						....
						<load-on-startup>1</load-on-startup>
				</servlet>
			其中“1”代表第一个;
		ii、servlet3.0
			@WebServlet( value="/WelcomeServlet",loadOnStartup=1 )

3、服务:service( );-> deGet( ) ; doPost( ) ;

4、销毁:destory( ); Servlet 被系统回收时执行 destory 方法;

5、卸载

init();   //第一次访问Servlet 时会被执行(只执行一次)
service();   // doGet();  doPost();  调用几次,则执行几次
destory();   //关闭 tomcat 服务时,执行一次

Servlet API

由两个软件包组成:对应于Http协议的软件包、对应于除了HTTP协议以外的其他软件包即Servlet , API 可以适用于任何 通信协议;

Servlet继承关系

ServletConfig :接口

ServletContext  getServletContext();    //获取Servlet上下文对象  ->application
String  getInitParamrter(String name);    //在当前Servlet范围内,获取名为name的参数值(初始化参数)

a、ServletContext 中常见的方法(application)

String getContextPath();	//获取相对路径
String getRealPath();	//获取绝对路径
setAttribute();
getAttribute();
String getInitParameter(String name);	//在当前Web容器范围内,获取名为 name 的参数值(初始化参数)

Servlet3.0 方式,给当前  Servlet  设置初始值:
@WebServlet(value="/welcomeServlet",loadOnStartup=1,initParams={@WebInitParam(name="servletName",value="servletValue")})
// 次注解只隶属于一个具体的 Servlet, 因此无法为这整个 Web 容器设置初始化参数;
HttpServletRequest 中的方法:(同request)setAttribute(),getCookies(),getMethod();
HttpServletResponse  中的方法:(同response);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值