servlet基础

  • 1、掌握Servlet的结构和执行流程
  • 2、掌握Servlet的生命周期
  • 3、掌握Servlet在项目中的应用
  • 4、使用MVC架构进行项目开发
一、servlet基础
  • 1、servlet概述
      servlet就是在服务器端运行的一个小程序。一个servlet就是一个java类,并且可以通过“请求-响应”编程模型来访问的这个驻留在服务器内存里的servlet程序。
  • 2、Tomcat容器等级
      Tomcat的容器分为四个等级,Servlet的容器管理Context容器,一个Context对应一个Web工程, 一个Context对应一个Web工程.
      Tomcat - - Container容器 - - Engine 引擎容器 - - HOST 主机容器 - - Servlet容器 - - Context

  • 3、手工编写servlet步骤:
    • 1、集成httpServlet类
    • 2、重写doGet和DoPost方法
    • 3、在web.xml中注册
     <servlet>
         // 任意名字
        <servlet-name>DemoServlet</servlet-name>
        // 源码中包名 + 类
        <servlet-class>com.imooc.servlet.Demo</servlet-class>
    </servlet>

    // 匹配url
    <servlet-mapping>
        // 和上面名字一致
        <servlet-name>DemoServlet</servlet-name>
        // 浏览器中访问路径
        <url-pattern>/servlet/demo</url-pattern>
    </servlet-mapping>
  • 4、servlet生命周期
      servlet生命周期阶段包括初始化、加载、实例化、服务和销毁。
    • 1、首先调用构造方法初始化阶段,调用init方法
    • 2、先判断该请求的servlet实例是否存在,如果不存在先装载一个servlet类并创建实例。如果存在则直接调用该servlet的service方法,之后进行判断是调用doGet方法还是doPost方法。
    • 3、最后调用destroy方法结束。
  • 5、servlet的装载三种情况:

  • 1、自动装载:某些Servlet如果需要在Servlet容器启动时就加载,需要在web.xml下它的标签里中,添加优先级代码:

<Servlet>
    <load-on-startup>1<load-on-startup>
</Servlet>

PS:数字越小表示该servlet的优先级越高,会先于其他自动装载的优先级较低的先装载.
* 2、Servlet容器启动后,客户首次向某个Servlet发送请求时,Tomcat容器会加载它

  • 3、当Servlet类文件被更新后,也会重新自动加载
    Servlet是长期驻留在内存里的。某个Servlet一旦被加载,就会长期存在于服务器的内存里,直到服务器关闭

  • 4、Servlet被装载后,Servlet容器创建一个Servlet实例并且调用Servlet的init()方法进行初始化。在Servlet的整个生命周期内,init()方法只被调用一次

  • 6、Servlet的路径跳转
    一、JSP跳转到Servlet
相对路径:servlet/HelloServlet(当前资源的路径)

/servlet/HelloServlet 第一个/表示服务器的根目录

    <!-- 使用绝对路径 访问HelloServlet,可以使用path变量:path变量表示项目的根目录-->
    <a href="<%=path%>/servlet/HelloServlet">访问HelloServlet!</a><br>    
    <!--表单中action的URL地址写法,与超链接方式完全相同。 -->
    String path=requser.getContextPath();(表示项目的根目录

二、Servlet跳转到JSP


//请求重定向方式跳转到test.jsp,当前路径是ServletPathDirection/servlet/
//response.sendRedirect("test.jsp");//报错

//使用request.getContextPath获得上下文对象
//response.sendRedirect(request.getContextPath()+"/test.jsp");

//服务器内部跳转,这里的“/”表示项目的根目录
//request.getRequestDispatcher("/test.jsp").forward(request, response);

//“..”返回上级目录
request.getRequestDispatcher("../test.jsp").forward(request, response);
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值