序,Web应用中,Servlet和Filter是很重要的两个概念,一定要理解透彻。

一、Servlet类

继承自HttpServlet,HttpServlet是一个抽象类,主要包含的方法有init,service,destroy,doGet,doPost等

可以重写下面方法:

public void service(HttpServletRequest request,HttpServletResponse response)方法:响应客户端的所有请求

init方法:初始化

destroy方法:销毁

1 web.xml中配置Servlet

web.xml

<web-app>
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>hello.Hello</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/lookhello</url-pattern>
</servlet-mapping>
</web-app>

servlet3.0开始,配置Servlet支持注解方式

@WebServlet

asyncSupported 是否支持异步操作模式

displayName 指定该Servlet的显示名

initParams 为Serlvet配置参数

loadOnStartup 配置成load-on-startup的servlet

name servlet的名称

urlPattern/value url

2 访问Servlet的三种方式

(1)直接输入url访问

(2)利用Form表单提交时访问,getNumber对应了<url-pattern></url-pattern>的值,要记住必须去掉 "/"

<FORM action="getNumber" method="post">
</FORM>

(3)通过超链接访问Servlet,helpMeShow也对应了<url-pattern></url-pattern>的值,要记住必须去掉 "/"

<A href="helpMeShow"></A>

3 doGet和doPost方法重写

如果,请求的来源是Get或者Post,则会直接定向到doGet或者doPost方法,方法声明如下:

protected void doGet(HttpServletRequest req, HttpServletResponse resp);
protected void doPost(HttpServletRequest req, HttpServletResponse resp);

4 HttpServletResponse的重定向

response.sendRedirect(String location);

(1) location为jsp页面或者servlet

(2) 页面地址会变

(3) 无法将当前jsp页面或Servlet的HttpServletRequest对象转发给新的资源

(4) 浏览器会重新发起新的请求。这是HttpServletRequest对象不能转发给下个jsp页面或Servlet的原因。

5 RequestDispatcher转发

RequestDispatcher dispatcher = request.getRequestDispatcher(string path);
dispatcher.forward(request, response);

(1)location为jsp页面或者servlet

(2)页面地址不会变

(3)可以将当前jsp页面或Servlet的HttpServletRequest对象HttpServletResponse对象转发给新的资源

(4)浏览器不会重新发起新的请求

6 session

HttpServletRequest对象调用getSession方法获取用户的session对象

浏览器中的session对象定义从一个用户打开浏览器链接到服务器的某个web服务目录,到用户关闭浏览器离开服务器称做一个会话(session)。

HttpSession session = request.getSession();

(1)session对象的ID

string id = session.getId();

(2)session对象与URL重写

(3)session对象存储数据

public void setAttribute(key, value);
public voidgetAttribute(key);
public Enumeration<String> getAttributeNames();
public long getCreationTime();
public void session.removeAttribute(key);

(4)在Tag文件中使用session对象

(5)session对象的生存期限

public long getCreationTime();
public long getLastAccessedTime();
public int getMaxInactiveInterval();获取session最长的”发呆“时间(单位是秒)
public void setMaxInactiveInterval(int interval);设置session最长的”发呆“时间(单位是秒)
public boolean isNew();是否是新建的一个对象
public void invalidate();是session失效

(6)使用session设置时间间隔

限制用户等待若干”时间“后,再次使用该页面所提供的功能。不是session提供的功能,是利用session里保存时间信息来做到。

二、Filter接口

用处

1 在HttpServletRequset到达Servlet之前,拦截客户的HttpServletRequest

2 根据需要检查HttpServletRequset,也可以修改HttpServletRequset头和数据

3 在HttpServletResponse到达客户端之前,拦截HttpServletResponse

Filter有如下几个种类

1 用户授权的Filter:Filter负责检查用户请求,根据请求过滤用户非法请求。

2 日志Filter:详细记录某些特殊的用户请求

3 负责解码的Filter:包括对非标准编码的请求解码

4 能改变XML内容的XSTL Filter等

5 Filter可负责拦截多个请求或响应;一个请求或响应也可被多个Filter拦截

实现在javax.servlet.Filter接口

需要重写三个方法

init方法:完成Filter的初始化

destroy方法:用于Filter销毁前,完成某些资源的回收

public void doFilter(servlerRequest request,servletResponse response,FilterChanin chain)方法:实现过滤功能

配置Filter

web.xml

<filter>
<filter-name></filter-name>
<filter-class></filter-class>
</filter>
<filter-mapping>
<filter-name></filter-name>
<url-pattern></url-pattern>
</filter-mapping>

