###Servlet的生命周期 重点
#实例化 -创建一个Servlet 单例(只有一个实例) 和Filter一样
#初始化 -只初始化一次 在Tomcat自动创建Servlet后,会立即自动初始化(调用init()方法)
-默认是在首次访问时Tomcat自动创建(实例化)和初始化 http://localhost:8088/Servlet6/demo 首次访问
-也可以修改配置文件web.xml,使得启动Tomcat就直接创建(实例化)Servlet
-<servlet> <load-on-startup>1</load-on-startup> </servlet> 1表示创建的次序
#就绪 -调用 访问几次就调用几次
#销毁 -在通过server关闭Tomcat时,会自动销毁Servlet
***实例化、初始化、销毁只能执行一次
###ServletConfig与ServletContext
#Context:Servket上下文,理解为环境
-环境可以给某内部的个体提供资源
-从编程角度来说,可以给内部的对象提供数据
#ServletConfig 1对1
-是Servlet的私有环境,可以为某一个Servlet提供数据
-写在<select></select>标签内,
<init-param>
<param-name>maxOnline</param-name>
<param-value>2000</param-value>
</init-param>
ServletConfig cfg = getServletConfig();
String str = config.getInitParameter("maxOnline");
#ServletContext 1对多
-是Servlet的共有环境,可以为所有Servlet提供数据
-写在<select>和<servlet-mapping>标签外,
<context-param>
<param-name>size</param-name>
<param-value>10</param-value>
</context-param>
ServletContext ctx = getServletContext();
String size = ctx.getInitParameter("size");
-特殊用法:
-可以使用此对象存取一些变量
-即在程序运行阶段随时向此对象内存取数据
-取:ctx.getAttribute("user");
-存:ctx.setAttribute("user","zhangsan");
##使用ServletConfig和ServletContext给Servlet预置数据,不用写单独的配置文件,直接使用web.xml即可。
另外这2个对象可以再初始化Servlet之前自动读取web.xml中的预置数据。
###JSP本质上就是Servlet,运行时JSP将被翻译成Servlet(只翻译一次)
-翻译过程: 自动实现
-1.创建Servlet类
-2.翻译:创建变量、write HTML、保留脚本、print 表达式
-3.编译Servlet
=========================================================
###MVC模式是经典的设计模式,是代码的分成思想:
-1.M:Model,即业务层,用来处理业务 Dao
-2.V:View,即视图层,用来显示数据 JSP
-3.C:Controller,即控制层,用来管理和调度程序,他是M和V的桥梁 Servlet
其目的是降低代码之间的耦合度,便于团队开发及维护
=========================================================
###转发和重定向
##转发和重定向都用来解决web组件之间的跳转问题。WEB组件:处理请求的组件,Servlet和JSP
##转发:通常查询时转发
-一次请求
-地址不变
-共用一个request,所有可以共享数据
-不能转发到外部资源
##重定向:通常增、删、改后,重定向到查询
-两次请求
-地址改变
-两个request,不能通过它共享数据
-可以重定向到外部资源
=====================================================
**在java程序中访问不同的数据库,需要下载对应的数据库驱动,学习时使用的是Oracle,导入ojdbc.jar包 (ojdbc14:10.2.0.4.0)
**使用DBCP连接池需要导jar包:commons-dbcp (1.4) commons-pool(1.5.4)
**XML的读写需要导jar包:dom4j 和 javen(XPath时需要)
**Junit.jar包:方便测试方法,比main方法好用,可以再一个类里建多个测试方法:
每个方法必须加 @Test,被测试的方法必须是:公有、无参数、无返回值
**使用JSTL:JSP标准标签库时,要导入jstl.jar包(1.2)
**在创建WEB项目时,目前用的是Tomcat服务器:
#导入jar包
-通过maven导入jar包,搜javaee
-使用服务器自带的jar包,右键项目,点击properties,target runtime-->勾选tomcat
**Spring框架导包:建立maven项目,使用Tomcat服务器自带的jar包,并导入org.springframework spring-webmvc(3.2.8),还需要一个配置文件
不用Maven导包,如何手动导:将jar包复制在WEB-INF下的lib文件夹下(没有lib文件时新建一个),然后build path,Add to build Path.
<!--
命令行里输入:
mvn install:install-file -DgroupId=org.mybatis -DartifactId=mybatis -Dversion=3.2.5.RELEASE -Dpackaging=jar -Dfile=C:\Users\Java\Desktop\mybatis-3.2.5.jar
然后将jar包复制进C:\Users\Administrator\.m2\repository下
再用pom.xml导包。