zoukankan      html  css  js  c++  java
  • Servlet基础知识

    目录!

    一、什么是servlet

    二、Tomcat容器等级

    三、手工编写第一个servlet

    四、servlet执行流程

    五、servlet生命周期

    六、Tomcat装载servlet的三种情况

    七、servlet与JSP内置对象的关系

    八、servlet获取表单数据

    九、servlet路径跳转

     

    一、什么是servlet

    servlet是在服务器上运行的小程序。一个servlet就是一个java类,并且可以通过“请求-响应”的模型访问这个服务器内存中的servlet程序。JSP的前身就是servlet。

    二、Tomcat容器等级

     tomcat的容器分为四个等级,servlet的容器管理context容器,一个context对应一个web工程。

    三、手工编写第一个servlet

    1. 新建一个工程 MyFirstServletDemo
    2. 打开默认首页 index.jsp 修改默认字符编码
    3. 1加个标题和链接

      4. 在src下新建一个包servlet 在包中建一个类HelloServlet,继承HttpServlet

      5.1 重写doGet() 

    6.1在web.xml中注册servlet

    3.2            在index.jsp中加post表单

    5.2重写dopost()方法

     

    四、servlet执行流程

     

    五、servlet生命周期

    1.客户端发送请求给服务器。

    2.服务器开始接受,先判断该请求的servlet实例是否存在,如果不存在先装载一个servlet类并创建实例。如果存在则直接调用该servlet的service方法,之后进行判断是调用doGet方法还是doPost方法。

    3.servlet创建实例后,调用init方法进行初始化。之后调用servce方法,判断是调用doGet方法还是doPost方法。

    4.最后判断服务是否关闭,如果关闭则调用destroy方法。

    1. 初始化阶段,调用init()方法。但在初始化之前要先调用Servlet类的构造方法,生成Servlet的实例(创建Servlet对象)。
    2. 响应客户请求阶段,调用service()方法。由service()方法根据提交方式选择执行doGet()或者doPost()方法。
    3. 终止阶段,调用destroy()方法。也就是销毁阶段。
    顺序:构造方法-->init()方法-->service方法-->doGet()/doPost()方法-->Destroy方法

    六、Tomcat装载servlet的三种情况

    1. servlet容器启动时自动装载某些servlet,实现他只需要在web.xml文件中的<Servlet></Servlet>之间添加:  <loadon-startup>1<loadon-startup>  数字越小优先级越高

    2. 在Servlet容器启动后,客户首次向servlet发送请求。

    3.servlet类文件被更新后,重新装载servlet。

    注意:servlet被转载后,servlet容器创建一个servlet思路并且调用servlet的init()方法进行初始化。在servlet的整个生命周期内,init()方法只调用一次。

     

    七、servlet与JSP内置对象的关系

     

    八、servlet获取表单数据

    1.单个数据:

    username =request.getParameter(“”);

    获取多个数据(复选框型,返回字符串数组):

    favorites=request.getParameterValues Parameter(“”);

    u.setUsername(username);

    u.setMypassword (mypassword);

    u.setEmail (email);

    2.把注册成功的对象保存在session中

    request.getSession().setAttribute(“regUser”,u);

    3.跳转到注册成功界面

    request.getRequsetDispatcher(“../userinfo.jsp”).forward(request,response);

     

    九、servlet路径跳转

    1、在页面中访问servlet
       ①相对路径:servlet/HelloServlet
       ②绝对路径:path变量表示项目的根目录,path/servlet/HelloServlet,其中path=request.getContextPath
    **超链接中href应该写成"servlet/HelloServlet",servlet前不能有/;web.xml中url-pattern标签中的url地址应写成“/servlet/HelloServlet”,servlet前必须有/,表示项目的根目录

    2、在servlet中跳转到jsp页面
       ①请求重定向:response.sendRedirect(request.getContextPath()+"/test.jsp")
         如果只写"test.jsp"表示的是相对路径,当前路径是“项目名称/servlet”,就错了
       ②Servlet服务器内部跳转路径写法:
         request.getRequestDispatcher("/test.jsp").forward(request,response),这里的“/”表示项目的根目录,
         也可以写成"../test.jsp",“..”表示上一层目录
  • 相关阅读:
    7
    6
    Robot Motion -- 机器人路径规划
    Delaunay Triangulation
    Voronoi Diagram -- 泰森多边形 (维诺图)
    Window query -- 区间线段包含问题
    5
    es6模块化
    js模块化编程之彻底弄懂CommonJS和AMD/CMD!
    混合开发菜鸟级别总结笔记 内容来自百度一下,你就知道
  • 原文地址:https://www.cnblogs.com/olivegyr/p/7400419.html
Copyright © 2011-2022 走看看