1、监听器在GUI中的应用(在GUI编程中经常使用)
public class TestPane1 {
public static void main(String[] args) {
Frame frame = new Frame("窗口标题"); //新建一个窗体
Panel panel = new Panel(null); //面板(布局方式:null)
frame.setLayout(null); //设置窗体的布局
frame.setBounds(300,300,500,500);
frame.setBackground(new Color(0,0,225)); //设置背景颜色
panel.setBounds(50,50,300,300);
panel.setBackground(new Color(0,255,0));//设置背景颜色
frame.add(panel);
frame.setVisible(true);
//监听事件:监听关闭事件
frame.addWindowListener(new WindowListener() {
@Override
public void windowOpened(WindowEvent e) {
System.out.println("打开");
}
@Override
public void windowClosing(WindowEvent e) {
System.out.println("关闭ing");
System.exit(0); //0:正常终止
//System.exit(1); //1:非正常终止
}
@Override
public void windowClosed(WindowEvent e) {
System.out.println("关闭ed");
}
@Override
public void windowIconified(WindowEvent e) {
}
@Override
public void windowDeiconified(WindowEvent e) {
}
@Override
public void windowActivated(WindowEvent e) {
System.out.println("激活");
}
@Override
public void windowDeactivated(WindowEvent e) {
System.out.println("未激活");
}
});
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
}
});
}
}
2、过滤器的应用(用户登录之后才能进入主页,用户未登录就不能进入主页)
-
用户登录之后,将用户的数据放入向Sesison中
public class LoginServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //获取前端请求的参数 String username = req.getParameter("username"); if (username.equals("admin")) {//登录成功 req.getSession().setAttribute(Constant.USER_SESSION,req.getSession().getId()); resp.sendRedirect("/sys/success.jsp"); }else{ //登录失败 resp.sendRedirect("/error.jsp"); } } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } }
-
进入主页的时候要判断用户是否已经登录,在过滤器中实现
public class SysFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest ServletRequest, ServletResponse ServletResponse, FilterChain chain) throws IOException, ServletException { //ServletRequest 强转为 HttpServletRequest HttpServletRequest request = (HttpServletRequest) ServletRequest; HttpServletResponse response = (HttpServletResponse) ServletResponse; if (request.getSession().getAttribute(Constant.USER_SESSION)==null) { response.sendRedirect("/error.jsp"); } chain.doFilter(request,response); } @Override public void destroy() { } }
-
配置web.xml
<servlet> <servlet-name>LoginServlet</servlet-name> <servlet-class>com.ping.servlet.LoginServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>LoginServlet</servlet-name> <url-pattern>/servlet/login</url-pattern> </servlet-mapping> <filter> <filter-name>SysFiler</filter-name> <filter-class>com.ping.filter.SysFilter</filter-class> </filter> <filter-mapping> <filter-name>SysFiler</filter-name> <url-pattern>/sys/*</url-pattern> </filter-mapping>