1、Filer
Filter:过滤器,用来过滤网站的数据;
- 处理中文乱码
- 登录验证…
Filter开发步骤:
1.导包
2.编写过滤器
1.导包不要错 导入javax.servlet包
public class CharacterEncodingFilter implements Filter{
@Override
//初始化
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("CharacterEncodingFilter已经初始化了");
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
servletRequest.setCharacterEncoding("UTF-8");
servletResponse.setCharacterEncoding("UTF-8");
servletResponse.setContentType("text/html;charset=UTF-8");
System.out.println("CharacterEncodingFilter执行前");
filterChain.doFilter(servletRequest,servletResponse);//让过滤器继续走,不写就停止了
System.out.println("CharacterEncodingFilter执行后");
}
@Override
//销毁
public void destroy() {
System.out.println("CharacterEncodingFilter已经销毁了");
}
}
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>com.maple.filter.CharacterEncodingFilter</filter-class>
</filter>
<servlet-mapping>
<servlet-name>CharacterEncodingFilter</servlet-name>
<url-pattern>/servlet</url-pattern>
</servlet-mapping>
2、监听器
实现一个监听器的接口;(有N种)
1.编写一个监听器
实现监听器的接口
public class OnlineCountListenter implements HttpSessionListener{
@Override
//创建Session监听:看你的一举一动
//一旦创建Session就会触发一次这个事件
public void sessionCreated(HttpSessionEvent se) {
ServletContext context = se.getSession().getServletContext();
Integer onlineCount = (Integer)context.getAttribute("OnlineCount");
if(onlineCount==null)
{
onlineCount=new Integer(1);
}
else {
int count=onlineCount.intValue();
onlineCount=new Integer(count+1);
}
context.setAttribute("OnlineCount",onlineCount);
}
@Override
public void sessionDestroyed(HttpSessionEvent se) {
}
}
2.web.xml配置监听器
<listener>
<listener-class>com.maple.listener.OnlineCountListenter</listener-class>
</listener>
3.看情况是否使用
监听器:GUI编程中经常使用;
public class TestPanel {
public static void main(String[] args) {
Frame frame = new Frame("中秋节快乐");
Panel panel = new Panel(null);
frame.setLayout(null);
frame.setBounds(300,300,500,500);
frame.setBackground(new Color(0,0,255));
panel.setBounds(50,50,300,300);
panel.setBackground(new Color(0,255,255));
frame.add(panel);
frame.setVisible(true);
//监听事件,,监听关闭事件
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
}