- 浏览: 109807 次
文章分类
最新评论
-
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 3755接到一个需求。说是客户不想把上传播放的视频,放在应用中,想放在 ... -
java定时器例子
2013-03-06 15:40 1678package com.jit.util; import ... -
视频网站,将上传视频转换为flv。在页面上播放
2012-12-20 15:44 2359哈哈 我的博客标题之所以写的这么白话。主要是为了以后方便自己 ... -
Filter过滤,未登录的用户页面跳转
2012-12-03 10:37 22597package com.dog.filter; im ... -
鼠标滑动动态显示图片和通过js来动态填充页面数据
2012-11-16 10:39 1585<head> <meta http-e ... -
JDBC笔记
2012-11-09 09:32 738ResultSet接口: 滚动光标改变内容: rs.abs ... -
从数据库中查询图片显示在jsp页面上
2012-11-05 16:59 3851package demo; import java. ... -
上传图片和文件保存到数据库中(SmartUpload)
2012-11-05 16:58 6826package demo; import java. ... -
三级联动通过AJAX 将后台的数据返回在页面上。 主要是下拉框的联动。
2012-11-05 08:54 1320//根据浏览器的类型创建xmlHttpRequest对象 ... -
HttpServletRequestWrapper两个类学习总结(有关中文乱码的例子)
2012-10-29 10:46 1513在学习javax.servlet.http包中发现两个类: H ... -
Cookie与Session。重写URL保持会话跟踪
2012-10-26 14:13 0以下内容是网上另一位不知名的兄弟写的: HttpServ ... -
Servlet&Jsp javax.servlet.http包中的内容
2012-10-26 10:19 1774javax.servlet.http: Interface H ... -
Servlet&Jsp 下载代码备用
2012-10-25 15:31 714package demo; import java. ... -
servlet&jsp上传文件
2012-10-24 21:40 819<servlet> <se ... -
接口----将数据转换成Json格式,给别人做接口调用
2012-09-04 16:48 21409因为工作需要,要求把数据库中的数据提取出来转换成Json格式 ... -
Web应用中的路径解决问题
2012-09-03 13:48 713在开发网站的时候 经常遇到一些 路径问题。 比如 子文件夹下的 ... -
java验证码
2012-08-27 16:29 839<%@ page contentType=" ...
相关推荐
本书以其独特的学习风格,深入浅出地介绍了Servlet和JSP(JavaServer Pages)这两项核心的Java Web开发技术。 Servlet是Java平台上的一个标准API,用于构建动态Web应用程序。它允许开发者通过Java代码来处理HTTP...
《Servlet&JSP核心编程第二版》是一本深入探讨Java Web开发的重要书籍,主要关注Servlet和JSP(JavaServer Pages)这两个核心技术。...这两部分结合,将为读者提供一套完整的Servlet和JSP学习资源。
在学习Servlet时,你将接触到以下几个关键概念: 1. **Servlet生命周期**:Servlet经历初始化、服务和销毁三个阶段,每个阶段都有对应的回调方法。 2. **Servlet配置**:通过web.xml文件或注解来配置Servlet,如设置...
在"Servlet&JSP学习笔记源代码"中,林信良教授通过实例讲解了这两项技术的基础和进阶知识。这些源代码是在Eclipse集成开发环境中创建的,Eclipse是Java开发的主流工具,支持丰富的插件,使得开发、调试和部署Servlet...
Servlet&JSP课后习题解答,有需要的朋友可以下载来参考下。
本书是作者多年来教学实践经验的总结,汇集了教学过程中学生在学习JSP & Servlet时遇到的概念、操作、应用或认证考试等问题及解决方案。 本书针对Servlet 3.0的新功能全面改版,无论是章节架构与范例程序代码,都...
### Servlet与JSP详解 #### 一、Servlet与JSP概览 Servlet和JSP是构建Web应用的重要技术,尤其在Java开发环境中占有举足轻重的地位。它们由Sun Microsystems(现为Oracle公司的一部分)创建,并在全球范围内广泛...
- **会话管理**:学习如何在Servlet和JSP之间共享状态信息,如使用session对象。 - **MVC模式**:尽管不是直接的编程概念,但理解Model-View-Controller模式有助于你更好地组织Servlet和JSP代码。 通过深入学习和...
【Servlet&JSP基础知识】 ...以上是`head_first_servlet&jsp`学习笔记的主要知识点,涵盖了Servlet和JSP的基础、Web应用架构、MVC模式、会话管理和JSP编程等多个方面,为深入理解和实践Servlet与JSP开发奠定了基础。
综上所述,"head first servlet&JSP讲解课件java-web"涵盖了Java Web开发的核心部分,学习者可以通过此课件深入学习Servlet和JSP的各个方面,包括它们的工作原理、编程模式、最佳实践以及如何用它们来构建实际的Web...
这份"Servlet&JSP学习笔记源代码"是由林信良编著,提供了丰富的实例代码,旨在帮助学习者深入理解这两种技术。 Servlet是Java编程语言的一个接口,允许Java代码与HTTP服务器进行交互。它扩展了服务器的功能,使得...
学习Servlet和JSP时,你需要了解以下几个核心概念: 1. **HTTP协议**:理解HTTP请求和响应的工作方式,这是Servlet处理的基础。 2. **Servlet配置**:学习如何在web.xml文件中配置Servlet,包括URL映射和初始化参数...
综上所述,这个压缩包提供的资料可以帮助我们深入学习和理解Servlet和JSP的基本概念、配置方式以及权限管理。通过实际操作这些文件,开发者可以更好地掌握Java Web开发,并为构建高效、安全的Web应用打下坚实基础。
Servlet和JSP(JavaServer Pages)是Java Web开发中的核心技术,用于构建动态网站和Web应用程序。Servlet是Java编程语言中的一个接口,它扩展了服务器的功能,允许开发人员处理HTTP请求和响应。JSP则是一种视图技术...
### Servlet&JSP 学习笔记精要 #### 一、Servlet 基础 ##### 1.1 Web 容器 - **概念**: Web 容器是支持 Servlet 和 JSP 运行的基础环境,主要功能是加载和管理 Servlet 实例,处理客户端请求并返回响应。常见的 ...
J2EE servlet&jsp 练习二答案 学习使用Session和Cookie 开发一个简单的购物车; 开发一个简单的用户登录提示系统 设定Session生命周期; 开发一个下载文件的Java EE Web应用; 开发一个Session监听器
这些文件名称列表揭示了一个关于Web开发的教程结构,主要涵盖了JSP(JavaServer Pages)、Servlet、JavaScript、Ajax和jQuery这五个关键的技术。接下来,我们将详细探讨这些技术及其在实际应用中的重要性。 **JSP...
Servlet和JSP(JavaServer Pages)是Java Web开发中的核心技术,用于构建动态、交互式的Web应用程序。本资料包涵盖了这两个技术的基本概念、工作原理以及实际应用的源代码,旨在帮助初学者快速理解和掌握Servlet和...