2019.08.12(day10)
web部分
jsp技术和servlet技术
j2EE的13套接口规范:(sun公司定义的)
1.xml接口:java解析xml接口,应用厂商提供xml接口的实现方法dom4j
2.jdbc接口:java数据库的连接,数据库厂商提供jdbc接口的实现mysql.jar
3.jsp接口:java server page java的服务器页面
应用厂商提供的jsp接口的实现tomcat中的jsp-api.jar
4.servlet:是一个web开发的接口,应用厂商提供接口的实现tomcat中的servlet-api.jar
统一的开发工具:
eclipse
jdk
tomcat
maven apache
创建web项目:
方式一:非maven的方式
1.创建dynamic web project
在创建的过程中 点击"next",要给web.xml打上对勾
2.jar resources中的src目录放置的数java源代码
3.webContent中放置的是web的资源
资源:
hrml,js,css,image,video等资源
4.webContent/WEB-INF/lib 放置的是本项目依赖的jar包
把jar拷贝到lib即可,系统会自动构建路径
5.webContent/WEB-INF/classes 是web项目中的类路径
6.项目的部署:
右击"servers"中tomcat,--add and remove
--publish
--clean
7.项目的运行
右击"servers"中tomcat,--start 开启
--stop 停止
--restart 重启
--debug debug方式开启
8.打开浏览器,敲入请求的url,访问服务器
方式二:maven方式
方式二:maven方式
1.创建maven的web项目
2.添加web.xml
3.给项目添加jar依赖
<dependency>
</dependency>
<build>
编译的等级
</build>
4.src/main/java java的源代码
src/main/resource 项目的资源文件
src/test/java 测试源代码
src/test/resource 测试用的资源文件
5.src/main/webapp中放置的是web的资源
6.项目的部署:
右击"servers"中tomcat,--add and remove
--publish
--clean
7.项目的运行
右击"servers"中tomcat,--start 开启
--stop 停止
--restart 重启
--debug debug方式开启
8.打开浏览器,敲入请求的url,访问服务器
web.xml:
-web.xml文件存储在webContent/WEB-INF/web.xml中
-web.xml是当前web项目的入口,每个web项目都要有一个web.xml文件
-web.xml在tomcat服务器启动的时候解析和加载
解析:用dom4j能够读取web.xml的内容
加载:解析完毕后,把读取到的内容以字符串的方式存储到内存
-tomcat服务器每次启动都会重新加载web.xml,启动完毕后改动了web.mxl不会生效,只有重启了服务器之后才有效
-启动tomcat时就报异常,只能是因为web.xml写错了
tomcat启动过程中报错的处理方式
-web.xml写错了,在错误信息中提示的是web.xml中的内容
-在控制台不报the错误信息,直接弹出一个对话框,框中提示端口被占用,此种情况是在启动tomcat后,eclipse意外终止造成的,只能在系统的进程中强制终止和java有关的所有进程
WEB-INF目录:
-在webapp/WEB-INF目录中
-此目录中的所有资源,都不能通过浏览器来访问,但是程序员自己可以访问
-建议把一些重要的页面放在WEB-INF中
tomcat启动过程:
-tomcat启动的时候首先会解析和加载tomcat目录中web.xml
tomcat自检,如果能出现
Initialization processed in xxx ms
说明tomcat自检没有问题/没错误
如果有错就重新解压tomcat
-Starting servlet Catalina:说明正在开启服务
Starting Servlet Engine:说明开启服务器中的servlet引擎
servlet引擎开启了,那么就自动读取/加载/解析部署后的web项目的
web.xml文件
-Server startup in xxx ms:说明tomcat启动完毕
在Starting Servlet Engine和Server startup in xxx ms之间
有任何异常信息,只能是项目的web.xml写错了
什么是servlet:
servlet是sun公司做出的一套接口规范,此套规范无法独立运行
必须放在web服务器(tomcat)中来运行
web服务器(tomcat)也可以称为web容器(放置一个或多个web项目)
有了以上的前提,就可以通过浏览器请求一个url地址
最终执行了某个servlet中的doXXX方法,就可以通过浏览器执行一段java代码
这就是设计servlet接口的目的
多个平台之间调用的时候,就可以模拟servlet接口
表单的提交方式:
1.post提交
是以数据块的方式发送数据给服务端
可以发送大量数据
在地址栏上不会显示数据内容,比较安全
2.get提交
是以数据字符串的方式发送数据给服务端
只能发送两百多个字符
在地址栏会显示数据的内容
没有明确指定posst提交,默认为get提交
servlet运行的步骤:
1.浏览器依据url建立与web服务器(tomcat)的连接
2.浏览器对请求的数据打包并发送给服务器
3.web应用服务器解析请求的数据,并分别把数据封装到request对象的reponse对象中
4.web应用服务器根据url的路径,寻找servlet并反射实例化servlet对象
5.web应用服务器会自动调用init方法做初始化
6.web应用服务器自动调用service方法,
service方法根据method指定的值调用对应的doXXX方法
7.执行doXXX方法,方法中通过response对象,把数据响应给浏览器
8.浏览器获取到响应回来的数据(响应的实体内容),浏览器格式化显示数据到网页上
servlet的生命周期:
a.第一次请求servlet的时候生命周期开始
当浏览器请求某个url的时候,也就是说在请求服务器的servlet
如果web.xml中有这个url,就寻找这个url的兄弟节点<servlet-name>
如果有就取出名字,拿着名字在整个web.xml文件中查找是否有
<servlet>
<servlet-name></servlet-name>
</servlet>
这样层级的servlet的名字
如果找到了,就找到了<servlet-name>的兄弟节点<servlet-class>
取出servlet-class的值,并反射实例化对象,此时servlet生命周期开始
用此对象自动调用init方法(如果有),init方法只执行一次
并做初始化工作,自动调用service方法,service方法会根据method指定的值
调用对应的doXXX方法,只要服务器不停止,每次请求都会执行service方法
只要服务器不停止,每次请求都会执行service方法
直到正常停止web应用服务器,会自动调用destroy方法
destroy方法用于销毁对象并释放内存空间,生命周期结束
b.在服务器启动的时候生命周期开始
<servlet>
<load-on-startup>数字</load-on-startup>
</servlet>
load-on-startup:
-此元素标记日期在启动的时候加载这个servlet,生命周期开始
-它的必须是一个整数,表示servlet的加载顺序
-当值为0或大于0的时候表示容器在启动的时候加载
-当值小于0会免于指定此配置项时表示容器在该servlet被第一次请求的时候才加载
-整数值越小,优先级越高,servlet就越优先加载
-当值相同的时候,容器就按照书写的顺序加载
提交的方式:
1.post提交
2.get提交
3.delete提交
4.put提交
5.head提交
...