Eclipse中使用自定义模板来弥补Myeclipse没有新建Filter的功能

Myeclipse插件,并没有为我们提供Filter的新建功能,为此我们不得不每次都去新建个类,然后输入那繁琐的重复代码,这完全就是浪费时间,时间应该花在更有用的事情上,而不是这类重复操作,象下面这些内容如果要自己来写,完全时浪费时间,我们完全可以创建一个模板来让它自动帮我们完成以下内容

[code]
package test;

import java.io.IOException;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.Filter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class FilterTemplate implements Filter
{

/**
* Constructor of the object.
*/
public FilterTemplate()
{
super();
}

private FilterConfig filterConfig;

// Handle the passed-in FilterConfig
public void init(FilterConfig filterConfig) throws ServletException
{
this.filterConfig = filterConfig;
}

public void doFilter(ServletRequest req, ServletResponse res,
FilterChain filterChain)

{
try
{
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
HttpSession session = request.getSession();

// 这里放到达目的地前(进入)处理代码

filterChain.doFilter(req, res);

// 这里放到达目的地(离开)的处理代码

}
catch (IOException e)
{
e.printStackTrace();
}
catch (ServletException e)
{
e.printStackTrace();
}
}
/**
* Destruction of the servlet. <br>
*/
public void destroy()
{
// Just puts "destroy" string in log
// Put your code here
}

}
[/code]


打开Eclipse,选择首选相,然后根据图片提示操作

[img]http://yufei.iteye.com/upload/picture/pic/5292/edf6df44-25b3-454a-951b-ef80c08135cf.jpg[/img]

[img]http://yufei.iteye.com/upload/picture/pic/5293/5a96322f-421a-4963-84c2-742aba73501c.jpg[/img]

[img]http://yufei.iteye.com/upload/picture/pic/5294/d51c4f0a-650e-4536-9afc-287678e57148.jpg[/img]

[code]
package ${enclosing_package} ;

import java.io.IOException;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.Filter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class ${primary_type_name} implements Filter
{

/**
* Constructor of the object.
*/
public ${primary_type_name}()
{
super();
}


private FilterConfig filterConfig;

// Handle the passed-in FilterConfig
public void init(FilterConfig filterConfig) throws ServletException
{
this.filterConfig = filterConfig;
}

public void doFilter(ServletRequest req, ServletResponse res, FilterChain filterChain)

{
try
{
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
HttpSession session = request.getSession();

// 这里放到达目的地前(进入)处理代码


filterChain.doFilter(req,res);

// 这里放到达目的地(离开)的处理代码

} catch (IOException e)
{
e.printStackTrace();
} catch (ServletException e)
{
e.printStackTrace();
}
}
/**
* Destruction of the servlet. <br>
*/
public void destroy()
{
// Just puts "destroy" string in log
// Put your code here
}

}
[/code]


代码中有两处变量

${enclosing_package} 外层包名
${primary_type_name} 不带扩展名的文件名

[img]http://yufei.iteye.com/upload/picture/pic/5296/32d04e9b-8f8e-4b50-9ef0-4ddeab9f196b.jpg[/img]

用图片结合代码那两个变量的意思就很明显了,因为模板里其它部分是死的,就只有包和类名是活的,所以需要动态的生成

接下来就是使用这个模板了
我们只需要新建一个class(任意包下都无所谓),然后Ctrl+A全选,接着delete,在编辑器中输入filter,按Alt+/(代码辅助快捷键),选择filter - filter模板(注意,如果filter只有单一辅助内容,不会提示图中的框,会把唯一的内容直接输出到编辑器,你可以只输入f,然后Alt+/)

[img]http://yufei.iteye.com/upload/picture/pic/5295/12a89154-4a9b-4775-bfce-96a22c47ef5c.jpg[/img]


接着我们打开web.xml加入相应的配置信息,如果你觉得配置信息也麻烦(毕竟最少都有8行),完全可以在xml编辑器下也创建模板,由于xml编辑器不是eclipse默认提供,而是通过插件提供的,所以我们要到相应插件的选相下去修改,笔者使用的是myeclipse的xml编辑器,所以是在首选相下的myeclipse里,见下图

[img]http://yufei.iteye.com/upload/picture/pic/5297/953c899f-9089-42dd-aa73-2c029b5f27e9.jpg[/img]

[img]http://yufei.iteye.com/upload/picture/pic/5298/8067dbfb-eeb6-4f88-90a1-c29aaaa9dc3d.jpg[/img]

-

接下来我们来打开web.xml,然后在web-app标签中间空白处输入filter然后alt+/,就会出现filter 模板提示,见下图

[img]http://yufei.iteye.com/upload/picture/pic/5299/1b29a469-8e34-48b3-858d-93bb8586faa9.jpg[/img]

-

注意一点: 由于xml编辑器不是eclipse默认提供,而是通过插件提供的,所以我们要到相应插件的选相下去修改,那么你打开xml时就要使用你定义了模板的编辑器来打开
具体说明参见下图

[img]http://yufei.iteye.com/upload/picture/pic/5300/449836fa-f9f5-439a-8ef9-0f708b2e47a7.jpg[/img]

-
-

除了上面的例子,模板还可以用在其它很多地方,只要是出现频率高的重复操作,我们都可以定义一个模板来完成,这样可以节省我们宝贵的时间来做其它有意义的事情
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值