javaweb笔记二
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笔记二的更多相关文章
- java学习笔记-JavaWeb篇二
JavaWEB篇二 45 HttpSession概述46 HttpSession的生命周期 47 HttpSession常用方法示例48 HttpSessionURL重写 49 HttpSession ...
- 《CMake实践》笔记二:INSTALL/CMAKE_INSTALL_PREFIX
<CMake实践>笔记一:PROJECT/MESSAGE/ADD_EXECUTABLE <CMake实践>笔记二:INSTALL/CMAKE_INSTALL_PREFIX &l ...
- jQuery源码笔记(二):定义了一些变量和函数 jQuery = function(){}
笔记(二)也分为三部分: 一. 介绍: 注释说明:v2.0.3版本.Sizzle选择器.MIT软件许可注释中的#的信息索引.查询地址(英文版)匿名函数自执行:window参数及undefined参数意 ...
- Mastering Web Application Development with AngularJS 读书笔记(二)
第一章笔记 (二) 一.scopes的层级和事件系统(the eventing system) 在层级中管理的scopes可以被用做事件总线.AngularJS 允许我们去传播已经命名的事件用一种有效 ...
- Python 学习笔记二
笔记二 :print 以及基本文件操作 笔记一已取消置顶链接地址 http://www.cnblogs.com/dzzy/p/5140899.html 暑假只是快速过了一遍python ,现在起开始仔 ...
- WPF的Binding学习笔记(二)
原文: http://www.cnblogs.com/pasoraku/archive/2012/10/25/2738428.htmlWPF的Binding学习笔记(二) 上次学了点点Binding的 ...
- webpy使用笔记(二) session/sessionid的使用
webpy使用笔记(二) session的使用 webpy使用系列之session的使用,虽然工作中使用的是django,但是自己并不喜欢那种大而全的东西~什么都给你准备好了,自己好像一个机器人一样赶 ...
- AJax 学习笔记二(onreadystatechange的作用)
AJax 学习笔记二(onreadystatechange的作用) 当发送一个请求后,客户端无法确定什么时候会完成这个请求,所以需要用事件机制来捕获请求的状态XMLHttpRequest对象提供了on ...
- 《MFC游戏开发》笔记二 建立工程、调整窗口
本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9300383 作者:七十一雾央 新浪微博:http:/ ...
随机推荐
- ACF/PACF,残差白噪声的检验问题
关于自相关.偏自相关: 一.自协方差和自相关系数 p阶自回归AR(p) 自协方差 r(t,s)=E[X(t)-EX(t)][X(s)-EX(s)] 自相关系数ACF ...
- shopt
本文出自 “Mr_Computer” 博客,请务必保留此出处 Bash Shell有个extglob选项,开启之后Shell可以另外识别出5个模式匹配操作符,能使文件匹配更加方便. 开启方法很简单,使 ...
- libcurl代码示例
http://note.youdao.com/noteshare?id=e60a679d1731c870ff45e403de81a2c0
- ubuntu下访问其他盘出现挂在错误解决办法
Error mounting /dev/sda5 at /media Linux下不能进入windows的NTFS分区之挂载错误问题 电 脑安装了win8,后在另一个分区(在win8下未分配空间)安装 ...
- R语言计算moran‘I
R语言计算moran‘I install.packages("maptools")#画地图的包 install.packages("spdep")#空间统计,m ...
- ElasticStack系列之十五 & query cache 引起性能问题思考
问题描述 一个线上集群,执行的 Query DSL 都是一样的,只是参数不同.统计数据显示 98% ~ 99% 的查询相应速度都很快,只需要 4 ~ 6ms,但是有 1% 左右的查询响应时间在 100 ...
- ElasticStack系列之七 & IK自动热更新原理与实现
一.热更新原理 elasticsearch开启加载外部词典功功能后,会每60s间隔进行刷新字典.具体原理代码如下所示: public void loadDic(HttpServletRequest r ...
- [LeetCode] 398. Random Pick Index ☆☆☆
Given an array of integers with possible duplicates, randomly output the index of a given target num ...
- 洛谷P2424/codevs 2606 约数和
http://codevs.cn/problem/2606/ https://luogu.lohu.info/problem/show?pid=2424 题目背景 Smart最近沉迷于对约数的研究中. ...
- srpingboot2 session过期时间设置
springboot2 设置session过期的配置 server.servlet.session.timeout = 1800 而不再是 server.session.timeout=1800