Servlet的生命周期及filter,servletRequest和servletResponse的更多相关文章

  1. JSP Servlet WEB生命周期

    [转载] JavaWeb的生命周期是由Servlet容器来控制的总的来说分为三个阶段1.启动阶段:加载web应用相关数据,创建ServletContext对象,对Filter和servlet进行初始化 ...

  2. servlet的生命周期与运行时的线程模型

    第 14 章 生命周期 注意 讲一下servlet的生命周期与运行时的线程模型,对了解servlet的运行原理有所帮助,这样才能避免一些有冲突的设计. 如果你不满足以下任一条件,请继续阅读,否则请跳过 ...

  3. Servlet/JSP-01 Servlet及其生命周期

    一.起步 1.新建一个类继承Servlet接口 public class HelloServlet implements Servlet { @Override public void destroy ...

  4. Servlet学习(一)——Servlet的生命周期、执行过程、配置

    1.什么是Servlet Servlet 运行在服务端的Java小程序,是sun公司提供一套规范(接口),用来处理客户端请求.响应给浏览器的动态资源.但servlet的实质就是java代码,通过jav ...

  5. Servlet的生命周期及工作原理

    Servlet生命周期分为三个阶段: 1,初始化阶段  调用init()方法 2,响应客户请求阶段 调用service()方法 3,终止阶段 调用destroy()方法 Servlet初始化阶段: 在 ...

  6. Servlet的生命周期+实现方式

    1.Servlet的生命周期:        (1)被创建:            默认情况下,Servlet第一次被访问时,被服务器创建.会调用init()方法.                一个 ...

  7. Servlet基础(二) Servlet的生命周期

    Servlet基础(二) Servlet的生命周期 Servlet的生命周期可以分为三个阶段: 1.初始化阶段 2.响应客户请求阶段 3.终止阶段 Servlet的初始化阶段 在下列时刻Servlet ...

  8. Servlet相关接口和Servlet的生命周期

    http://www.cnblogs.com/luotaoyeah/p/3860292.html Servlet相关接口和Servlet的生命周期 创建一个Servlet类最直接的方式是实现javax ...

  9. Servlet的生命周期?

    Servlet何时被创建: 1,默认情况下,当WEB客户第一次请求访问某个Servlet的时候,WEB容器将创建这个Servlet的实例. 2,当web.xml文件中如果<servlet> ...

随机推荐

  1. 利用mstsc远程桌面传送文件,记录一下

    尼玛之前服务器上传有点异常,在服务器装了一个上传下载监控的软件,用的是什么 绿色版QQ流量监控,绿色是挺绿色的,装了就等哭吧.没时间打字反正就是删除不了,后来想办法删除了.艹.所有服务除了系统服务能上 ...

  2. JS的解析机制

    JS的解析机制,是JS的又一大重点知识点,在面试题中更经常出现,今天就来唠唠他们的原理.首先呢,我们在我们伟大的浏览器中,有个叫做JS解析器的东西,它专门用来读取JS,执行JS.一般情况是存在作用域就 ...

  3. jQuery Easy UI 开发笔记

    1.jQuery Easy UI主要的运行原理是通过核心的代码调用插件来实现UI效果的 2.jQuery Easy UI插件与插件之间的关系是: 一.独立式插件: 独立式插件是指:不与其他的插件具有相 ...

  4. 我的第一个Node web程序

    NodeJS的流行也带来了开发由前端转到全栈,前端不再局限于页面如何展现,用户如何操作,也设计到整个应用的架构以及业务流程. 本篇来简单的通过实例,讲述node中web开发的模式. 参考来自<N ...

  5. Java 读取文件到字符串

    Java的io操作比较复杂 package cn.outofmemory.util; import java.io.BufferedReader; import java.io.FileInputSt ...

  6. beta版本贡献率

    队名:攻城小分队 031302410 郭怡锋 : 占比:50% 031302411 洪大钊: 占比:30% 031302206 陈振贵: 占比:10% 031302416 黄伟祥: 占比:10%

  7. 团队作业--Beta版本冲刺

    项目冲刺随笔 第一天 第二天 第三天 第四天 第五天 第六天 第七天

  8. TRUNC函数,ORA-01898 精度说明符过多

    TRUNC(SYSDATE)即可默认当前日期(年月日),TRUNC(SYSDATE,'yyyy-mm-dd'),精度说明符过多

  9. 在java类中,是先执行类的构造函数还是先执行类的私有非静态变量

    举例子: package test_instance; public class TestClassLoaderTime { public TestClassLoaderTime(){ System. ...

  10. 【HDU 5105】Math Problem

    题意 f(x)=|ax3+bx2+cx+d| 求f(x)在L≤x≤R的最大值. 分析 参数有可能是0,注意分类讨论 1.当a=0时 b=0,f为一次函数(c≠0)或者常数函数(c=0),最大值点在区间 ...