概述
快速创建Servlet与过滤器
- 写在前面
- 快速创建Servlet
- 过滤器
- 什么是过滤器?
- 何时使用过滤器?
- 如何编写及实现过滤器?
- 过滤器的实现
- 过滤器的配置
- 具体实现
写在前面
在写JSP时,我们不可避免要写许多校验信息与连接的代码,如果用纯JSP写,未免太过于混乱,于是,我们可以写入Servlet;在web工程里,我们可以直接生成servlet类,对于需要的我们进行改写,不需要的直接删除。
快速创建Servlet
首先创建一个我们需要的包,包名自定义。
在包里新建Servlet类;
在生成界面可以设置类名,以及所包含的方法
在next里,可以自定义调用Servlet类的路径
在web.xml里自动生成Servlet的配置,可以自己写配置,可见上一篇文章
Servlet-1
过滤器
什么是过滤器?
过滤器属于一种小巧的、可插入的Web组件,它能够对Web 应用程序的前期外理和后期处理讲行控制,可以拦截请求和响应,查看、提取或者以某种方式操作正在客户端和服务器之间进行交换的数据
如图,过滤器示意图
何时使用过滤器?
情况一:为了解决中文乱码问题
我们经常看到一段代码:request.setCharacterEncoding("'gb2312);response.setContentType(“texthtml;charset=gb2312”);这是Servlet用来设置编码用的,如果Servlet的处理方法最前面没有加入这一段代码,就很可能会出现乱码问题。如果是一个大工程的话,会有很多很多的Servlet,于是很多人发现在这么多代码中重复设置编码,非常麻烦。而且,旦需求变了,需要换成另外的编码,对程序员来说将是一件很繁琐的事情。
情况二:很多的口户网站都会有登录页面
这是为了业务需求,同时也是为了使用户控制更加的安全。如果客户没有登录就访问网站的某一页面,在很多情况下会引发安全问题应该如何避免这种情况?传统情况下,可以使用session检查来完成,但是在很多页面上都添加session检查代码,也会比较繁琐
情况三:许多的网站都存在着各种不同的权限
比如,只有管理员才可以对网站的某些数据进行维护和修改,一般的普通用户是无法完成该功能的。登录过后,网页如何区分普通用户与管理员?如果是每一个页面写一个判断用户类型的代码,似乎也非常繁琐
如何编写及实现过滤器?
Servet 过滤器可以当作一个只需要在web.xml 文件中配置就可以灵活使用可以重用的模块化组件。它能够对JSPHTML、Servlet 文件进行过滤。
过滤器的实现
实现一个过滤器需要两个步骤:实现3个方法
初始化方法:表示的是过滤器初始化时的动作。
public void init(FilterConfig confg);
消亡方法:表示的是过滤器消亡时候的动作。
publio void destroy()
过滤函数:表示的是过滤器过滤时的动作。
public void doFilter(ServletRequest request,ServletResponse response,FilterChain chain);
过滤器的配置
1 用filter元素定义过器
fiter元素有两个必要子元素;
flter-name元素用来设定过滤器的名字
flter-class元素用来设定过滤器的类路径
2 用flter-mapping配置过滤器的映射过滤所有文件
<filter-mapping>
<filter-name>FilterName</filter-name>
<url-pattern>/*</url-pattern>//*表示过滤所有文件
</filter-mapping>
具体实现
创建一个类(类名自定义),在类里实现Filter接口
具体实现功能自定义
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain arg2) throws IOException, ServletException {
// TODO Auto-generated method stub
request.setCharacterEncoding("gbk");
arg2.doFilter(request, response);
}
这里实现了web界面汉语识别。
最后
以上就是搞怪帽子为你收集整理的Servlet编程-2(快速创建Servlet与过滤器)写在前面快速创建Servlet过滤器的全部内容,希望文章能够帮你解决Servlet编程-2(快速创建Servlet与过滤器)写在前面快速创建Servlet过滤器所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复