重定向和servlet生命周期
重定向
(1)什么是重定向
服务器通知浏览器向一个新的地址发送请求。
注:可以发送一个302状态码和一个Location消息头。(该消息头包含了一个地址,称之为重定向地址),浏览器收到之后,会立即向重定向地址发送请求。
(2)如何重定向
response.sendRedirect(String url);
注:
a.url就是重定向地址。
b.重定向之前,容器会先清空response对象中保存的数据。
(3)特点
a.重定向地址是任意的。
b.重定向之后,浏览器地址栏的地址会发生改变。
1.数据库处理中文需要注意的问题
数据库中的某些驱动,默认会使用“iso-8859-1”来编码,对于中文就会发生乱码。
解决方式:
mysql:
jdbc:mysql://localhost:3306/数据库名?
useUnicode=true&characterEncoding=utf-8
2.servlet的生命周期
(1)什么是servlet的生命周期
容器如何去创建servlet对象,如何对其进行初始化处理,如何调用其方法来处理请求,以及如何销毁该对象的整个过程。
(2)生命周期分为哪几个阶段
1)实例化
a.什么是实例化?
容器调用servlet的构造器,创建相应的对象。
b.什么时候实例化?
情况1:容器收到请求之后。
情况2:容器启动之后,立即创建。
<load-on-startup></load-on-startup>
参数值要求是一个大于等于0的整数,越小,优先级越高(即先创建)。
注:容器只会创建一个实例。
2)初始化
a.什么是初始化
容器调用servlet对象的init方法。该方法只会执行一次。
b.GenericServlet的init方法时如何实现的。
将容易传递过来的ServletConfig对象保存下来,并且提供了一个获得该对象的方法(getServletConfig)。
c.只需要覆盖override GenericServlet提供的init()方法。
d.初始化参数
step1,配置
<init-param>
<param-name>company</param-name>
<param-value>西北工业大学</param-value>
</init-param>
step2,读取
String ServletConfig.getInitParameter(String paramName);
3)就绪
4)销毁
(3)相关的及各类与接口
1)Servlet接口
init
service
destory
2)GenericServlet抽象类
实现了Servlet接口中的部分方法(init,destory)
3)HttpServlet抽象类
继承了GenericServlet抽象类,实现了service方法。
3.容器如何处理请求资源路径
比如,在浏览器地址栏输入:http://ip:port/web04-3/abc.html
step1,容器依据应用名("/web04-3")找到应用所在的文件夹。
step2,容器默认会认为调用的是一个servlet,去web.xml查找有没有一个和“/abc.html”匹配的servlet。
(1)精确匹配
<url-pattern>/abc.html</url-pattern>
(2)通配符匹配
使用“*”匹配0个或者多个字符,比如<url-pattern>/*</url-pattren>
(3)后缀匹配
使用“*.”开头,后接多个字符,比如<url-pattern>*.do</url-pattren>会匹配所有以.do结尾的请求。
step3,如果没有匹配的servlet,则容器会查找相应的文件。
重定向和servlet生命周期的更多相关文章
- Servlet学习笔记04——什么是重定向,servlet生命周期?
1.重定向 (1)什么是重定向? 服务器通知浏览器访问一个新的地址. 注: 服务器可以通过发送一个302状态码及一个 Location消息头(该消息头的值是一个地址,一般 称之为重定向地址)给浏览器, ...
- Servlet底层原理、Servlet实现方式、Servlet生命周期
Servlet简介 Servlet定义 Servlet是一个Java应用程序,运行在服务器端,用来处理客户端请求并作出响应的程序. Servlet的特点 (1)Servlet对像,由Servlet容器 ...
- Servlet 生命周期与web容器的关系
servlet生命周期由web容器(如tomcat)管理,初始化一次,直到web容器关闭才会被销毁.1.servlet是单例多线程,每个请求过来容器都会启用一个新线程 2.servlet在容器中保持单 ...
- 测试Servlet生命周期学习笔记
测试环境:windows xp旗舰版 软件环境:myclipse8.5+tomcat7.0 ****************************************************** ...
- Servlet生命周期及工作原理
1 Servlet生命周期Servlet 生命周期:Servlet 加载--->实例化--->服务--->销毁. init():在Servlet的生命周期中,仅执行一次init()方 ...
- Java开发之Servlet生命周期
Servlet会在服务器启动或第一次请求该Servlet的时候开始生命周期,在服务器结束的时候结束生命周期.无论请求多少次Servlet,最多只有一个Servlet实例.多个客户端并发请求Servle ...
- Java Servlet系列之Servlet生命周期
Servlet生命周期定义了一个Servlet如何被加载.初始化,以及它怎样接收请求.响应请求,提供服务.在讨论Servlet生命周期之前,先让我们来看一下这几个方法: 1. init()方法 在Se ...
- servlet生命周期与工作原理
→ Jsp的本质是Servlet,Servlet是服务器端的小程序,运行在服务器,用于处理及响应客户端的请求. Servlet和JSP的区别: servlet是特殊的Java类,必须继承HttpS ...
- javaWeb中servlet开发(3)——Servlet生命周期
生命周期:是一个程序的存在周期,servlet由于是受容器的管理,所以容器来决定其生命周期 1.servlet生命周期 2.servlet生命周期对应的方法 3.servlet生命周期代码 publi ...
随机推荐
- 从嵌入式linux到android应用开发
时间过得很快,转眼之间已经到新公司一个月了.虽然学到了一些移动开发的知识,但是觉得离我的目标还很远,完全没能达到我想要的水平.以前产品都是自己主导的,需要完成什么,计划什么也是自己主导,现在得从头 ...
- Android简易实战教程--第八话《短信备份~一》
各种手机助手里面都包含了短信备份这一项.短信的本分主要包含四项:内容body.事件date.方式type.号码address. 短信备份~一.使用一种很笨的方式来保存短信到xml文件中,而且保存在外部 ...
- Android性能优化之Splash页应该这样设计
目前SplashActivity的设计 目前市场上的应用在启动时基本上都会先启动一个SplashActivity,作为一个欢迎界面,为什么这样设计呢? 个人总结有三个优点: 1.可以给用户更好的体验 ...
- Mybatis插件原理分析(三)分页插件
在Mybatis中插件最经常使用的是作为分页插件,接下来我们通过实现Interceptor来完成一个分页插件. 虽然Mybatis也提供了分页操作,通过在sqlSession的接口函数中设置RowBo ...
- 从Perforce到Git的迁移
公司经过多次兼并.收购之后,开发团队使用的工具自然会出现鱼龙混杂的现象.就拿源代码管理工具来说,我们同时在使用的就有Perforce.Team Foundation.Subversion等.为了节省成 ...
- Linux的启动流程 (二)
引:本文以RedHat9.0和i386平台为例,剖析了从用户打开电源直到屏幕出现命令行提示符的整个Linux启动过程.并且介绍了启动中涉及到的各种文件.阅读Linux源代码,无疑是深入学习Linux的 ...
- 索引构建情况分析、mongoDB安全(四)
索引好处:加快索引相关的查询 坏处:增加磁盘空间消耗,降低写入性能 评判当前索引构建情况: 1. mongostat工具介绍 2. profile集合介绍 3. 日志介绍 ...
- Github最流行的10,000个Java项目使用的类库
本文由 ImportNew - Andy.Song 翻译自 takipiblog.欢迎加入翻译小组.转载请见文末要求. 前言 作为Java开发人员,总是需要面临这门不断成熟.高速改进中的语言.开发人员 ...
- Python3.4 + Django1.7.7 搭建简单的表单并提交
后面还有一个问题,是我把txt生成了,但是网页没有返回我还不知道,现在怎么直接返回txt并且展示出来txt 的内容,希望大牛不吝赐教 首先有一个问题 django1.7之前,这样用: HttpResp ...
- JavaScript进阶(一)抽离公共函数
JS抽离公共函数 问题 在经历了"大量"的项目开发后,发觉越来越多的方法可以被抽离出来作为一个公共方法使用.那么,在js中该思想又该如何实现呢? 解答 例如,以下方法用于实现将标准 ...