(day10)jsp和servlet(创建web项目+web.xmljiexi+WEB-INF目录+表单的提交方式+servlet运行步骤和生命周期)

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提交
    ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值