- 浏览: 108350 次
文章分类
最新评论
-
ren2881971:
dk101 写道谁都有上班的第一天,第一家公司,第一次接触客户 ...
上班第一天 -
dk101:
谁都有上班的第一天,第一家公司,第一次接触客户,努力做好每个第 ...
上班第一天 -
ren2881971:
353145845 写道哥们是搞外包的。?不是 呵呵。 只不过 ...
上班第一天 -
353145845:
哥们是搞外包的。?
上班第一天 -
ren2881971:
yujunlong 写道楼主怎么样啊 ??新找的工作 待遇怎么 ...
今天去面试学到很多东西 记录下
虽然目前来说利用Servlet&JSP来完成工作已经完全没有问题,但是还是要打好基础,不然今天一个框架明天一个框架的 身体不行了实在是跟不上节奏了~
先学两个包中的内容吧
javax.servlet
javax.servlet.http
-------------------------------------------------------------------------
Interface Filter
过滤器是一个对象,执行过滤任务可以在请求一个资源(一个servlet或静态内容),或者从一个资源的响应,或者两者。
过滤器执行过滤在doFilter方法。每个过滤器能够访问一个FilterConfig对象,它可以获得它的初始化参数,并引用它可以使用d的ServletContext,例如,负载所需的资源过滤任务。
在过滤器应用的场景如下:
身份验证过滤器
日志记录和审核过滤器
图像转换过滤器
数据压缩过滤器
加密过滤器
分过滤器
过滤器,触发资源访问事件
XSL / T过滤器
mime类型链过滤器ks。
------------------------------------------------------
Filter中方法:
init(FilterConfig)
destroy()
doFilter(ServletRequest request,ServletResponse response,FilterChain chain)
FilterChain中的方法:
FilterChain是Filter链条,这个链条中Filter的执行顺序是按照在web.xml中filter的配置顺序来排序的。
doFilter(ServletRequest request,ServletResponse response)
在Filter中doFilter()中调用 FileterChain.的doFilter()方法如果有在Filter链条中有下一个filter 则将当前filter中的request和response 转发给第二个filter。如果已经到达filter的终端的话。则中止传递,进行相应的过滤功能
在Filter中的init(FilterConfig)方法中通过FilterConfig参数 可以获得:
1.FilterName
2.FilterConfig的名/值
3.还可以通过FilterConfig获得上下文ServletContext.
FilterConfig中方法:
getFilterName()
getInitParameter()
getInitParameterNames()
getServletContext()
RequestDispatcher接口:
forward()
include()
两者之间的区别 我个人理解为 两者都是将ServletRequest和ServletResponse两者传递给一个新的servlet/jsp 但是不同的是 forward()是有 request和response两者的控制权,而include()虽然转发到了新的servlet/jsp 但是request和response两者的控制权还是由原先的servlet/jsp来控制
<!--以下内容是在网上找到的,帮助我理解下-->
forward是转发的另一个页面.
include是把另一个页面加载到当前页面.
include和forward的区别:
include 是去而复返,forward 是前不见古人,后不见来者。
include 是把别人包含进来,forward 是丢掉了自己。
Interface Servlet:
最最基本的Servlet接口,javax.servlet.GenericServlet和javax.servlet.http.HttpServlet都是继承Servlet接口。
包括 serlvet 的 init() destroy() service()
方法:
init()
destroy()
service()
getServletConfig()
getServletInfo()
ServletConfig方法:
getInitParameter()
getInitParameterNames()
getServletContext()
getServletName()
ps: ServletConifg与FilterConfig 相类似。
在看到这部分api的时候发现了一个问题。 为什么通过ServletConfig能获得ServletContext,但是通过ServletContext却不能获得ServletConifg对象。按照道理来说ServletContext是整个应用全局的上下文,而ServletConfig是针对具体Servlet的。ServletContext的作用范围比ServletConfig大。不能够获得不到啊。
自己想了下又通过谷姐查找资料 还真验证了自己想法。
就是ServletContext是先创建的 而ServletConfig是后创建的。很有可能在ServletContext的时候ServletConfig还没有被实例化。
因为在web.xml配置文件的Servlet中支持一个参数
loadOnStartup 如果参数大于零的话就会启动就加载Servlet。不过默认是0
Interface ServletContainerInitializer
这个接口以前从来没有接触过,自己不敢妄加猜测,只能在网上找了段相关的信息,
等到用到的时候再仔细研究下。
ServletContainerInitializer也是Servlet3.0新增的一个接口,容器在启动时使用JAR服务API(JARServiceAPI)来发现ServletContainerInitializer的实现类,并且容器将WEB-INF/lib目录下JAR包中的类都交给该类的onStartup()方法处理,我们通常需要在该实现类上使用@HandlesTypes注解来指定希望被处理的类,过滤掉不希望给onStartup()处理的类。
而且该接口是Servlet3.0新规范里面提供的接口,需要在tomcat7.0以上版本才能够得到支持
Interface ServletContext:
method:
setInitParameter()
getInitParameter()
getInitParameterNames()
setAttribute()
getAttribute()
removeAttribute()
getServletInfo()
getAttributeNames()
以前没有了解过的方法:
createListener
createFilter
addListener
addFilter
Interface ServletContextAttributeListener:
主要用于监听ServletContext属性改变的情况。监听的是整个应用的全局有 增加,取代和删除 这三种情况。
方法:
attributeAdded()
attributeRemoved()
attributeReplaced()
这三个方法 分别在属性进行相应操作的时候会执行方法内部的代码。
共有的参数是ServletContextAttributeEvent。可以用过这个event参数来获得发生改变属性的 属性名称,和属性名对应的值。
class ServletContextAttributeEvent:
getName()
getValue()
Interface ServletContextListener
用于监听ServletContext整个生命周期发生的改变
方法:
void contextInitialized(ServletContextEvent sce)
void contextDestroyed(ServletContextEvent sce)
一个是context的初始化一个是context的销毁(关闭应用时候context会销毁)
class ServletContextEvent
通过ServletContextEvent. getServletContext() 就可以获得ServletContext对象。
这样就可以对上下文就行操作了。! 赞。
经过我自己写的小例子测试发现,即使在ServletContextListener的init方法中给ServletContext增加属性的话也会触发ServletContextAttributeListener。去执行其中的
attributeAdded等三个方法。
可见ServletContextAttributeListener和ServletContextListener是同时被容器初始化的。并行的。即使在初始化servletcontext的时候 增加属性也可以被监听。
Interface ServletRequest:
下面的内容是我自己尝试将j2ee的api来翻译成的:
公共接口ServletRequest 定义了一对象能将客户端的请求信息提供给servlet。servlet容器创建了一个ServletRequest对象并且把它作为servlet的service的传递参数。
一个ServletRequest对象提供的数据包括: 参数的名值,属性和input stream。继承ServletRequest接口的类 能够提供一些附加的特殊数据(比如http的 数据就是由HttpServletRequest提供的)
下面一些方法是经常能用到的:
setAttribute(String name,Object obj)
getAttribute(String name)
removeAttribute(String name)
getParameter(String name)
getParameterValues(String name)
getInputStream()
isSecure()判断是否是https
getServletContext()
getRequestDispatcher()
getDispatcherType() 能够获得dispatcher的类型。ASYNC ERROR FORWARD INCLUDE REQUEST
Interface ServletRequestListener:
void requestInitialized(ServletRequestEvent sre)
void requestDestroyed(ServletRequestEvent sre)
Class ServletRequestEvent:
getServletContext()
getServletRequest()
Interface ServletRequestAttributeListener:
void attributeAdded(ServletRequestAttributeEvent srae)
void attributeRemoved(ServletRequestAttributeEvent srae)
void attributeReplaced(ServletRequestAttributeEvent srae)
Class ServletRequestAttributeEvent:
getName()
getValue()
Interface ServletResponse:
response跟request这对难兄难弟。经常被人传来传去。。。。。苦逼命
ServletResponse主要返回的是OutputStream和getWriter() 回应客户端的请求。
api中的其他方法也主要是围绕这功能来提供的。
method:
getOutputStream()
getWriter()
setContentType()
getContentLength()
getContentType()
这些常用的。 自己还写了一个下servlet下载的代码例子地址: http://ren2881971.iteye.com/admin/blogs/1705163
Interface SessionCookieConfig
这是Servlet3.0新增加的接口
Interface SingelThreadModel
这是Servlet2.4以后就不再建议使用的。
还剩下两个异常类:
1.ServletException;
2.UnavailableException
到此为止javax.servlet 包中的内容都已经看完了。自己没事的时候也可以拿出来复习下。
明天开始着手学习javax.servlet.http中的内容 这个包里的内容平时工作中运用的比较多。
到此为止
先学两个包中的内容吧
javax.servlet
javax.servlet.http
-------------------------------------------------------------------------
Interface Filter
过滤器是一个对象,执行过滤任务可以在请求一个资源(一个servlet或静态内容),或者从一个资源的响应,或者两者。
过滤器执行过滤在doFilter方法。每个过滤器能够访问一个FilterConfig对象,它可以获得它的初始化参数,并引用它可以使用d的ServletContext,例如,负载所需的资源过滤任务。
在过滤器应用的场景如下:
身份验证过滤器
日志记录和审核过滤器
图像转换过滤器
数据压缩过滤器
加密过滤器
分过滤器
过滤器,触发资源访问事件
XSL / T过滤器
mime类型链过滤器ks。
------------------------------------------------------
Filter中方法:
init(FilterConfig)
destroy()
doFilter(ServletRequest request,ServletResponse response,FilterChain chain)
FilterChain中的方法:
FilterChain是Filter链条,这个链条中Filter的执行顺序是按照在web.xml中filter的配置顺序来排序的。
doFilter(ServletRequest request,ServletResponse response)
在Filter中doFilter()中调用 FileterChain.的doFilter()方法如果有在Filter链条中有下一个filter 则将当前filter中的request和response 转发给第二个filter。如果已经到达filter的终端的话。则中止传递,进行相应的过滤功能
在Filter中的init(FilterConfig)方法中通过FilterConfig参数 可以获得:
1.FilterName
2.FilterConfig的名/值
3.还可以通过FilterConfig获得上下文ServletContext.
FilterConfig中方法:
getFilterName()
getInitParameter()
getInitParameterNames()
getServletContext()
RequestDispatcher接口:
forward()
include()
两者之间的区别 我个人理解为 两者都是将ServletRequest和ServletResponse两者传递给一个新的servlet/jsp 但是不同的是 forward()是有 request和response两者的控制权,而include()虽然转发到了新的servlet/jsp 但是request和response两者的控制权还是由原先的servlet/jsp来控制
<!--以下内容是在网上找到的,帮助我理解下-->
forward是转发的另一个页面.
include是把另一个页面加载到当前页面.
include和forward的区别:
include 是去而复返,forward 是前不见古人,后不见来者。
include 是把别人包含进来,forward 是丢掉了自己。
Interface Servlet:
最最基本的Servlet接口,javax.servlet.GenericServlet和javax.servlet.http.HttpServlet都是继承Servlet接口。
包括 serlvet 的 init() destroy() service()
方法:
init()
destroy()
service()
getServletConfig()
getServletInfo()
ServletConfig方法:
getInitParameter()
getInitParameterNames()
getServletContext()
getServletName()
ps: ServletConifg与FilterConfig 相类似。
在看到这部分api的时候发现了一个问题。 为什么通过ServletConfig能获得ServletContext,但是通过ServletContext却不能获得ServletConifg对象。按照道理来说ServletContext是整个应用全局的上下文,而ServletConfig是针对具体Servlet的。ServletContext的作用范围比ServletConfig大。不能够获得不到啊。
自己想了下又通过谷姐查找资料 还真验证了自己想法。
就是ServletContext是先创建的 而ServletConfig是后创建的。很有可能在ServletContext的时候ServletConfig还没有被实例化。
因为在web.xml配置文件的Servlet中支持一个参数
loadOnStartup 如果参数大于零的话就会启动就加载Servlet。不过默认是0
Interface ServletContainerInitializer
这个接口以前从来没有接触过,自己不敢妄加猜测,只能在网上找了段相关的信息,
等到用到的时候再仔细研究下。
ServletContainerInitializer也是Servlet3.0新增的一个接口,容器在启动时使用JAR服务API(JARServiceAPI)来发现ServletContainerInitializer的实现类,并且容器将WEB-INF/lib目录下JAR包中的类都交给该类的onStartup()方法处理,我们通常需要在该实现类上使用@HandlesTypes注解来指定希望被处理的类,过滤掉不希望给onStartup()处理的类。
而且该接口是Servlet3.0新规范里面提供的接口,需要在tomcat7.0以上版本才能够得到支持
Interface ServletContext:
method:
setInitParameter()
getInitParameter()
getInitParameterNames()
setAttribute()
getAttribute()
removeAttribute()
getServletInfo()
getAttributeNames()
以前没有了解过的方法:
createListener
createFilter
addListener
addFilter
Interface ServletContextAttributeListener:
主要用于监听ServletContext属性改变的情况。监听的是整个应用的全局有 增加,取代和删除 这三种情况。
方法:
attributeAdded()
attributeRemoved()
attributeReplaced()
这三个方法 分别在属性进行相应操作的时候会执行方法内部的代码。
共有的参数是ServletContextAttributeEvent。可以用过这个event参数来获得发生改变属性的 属性名称,和属性名对应的值。
class ServletContextAttributeEvent:
getName()
getValue()
Interface ServletContextListener
用于监听ServletContext整个生命周期发生的改变
方法:
void contextInitialized(ServletContextEvent sce)
void contextDestroyed(ServletContextEvent sce)
一个是context的初始化一个是context的销毁(关闭应用时候context会销毁)
class ServletContextEvent
通过ServletContextEvent. getServletContext() 就可以获得ServletContext对象。
这样就可以对上下文就行操作了。! 赞。
经过我自己写的小例子测试发现,即使在ServletContextListener的init方法中给ServletContext增加属性的话也会触发ServletContextAttributeListener。去执行其中的
attributeAdded等三个方法。
可见ServletContextAttributeListener和ServletContextListener是同时被容器初始化的。并行的。即使在初始化servletcontext的时候 增加属性也可以被监听。
Interface ServletRequest:
下面的内容是我自己尝试将j2ee的api来翻译成的:
公共接口ServletRequest 定义了一对象能将客户端的请求信息提供给servlet。servlet容器创建了一个ServletRequest对象并且把它作为servlet的service的传递参数。
一个ServletRequest对象提供的数据包括: 参数的名值,属性和input stream。继承ServletRequest接口的类 能够提供一些附加的特殊数据(比如http的 数据就是由HttpServletRequest提供的)
下面一些方法是经常能用到的:
setAttribute(String name,Object obj)
getAttribute(String name)
removeAttribute(String name)
getParameter(String name)
getParameterValues(String name)
getInputStream()
isSecure()判断是否是https
getServletContext()
getRequestDispatcher()
getDispatcherType() 能够获得dispatcher的类型。ASYNC ERROR FORWARD INCLUDE REQUEST
Interface ServletRequestListener:
void requestInitialized(ServletRequestEvent sre)
void requestDestroyed(ServletRequestEvent sre)
Class ServletRequestEvent:
getServletContext()
getServletRequest()
Interface ServletRequestAttributeListener:
void attributeAdded(ServletRequestAttributeEvent srae)
void attributeRemoved(ServletRequestAttributeEvent srae)
void attributeReplaced(ServletRequestAttributeEvent srae)
Class ServletRequestAttributeEvent:
getName()
getValue()
Interface ServletResponse:
response跟request这对难兄难弟。经常被人传来传去。。。。。苦逼命
ServletResponse主要返回的是OutputStream和getWriter() 回应客户端的请求。
api中的其他方法也主要是围绕这功能来提供的。
method:
getOutputStream()
getWriter()
setContentType()
getContentLength()
getContentType()
这些常用的。 自己还写了一个下servlet下载的代码例子地址: http://ren2881971.iteye.com/admin/blogs/1705163
Interface SessionCookieConfig
这是Servlet3.0新增加的接口
Interface SingelThreadModel
这是Servlet2.4以后就不再建议使用的。
还剩下两个异常类:
1.ServletException;
2.UnavailableException
到此为止javax.servlet 包中的内容都已经看完了。自己没事的时候也可以拿出来复习下。
明天开始着手学习javax.servlet.http中的内容 这个包里的内容平时工作中运用的比较多。
到此为止
发表评论
-
如何在jsp中的flash播放服务器上的视频文件
2013-03-12 16:47 3720接到一个需求。说是客户不想把上传播放的视频,放在应用中,想放在 ... -
java定时器例子
2013-03-06 15:40 1643package com.jit.util; import ... -
视频网站,将上传视频转换为flv。在页面上播放
2012-12-20 15:44 2332哈哈 我的博客标题之所以写的这么白话。主要是为了以后方便自己 ... -
Filter过滤,未登录的用户页面跳转
2012-12-03 10:37 22570package com.dog.filter; im ... -
鼠标滑动动态显示图片和通过js来动态填充页面数据
2012-11-16 10:39 1547<head> <meta http-e ... -
JDBC笔记
2012-11-09 09:32 708ResultSet接口: 滚动光标改变内容: rs.abs ... -
从数据库中查询图片显示在jsp页面上
2012-11-05 16:59 3784package demo; import java. ... -
上传图片和文件保存到数据库中(SmartUpload)
2012-11-05 16:58 6786package demo; import java. ... -
三级联动通过AJAX 将后台的数据返回在页面上。 主要是下拉框的联动。
2012-11-05 08:54 1282//根据浏览器的类型创建xmlHttpRequest对象 ... -
HttpServletRequestWrapper两个类学习总结(有关中文乱码的例子)
2012-10-29 10:46 1462在学习javax.servlet.http包中发现两个类: H ... -
Cookie与Session。重写URL保持会话跟踪
2012-10-26 14:13 0以下内容是网上另一位不知名的兄弟写的: HttpServ ... -
Servlet&Jsp javax.servlet.http包中的内容
2012-10-26 10:19 1748javax.servlet.http: Interface H ... -
Servlet&Jsp 下载代码备用
2012-10-25 15:31 680package demo; import java. ... -
servlet&jsp上传文件
2012-10-24 21:40 788<servlet> <se ... -
接口----将数据转换成Json格式,给别人做接口调用
2012-09-04 16:48 21347因为工作需要,要求把数据库中的数据提取出来转换成Json格式 ... -
Web应用中的路径解决问题
2012-09-03 13:48 678在开发网站的时候 经常遇到一些 路径问题。 比如 子文件夹下的 ... -
java验证码
2012-08-27 16:29 807<%@ page contentType=" ...
相关推荐
Servlet &JSP 学习笔记 第一版答案
Servlet &JSP学习笔记NetBeans源代码,课本中所有的源代码,NetBeans版本,服务器为Tomcat
Servlet&JSP学习笔记 林信良著 课本所带所有源代码,Eclipse环境下,服务器为Tomcat
head_first_servlet&jsp学习笔记
个人精心制作的Servlet&JSP学习笔记,其中的大部分来自 Servlet&JSP学习笔记第二版, 对其中的要点,代码都进行了格式化处理,条理清晰。每个例子都配有源码,经过实际开发环境检测。方便各位查阅和学习
Servlet&JSP;学习笔记 林信良著 课本所带所有源代码,Eclipse环境下,服务器为Tomcat
Head First Servlet & JSP 详细介绍 学习java ee jsp的入门数据
Servlet&JSP源代码,新手学习必看
J2EE servlet&jsp 练习二答案 学习使用Session和Cookie 开发一个简单的购物车; 开发一个简单的用户登录提示系统 设定Session生命周期; 开发一个下载文件的Java EE Web应用; 开发一个Session监听器
JSP&Servlet学习笔记,适合初学jsp和servlet的人群,初学者学习可能有点困难
自己学习时候的经典总结 对jsp的各个方面 以及 常见错误总结。 非常之好!
这是一个比较完整的Servlet、JSP 教程。全文共十三章,主要包括:Servlet 和JSP 特点,安装和配置开发、运行环境,表单数据处理,HTTP 请求头、应答状态处理,访问CGI 变量,会话状态,JSP 脚本元素、指令、动作,...
Servlet和JSP学习指南 英文版
作者多年来教学实践经验的总结,汇集了教学过程中学生在学习jsp & servlet时遇到的概念、操作、应用或认证考试等...
本书是作者多年来教学实践经验的总结,汇集了教学过程中学生在学习JSP & Servlet时遇到的概念、操作、应用或认证考试等问题及解决方案。, 本书针对Servlet 3.0的新功能全面改版,无论是章节架构与范例程序代码,都做...
本教程很适合JSP深入学习.
《Servlet和JSP学习指南》是系统学习Servlet和JSP的必读之作。由全球知名的Java技术专家(《HowTomcat Works》作者)亲自执笔,不仅全面解读Servlet和JSP的最新技术,重点阐述JavaWeb开发的重要编程概念和设计模型,...
本书是作者多年来教学实践经验的总结,汇集了教学过程中学生在学习JSP & Servlet时遇到的概念、操作、应用或认证考试等问题及解决方案。 本书针对Servlet 3.0的新功能全面改版,无论是章节架构与范例程序代码,都做...