Tomcat 的安装:

  eclipse 需要自行安装tomcat,这是web 项目运行的服务器。如果用的是MyEclipse,里面自带tomcat,方便清除部署垃圾,利于项目运行。

  Tomcat的安装详细步骤:  自行百度!

1、什么是servlet?

  Sun公司制定的用于拓展web服务器功能的组件规范。

  a)  Web服务器只能处理静态的请求,不能够处理动态资源请求。这时需要servlet来对web服务器进行功能拓展。(web服务收到请求之后,如果需要计算,调用servlet容器来处理,再次调用servlet来计算)。

  b) 组件规范:

   组件:符合规范的,实现部分功能的,需要部署到相应的容器里面才能运行的软件模块。

   容器:符合规范的,能够提供运行环境的程序。

2、servlet 的内部结构以及运行原理

  a)  内部结构

    (1)Service 服务:doget/dopost(请求方式) ... 为请求服务。

      问题:什么时候执行?

        访问一次执行一次

    (2)构造方法:创建servlet 对象。

      问题:什么时候执行?

        第一次访问时执行,并且执行一次。

(3)初始化方法:init()

      问题:  什么时候执行?

          第一次访问时执行, 之后执行一次。

    (4)销毁方法 :destroy() :  从内存中清除掉。。

       问题:  什么时候执行?

         停止服务时执行,并且只执行一次

     面试题   : 请讲述servlet 内部结构以及访问次数。

  b)  运行原理:

    (1)    servlet 容器:读取到web.xml文件

    (2)    当某个 Servlet  被访问到时(URL),解析路径,获取到Servlet对应的类。

    (3)    容器加载实现并实例化一个 servlet 的对象,放入到servlet 容器中。

       (4)   执行服务。第二次开启服务器直接到容器中找到对应的servlet 服务。

    (5)   当服务停止或者服务器重启时,调用destory 方法,销毁servlet 对象。

  c) servlet 的生命周期:

    实例化 -->  初始化-->  服务-->  销毁

    (1)  创建  servlet  对象

    (2)    servlet 通过调用 init() 方法 进行初始化。  / 只执行一次

    (3)    servlet 调用 service 方法来处理客户端的请求。  // 处理请求

    (4)    servlet 调用destory ()  终止服务。

    (5)    最后,servlet 是由 JVM 的垃圾回收器回收。 

面试题:解释servlet的生命周期?

  d) 访问路径:

    localhost:8080/DaiN/hello

    解析: locallost 是本机地址,等同于 127.0.0.1

        8080 是默认的端口号;

        DaiN 是项目名称

        hello 是web.xml 文件中提供的外部访问路径。

错误的常见形式:

  404错误:  服务器找不到对应的请求资源 。(检查路径)

  405错误:  服务器找不到  service  方法的请求。(检查  service 方法)

  500错误:  程序在运行过程中出错。(检查servlet方法、web.xml 文件)

解决中文乱码的问题 :

系统默认的解析编码集:ios-8859-1                                                                                        

Request.setCharacterEncoding("UTF-8");

Response.setContentType("text/html;charset=utf-8");   //前是类型,后是编码集

3、请求方式

  Doget

 public class doGet_servlet extends HttpServlet {
public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException {
request.setCaracterEncoding(“gb2312”);//汉字转码
PrintWriter out = response.getWriter();
out.println("The Parameter are :"+request.getParameter("name1"));
}
}

  Dopost

 public class doPost extends HttpServlet {
public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException {
request.setCaracterEncoding(“gb2312”);//汉字转码
PrintWriter out = response.getWriter();
out.println("The Parameter are :"+request.getParameter("name2"));
}
}

Get:请求指定的资源(参数显示在地址栏上,不安全)只能提交少量数据给服务器。

Post:向指定的资源提交需求处理数据。(参数不会显示在地址栏上,相对安全)

获取请求参数信息

 public class RequestInfo extends HttpServlet {

     @Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Enumeration e = request.getHeaderNames(); //获取所有元素的消息头
while(e.hasMoreElements()) { //查看元素
String headerName = e.nextElement().toString();//便利所有元素的消息头
System.out.println(headerName+":"+request.getHeader(headerName));
}
System.out.println("请求方式:"+request.getMethod());
System.out.println("请求的协议种类:"+request.getPathInfo());
System.out.println("请求的资源路径"+request.getRequestURI());
System.out.println("请求的路径信息"+request.getRequestURL());
System.out.println("Servlet的路径"+request.getServletPath()); }
}

请求方式:GET
请求的协议种类:null
请求的资源路径/DaiN/Info
请求的路径信息http://localhost:8080/DaiN/Info
Servlet的路径/Info

