• Servlet 三种创建方式


    servlet 是运行在 Web 服务器(tomcat)中的小型 Java 程序(即:服务器端的小应用程序

    (其实就是一个java类,只不过不用再new)servlet 通常通过 HTTP(超文本传输协议)接收和响应来自 Web 客户端的请求

    一、实现javax.servlet.Servlet接口

    写一个java类,实现servlet接口

    输入impl 然后alt+/可以自动补齐 。

    鼠标放在Servlet上可以自动出现要包含的包名。

    下图鼠标放在1的位置然后选择2这样就会出现要实现的方法。

     

    然后如下图修改web.xml文件

    注意:下图中的1是项目的全路径,如果你在建web project项目时填的是com.it.servlet那么下面应该填的是com.it.servlet .Demo1  下图中的2不要忘了/

    全路径复制方法入下图:(这样就可以复制出com.it.servlet.Demo1

     

    应用部署到服务器(tomcat

     

    启动服务器,输入 http://localhost:8080/day8/demo1

    浏览器啥都没有,因为我们啥都没写。。。。。原理如下:

    执行过程如下:

     tomcat接受浏览器信息,然后找到相应的web projectday07,然后根据web.xml找到servletDemo1(就是我们写的类),并实例化servletDemo1。 然后tomcat调用servlet中的init()方法 Service()方法等

     二、继承javax.servet.GenericServlet

    只要重写service方法就行了——适配器模式

     

    然后输入下面的程序:(技巧 alt+ / 自动补齐GenericServlet  注意大小写

    然后鼠标放到servlet_demo2处自动补齐service方法

     

    然后在web.xml下输入

    然后重新部署tomcat

    然后在浏览器中输入:

    http://localhost:8080/day07/demo2 

    (就会在myeclipse下框中输出servletDemo2 )

    按住ctrl键然后点击下图

     

    然后点击下图

     

    然后点击下图

    然后倒入tomcat源码

     

    下图,点击1显示出来的就是GenericServlet类的所有方法,带三角号(箭头2)的是继承servlet的,不带三角号(箭头3)的是自己实现的方法。

     

    三、继承javax.servlet.http.HttpServlet

    (模板方法设计模式)看源码可知其实就是多态  【开发中常用】

    新建应用程序然后导包

    插入Override函数(重写函数):

    1空白处点击右键,然后选择Source->Override/Implement Methods...如下图:

     

    然后如下图选择doget()方法  dopost()方法

    然后重写这两个方法如下图

    在web.xml文件输入

    然后重新加载

    浏览器中访问

    http://localhost:8080/day07/demo3

    就会在 Myeclipse 出现

    原理:

    Tomcat会创建一个demo3对象,但是demo3是继承httpservlet类的,而浏览器在访问服务器时,Tomcat会调用service方法,但是httpservlet类里重写了GenericServlet类的service方法,所以会调用httpservlet类中的service方法这个方法中调用了doget方法。所以我们要实现doget方法(按住ctrl键,然后鼠标点击相关的类名和函数名可以查找看一下源码)

    Servlet --> GenericServlet --> HttpServlet  (继承HttpServlet)

    曾祖父         爷爷                    爸爸                    孙子

    更简单的创建    【自动生成web.xml 中的内容

    然后就会自动生成惹

    输入http://localhost:8080/day9/servlet/demo4 即可访问

    servet映射细节

    在Web.xml添加下图箭头1,那么在浏览器中输入:

    http://localhost:8080/day9/demo666 访问的也是demo4中的内容·

    web.xml如下图添加的内容作用:

    上图的箭头1  *.do 代表任意字符串.do 都能访问demo4

    浏览器输入:

    http://localhost:8080/day9/demo.do

    上图的箭头2   /*    代表任意字符串都能访问demo4

    浏览器输入:

    http://localhost:8080/day9/de

     

    上图的箭头3   /action/*    /action开头的请求都可以访问demo4

    浏览器输入:

    http://localhost:8080/day9/action/dew

     

     

    匹配规则:

    优先级:从高到低

    绝对匹配(就是名字完全匹配)-->  /开头匹配 --> 后缀名方式匹配

     

    打开 F:apache-tomcat-7.0.52conf 下的web.xml97行和360行可知只要在浏览器中输入

    http://localhost:8080/day9/ 默认打开的资源都是servlet 

  • 相关阅读:
    Android第三次作业
    Android第二次作业
    2016-2017-2软件工程课程总结
    软件工程——个人总结
    软件工程——团队答辩
    软件工程——团队作业4
    软件工程——团队作业3
    软件工程——团队作业2
    软件工程——团队作业1
    软件工程第二次作业——结对编程
  • 原文地址:https://www.cnblogs.com/expedition/p/11211253.html
Copyright © 2020-2023  润新知