servlet运行机制:

  当发送一个请求到服务器的时候,容器(Tomcat)会判断该路径属于哪一个 Servlet 进行处理,Servlet 有一个抽象父类“HttpServlet”,这个类是一个模板设计模式的类,其中service 方法是一个模板方法。当接受到请求之后容器会自动调用父类的 service() 方法。

  一个servlet 需要继承“HttpServlet” ,这个类是一个抽象类但是没有抽象方法,当用户发送请求的时候容器调用对应的 servlet 的 servlce() 这个模板方法,在该法中判断用户的请求是什么类型,根据类型来确定调用对应的方法(doXXX()方法)。

  HttpServlet 是一个模板类,该类中的方法都有默认的实现,如果子类有新的需求就可以选择性的覆写指定的方法即可,这就是一个典型的模板设计模式。

Request内置对象:

  所谓的内置对象就是已经创建好的对象(容器创建的),我们可以直接使用的对象,那么在容器中如果接受到一个用户的请求则会自动创建一个对象来处理客户端发送的一些信息,这个对象就是内置对象,该对象的类型是“javax.servlet.http.HttpServletRequest”,名称就是request,其实在调用 service 方法的时候容器会自动传递该对象给方法。

  既然该内置对象包含了用户发送的一些信息,则可以使用对应的方法将这些信息取得。

Cookie[ ] getCookies(); //取得客户传递的 cookie 信息

String getHeader(String var1); //取得请求头信息,根据请求头名称取得对应的值

Enumeration<String> getHeaderNames(); //按照枚举的方式取得所有的请求头信息

String getMethod();  //取得请求的方式

String getPathInfo(); //取得额外路径,在DEMO去解释

String  getContextPath();  //取得当前项目的根路径

String getQueryString();  //取得 url 地址?后面的内容(参数)

String getRequestURI();  //取得 url 地址

String getServletPath();  //取得Servlet 的映射路径(就是在 web.xml 文件中配置的映射路径)

HttpSession getSession();  //取得sessionn 内置对象

服务器端跳转:

  服务器端跳转又叫做服务器端转发还可以还可以叫做服务端重定向,在大部分的开发中从用户发送请求到看到数据会经历如下的过程:

1、用户发送请求到服务器。

2、服务器会将请求交给对应的控制器(目前是Servlet)处理,在控制器中调用业务层方法取得数据。

3、之后将取得数据保存到request 内置对象。

4、然后在跳转到页面将保存在 request 内置对象中的数据再次取出来之后显示到页面(用户看到信息)。

servlet运行机制、Request内置对象和服务器端跳转的更多相关文章

  1. request内置对象

    request内置对象(JSP九大内置对象之一)简述:内置对象即已在容器内部创建完成,可以直接调用的对象.容器在接收到客户端的请求后会创建一个对象用于处理请求信息,该对象就是内置对象(属于“javax ...

  2. Servlet中获取JSP内置对象

    方便自己查询,嫌低级的勿喷.... 1.request 在servlet的doGet和doPost的参数中就有HttpServletRequest req参数,而JSP内置request对象就是Htt ...

  3. Servlet中的jsp内置对象

    Servlet和jsp本质相同,那么为什么还要使用jsp呢,原来的servlet又有什么不好的呢. Servlet和jsp可以做完全相同的事情,就要借助jsp的内置对象们,比如request,resp ...

  4. request内置对象在JSP

  5. JSP内置对象---request对象(用户登录页面(返回值和数组:gerParameter,getParameterValues))

    创建两个jsp页面:reg.jsp 和 request.jsp reg.jsp: <%@ page language="java" import="java.uti ...

  6. JSP内置对象——out对象/request对象

    在这个科技高速发展的时代,迫使我们的脚步一刻都不能停下. 在这个for循环语句当中,我们可以直接使用jsp内置对象中的out对象来给浏览器打印输出,那么这个out对象就是一个内置对象, 在这里,我们使 ...

  7. JSP内置对象---request 对象

    request.jsp: <%@ page language="java" import="java.util.*" contentType=" ...

  8. JSP九个内置对象及指令、动作标签

    一.JSP九大内置对象 (一)JSP中无需创建就可以使用的9个对象 输入输出对象 1.response(HttpServletResponse):处理JSP生成的响应,然后将响应结果发送给客户端.是s ...

  9. JSP第二篇【内置对象的介绍、4种属性范围、应用场景】

    什么是JSP内置对象 JSP引擎在调用JSP对应的jspServlet时,会传递或创建9个与web开发相关的对象供jspServlet使用.JSP技术的设计者为便于开发人员在编写JSP页面时获得这些w ...

随机推荐

  1. 关于用户与服务端密码的校验问题 !mysql php

    问题:如何拿到服务端的数据与客户端的数据进行对比! 判断是否一致: 问题解决步骤: 建立数据库连接: $conn = mysqli_connect(主机地址,用户名,用户密码,数据库名字): 查询数据 ...

  2. pytorch autograd backward函数中 retain_graph参数的作用,简单例子分析,以及create_graph参数的作用

    retain_graph参数的作用 官方定义: retain_graph (bool, optional) – If False, the graph used to compute the grad ...

  3. java8 时间使用

    为什么需要新的时间API 文章来源:https://www.cnblogs.com/guozp/p/10342775.html 在Java 8之前的日期/时间API之前,现有的与日期和时间相关的类存在 ...

  4. 常见形式 Web API 的简单分类总结

    一.请求--响应API. 请求--响应类的API的典型做法是,通过基于HTTP的Web服务器暴露一个/套接口.API定义一些端点,客户端发送数据的请求到这些端点,Web服务器处理这些请求,然后返回响应 ...

  5. mysql id从n 开始

    mysql 全部删除数据后设置 id从1开始: truncate table table_name mysql  删除部分数据后设置 id从n开始 ALTER TABLE user auto_incr ...

  6. Kubernetes的污点和容忍(下篇)

    背景 继上一篇<Kubernetes的污点和容忍(上篇)>,这是https://kubernetes.io/docs/concepts/configuration/taint-and-to ...

  7. 美团分布式服务通信框架及服务治理系统OCTO

     一.什么是OCTO 定义: OCTO是美团的分布式服务通信框架及服务治理系统,属于公司级基础设施,目前尚未开源. 目标: 为公司所有业务提供统一的服务通信框架,使业务具备良好的服务运营能力,轻松实现 ...

  8. C++ Sqlite3的基本使用

    |SQLite3简介  SQLite3只是一个轻型的嵌入式数据库引擎,占用资源非常低,处理速度比Mysql还快,专门用于移动设备上进行适量的数据存取,它只是一个文件,不需要服务器进程. SQL语句是S ...

  9. 【转载】java 中 String s = new String("abc") 创建了几个对象?!

    原文链接点这里,感谢博主分享 答案是两个,现在我们具体的说一下: String s = new String("abc"); 首先我们要明白两个概念,引用变量和对象,对象一般通过n ...

  10. Tushare模块

    .TuShare简介和环境安装 TuShare是一个著名的免费.开源的python财经数据接口包.其官网主页为:TuShare -财经数据接口包.该接口包如今提供了大量的金融数据,涵盖了股票.基本面. ...