web服务器:实现服务器的开启,监听端口,接收客户端请求,产生响应。响应信息只能是静态的HTML,缺乏灵活性。
web容器:是辅助应用的一种方式,是为了解决web服务器缺陷而产生的。可以将请求信息处理完成以后,动态产生响应信息。
web应用服务器=web服务器+web容器

中文乱码解决办法:表单method="post"
servlet中请求和响应乱码的解决:
//设置请求信息编码集,只对POST有效
req.setCharacterEncoding("utf-8");
//设置响应信息的MIME类型和编码集
resp.setContentType("text/html;charset=utf-8");

servlet中的路径问题:
//在请求url中,直接书写请求路径,默认在当前目录下查找。
<form action="aaa">

在请求url中,以/开始,表示回到webapps根目录,需要加上布署名
<form action="/testWeb/aaa">

精确映射: /test 只能以/test路径访问servlet
扩展映射: *.do 以.do结尾的请求,都能访问servlet
路径映射: /abc/* 凡是以/abc/目录开始的请求,都能访问servlet

******servlet生命周期:
1、启动tomcat,读取conf/server.xml文件,以确定启动端口,和web应用程序存放的路径。
2、读取webapps目录中,所有WEB应用程序中的web.xml文件,并完成该文件的解析。如果web.xml文件书写错误,
那么解析失败,从而启动时会抛出异常。注意,任何一个web应用程序的web.xml书写错误都会导致启动异常。
3、加载并实例化servlet。如果在注册servlet时,加入了<load-on-startup>标签,并且该标签的值为0或正数,那么容器启动时
会实例化servlet。没有或值为负数,表示第一次访问servlet时,实例化servlet。
4、调用init()方法,完成初始化操作。
5、当请求到达时,调用service()方法,完成业务操作。
6、销毁阶段,调用destroy()方法,完成资源的清理。
在整个生命周期中,1,2,3,4,6都只执行一次,只有5才是每次请求都会执行,而servlet也是单实例多线程的类。

servlet的初始化参数,在注册servlet时,可以在<servlet>标签中加入init-param标签,完成初始化参数的配置。
<init-param>
<param-name>123</param-name>初始化参数名称
<param-value>456</param-value>初始化参数的值
</init-param>
可以通过配置接口对象ServletConfig中,提供的getInitParameter(),根据初始化参数名称,得到对应的值。初始化参数只能在
当前注册的servlet中使用,不能再其他地方使用。

全局初始化参数:可以在web-app根元素中,通过context-param标签定义全局初始化参数。
<context-param>
<param-name>name</param-name>
<param-value>007</param-value>
</context-param>
//得到全局应用上下文对象
ServletContext context = this.getServletContext();
String contextValue = context.getInitParameter("name");
该参数可以被所有注册过的servlet所访问

绑定全局共享对象:可以在应用上下文对象ServletContext中,调用setAttribute()方法,绑定对象在全局共享。无论是哪个用户,哪个servlet
都能访问。通过getAttribute("obj")方法,得到共享对象的值。

javaweb笔记二的更多相关文章

  1. java学习笔记-JavaWeb篇二

    JavaWEB篇二 45 HttpSession概述46 HttpSession的生命周期 47 HttpSession常用方法示例48 HttpSessionURL重写 49 HttpSession ...

  2. 《CMake实践》笔记二:INSTALL/CMAKE_INSTALL_PREFIX

    <CMake实践>笔记一:PROJECT/MESSAGE/ADD_EXECUTABLE <CMake实践>笔记二:INSTALL/CMAKE_INSTALL_PREFIX &l ...

  3. jQuery源码笔记(二):定义了一些变量和函数 jQuery = function(){}

    笔记(二)也分为三部分: 一. 介绍: 注释说明:v2.0.3版本.Sizzle选择器.MIT软件许可注释中的#的信息索引.查询地址(英文版)匿名函数自执行:window参数及undefined参数意 ...

  4. Mastering Web Application Development with AngularJS 读书笔记(二)

    第一章笔记 (二) 一.scopes的层级和事件系统(the eventing system) 在层级中管理的scopes可以被用做事件总线.AngularJS 允许我们去传播已经命名的事件用一种有效 ...

  5. Python 学习笔记二

    笔记二 :print 以及基本文件操作 笔记一已取消置顶链接地址 http://www.cnblogs.com/dzzy/p/5140899.html 暑假只是快速过了一遍python ,现在起开始仔 ...

  6. WPF的Binding学习笔记(二)

    原文: http://www.cnblogs.com/pasoraku/archive/2012/10/25/2738428.htmlWPF的Binding学习笔记(二) 上次学了点点Binding的 ...

  7. webpy使用笔记(二) session/sessionid的使用

    webpy使用笔记(二) session的使用 webpy使用系列之session的使用,虽然工作中使用的是django,但是自己并不喜欢那种大而全的东西~什么都给你准备好了,自己好像一个机器人一样赶 ...

  8. AJax 学习笔记二(onreadystatechange的作用)

    AJax 学习笔记二(onreadystatechange的作用) 当发送一个请求后,客户端无法确定什么时候会完成这个请求,所以需要用事件机制来捕获请求的状态XMLHttpRequest对象提供了on ...

  9. 《MFC游戏开发》笔记二 建立工程、调整窗口

    本系列文章由七十一雾央编写,转载请注明出处.  http://blog.csdn.net/u011371356/article/details/9300383 作者:七十一雾央 新浪微博:http:/ ...

随机推荐

  1. Webpack + React 开发 02 JSX 语法

    HTML 语言直接写在 JavaScript 语言之中,不加任何引号,这就是 JSX 的语法,它允许 HTML 与 JavaScript 的混写: render(<h1>Hello Wor ...

  2. 【DP/数学】【CF1061C】 Multiplicity

    Description 给定一个序列 \(a\),求有多少非空序列 \(b\) 满足 \(b\) 是 \(a\) 的子序列并且 \(\forall~k~\in~[1,len_b],~~k \mid b ...

  3. md5sum/opensll md5

    http://m.blog.csdn.net/article/details?id=42041329 MD5算法常常被用来验证网络文件传输的完整性,防止文件被人篡改.MD5全称是报文摘要算法(Mess ...

  4. Android pm 命令详解

    一.pm命令介绍与包名信息查询 1.pm命令介绍 pm工具为包管理(package manager)的简称 可以使用pm工具来执行应用的安装和查询应用宝的信息.系统权限.控制应用 pm工具是Andro ...

  5. Docker图形界面管理之Shipyard

    一.介绍 Shipyard基于Docker API实现的容器图形管理系统,支持container.images.engine.cluster等功能,可满足我们基本的容器部署需求. 可堆栈的Docker ...

  6. NATS_06:NATS队列验证与监控

    1. NATS 之 Queueing(队列)模式验证 主要以下讲的都是基于 NATS 服务已经开启了(没有开启的请运行:gnatsd 启动):还有请注意所有运行的 go 文件都是在 $GOPATH/s ...

  7. vue中的slot与slot-scope

    深入理解vue中的slot与slot-scope vue+element-ui+slot-scope或原生实现可编辑表格 vue插槽详解

  8. spring-data-redis,jedis和redis主从集成和遇到的问题

    Redis主从加哨兵的部署详见http://www.cnblogs.com/dupang/p/6414365.html spring-data-redis和jedis集成代码总体结构 代码地址http ...

  9. Dubbo学习笔记0:RPC框架Dubbo介绍

    整体来说,一个公司业务系统的演进流程基本都是从单体应用到多应用.在单体应用时,不同业务模块相互调用直接在本地JVM进程内就可以完成,而变为多个应用时,相互之间进行通信就不能简单的进行本地调用了,因为不 ...

  10. Java 避免精度丢失之BigDecimal 运算

    * 由于Java的简单类型不能够精确的对浮点数进行运算,这个工具类提供精确的浮点数运算,包括加减乘除和四舍五入 import java.math.BigDecimal; /** 计算工具类 */ pu ...