jsp之认识 servlet (基础、工作原理、容器请求处理)的更多相关文章

  1. Servlet的工作原理和生命周期

    Servlet的工作原理 . Web服务器加载Servlet:Web服务器启动后,它会根据每个工程的web.xml文件去查找该工程的Servlet,并且找到这些Servlet的Class文件所在的地址 ...

  2. servlet其工作原理和例子证明

    servlet简单介绍 当我们在地址栏里面输入www.baidu.com,终于呈如今我们面前的是百度搜索的页面.在这些訪问过程中,都会有一个webserver来处理这些请求以及訪问处理后的结果. 而s ...

  3. JSP 和 Servlet 的工作原理和生命周期

    JSP的英文名叫Java Server Pages,翻译为中文是Java服务器页面的意思,其底层就是一个简化的Servlet设计,是由sum公司主导参与建立的一种动态网页技术标准.Servlet 就是 ...

  4. java servlet的工作原理

    servlet本质上就是java类嘛.不过是有特殊规范的java类而已.下面就说一说为什么servlet要有特殊规范. 首先,考虑一下什么地方用servlet,WEB应用,而且是需要servlet容器 ...

  5. Servlet 工作原理解析

    转自:http://www.ibm.com/developerworks/cn/java/j-lo-servlet/ Web 技术成为当今主流的互联网 Web 应用技术之一,而 Servlet 是 J ...

  6. [转]Servlet 工作原理解析

    Web 技术成为当今主流的互联网 Web 应用技术之一,而 Servlet 是 Java Web 技术的核心基础.因而掌握 Servlet 的工作原理是成为一名合格的 Java Web 技术开发人员的 ...

  7. Servlet 工作原理解析--转载

    原文:http://www.ibm.com/developerworks/cn/java/j-lo-servlet/index.html?ca=drs- Web 技术成为当今主流的互联网 Web 应用 ...

  8. 【Java】Servlet 工作原理解析

    Web 技术成为当今主流的互联网 Web 应用技术之一,而 Servlet 是 Java Web 技术的核心基础.因而掌握 Servlet 的工作原理是成为一名合格的 Java Web 技术开发人员的 ...

  9. 【Tomcat】Servlet 工作原理解析

    Web 技术成为当今主流的互联网 Web 应用技术之一,而 Servlet 是 Java Web 技术的核心基础.因而掌握 Servlet 的工作原理是成为一名合格的 Java Web 技术开发人员的 ...

  10. Java web每天学之Servlet工作原理详情解析

    上篇文章中我们介绍了Servlet的实现方式以及Servlet的生命周期,我们这篇文章就来介绍一下常用对象. 点击回顾:<Java Web每天学之Servlet的工作原理解析>:<J ...

随机推荐

  1. 这可能是vue-cli最全的解析了……

    题言: 相信很多vue新手,都像我一样,只是知道可以用vue-cli直接生成一个vue项目的架构,并不明白,他究竟是怎么运行的,现在我们一起来研究一下... 一.安装vue-cli,相信你既然会用到v ...

  2. Leetcode 80.删除重复数组的重复项

    删除重复数组的重复项 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间 ...

  3. noip模拟赛 游

    [问题背景]zhx 和他的妹子出去玩.[问题描述]zhx 和他的妹子去一个国家旅游,共有 N 个旅游景点, N-1 条双向连接的道路将它们联通起来, 每一条道路有固定长度. 一开始 zhx 位于 1 ...

  4. 26、Java并发性和多线程-线程池

    以下内容转自http://ifeve.com/thread-pools/: 线程池(Thread Pool)对于限制应用程序中同一时刻运行的线程数很有用.因为每启动一个新线程都会有相应的性能开销,每个 ...

  5. laravel5.5更新到laravel5.7

    为什么要更新呢?因为项目用的第三方后台扩展包,有很些bug,不够完美.想要一个漂亮的后台,那个后台只支持5.7. 然后,我就开始更新框架了. 修改后:"php": "&g ...

  6. 字符串的切割操作(strtok,split)

    一:strtok C/C++:char *strtok(char s[], const char *delim); s 代表须要切割的字符串,delim代表切割的标志,參数都为比选!返回指向切割部分的 ...

  7. linux 运行tensorflow文件缺少_bz2问题及解决

    今天,终于把如何在linux服务器上运行tensorflow程序的问题解决: 1.首先要在服务器上python下安装tensorflow(要看好是在python2还是python3下安装,还要看好是C ...

  8. HDU 1255 覆盖的面积(线段树+扫描线)

    题目地址:HDU 1255 这题跟面积并的方法非常像,仅仅只是须要再加一个变量. 刚開始我以为直接用那个变量即可,仅仅只是推断是否大于0改成推断是否大于1.可是后来发现了个问题,由于这个没有下放,没延 ...

  9. _stdcall与_cdecl

    _cdecl(C Declaration的缩写)是C/C++和MFC程序默认使用的调用约定,因此可以省略,也可以在函数声明时加上_cdecl关键字来手工指定.采用_cdecl约定时,函数参数按照从右到 ...

  10. Java知识总结---整合SpringMVC+Mybatis+Spring(二)

    在如今的Java Web开发过程中,各种各样框架层出不穷.在工作中,框架的使用也越来越频繁. 今天介绍一下如今比較流行的SpringMVC.Mybatis和Spring框架.学习一下怎样在项目中使用它 ...