JBuilder9+Weblogic7实战篇 
运用篇(Filter过滤器在Jbuilder9中的运用) 
                                                                             作者:黄 凯         
E_mail:[email protected] 
前言 
    此篇将介绍以后在我文章中将运用到的一些工具的获取以及它们的安装与配置。 
  
Filter过滤器在Jbuilder9中的运用 
一、启动JBuilder 
  
二、创建一个工程 
    工程名为FilterTest。 
  
三、设置 Web Application 
    Web Application的名称也为FilterTest。 
  
四、创建 JSPs 
   这里我们将用到三个JSP网页,分别为login.jsp、login_error.jsp和index.jsp。 
注:以上部分这里对具体怎么创建不做说明,有不懂的请参考《JBuilder9+Weblogic7实战篇之JSP+SERVLET篇》 
1.在login.jsp中将: 
<title>index</title> 
替换为: 
<title>Filter的运用</title> 
将: 
<h1>JBuilder Generated JSP</h1> 
替换为: 
<center> 
    <p/> 
    <h1>欢迎使用Filter过滤器!</h1> 
    <form action="index.jsp" method="post"> 
    <font size="4"> 
      <b>用户名:</b> <input type="text" name="username" value=""> 
      <br><br> 
      <b>密   码:</b> <input type="text" name="password" value=""> 
      <br><br> 
      <input type="submit" name="login" value="登录">   
      <input type="reset" value="重写"> 
    </font> 
    </form> 
  </center> 
2.在login_error中将: 
<title>index</title> 
替换为: 
<title>Filter的运用</title> 
将: 
<h1>JBuilder Generated JSP</h1> 
替换为: 
<center> 
    <h1>Filter错误提示:</h1> 
  </center> 
  <% 
    String err = request.getParameter("errmsg"); 
    String errmsg = new String(err.getBytes("ISO-8859-1"),"GBK"); 
  %> 
  <p>对不起,您的操作有误。请参考下列提示:</p> 
        您输入的 <%=errmsg%>错误!  
3.在index.jsp中将: 
<title>index</title> 
替换为: 
<title>Filter的运用</title> 
将: 
<h1>JBuilder Generated JSP</h1> 
替换为: 
<center> 
    <p/> 
    <h1>祝贺你顺利通过Filter过滤!</h1> 
  </center> 
  
五、创建 Filter servlet 
1.在菜单栏选择File/New... ,弹出Object Gallery窗口; 
2.点击Web子页; 
3.选择Servlet然后点击OK,出现Servlet窗口; 
4.在Class后输入FilterTest,选中Filter servlet,这个向导将创建一个在filter包中名为FilterTest的class。点击Finish完成创建。 
请打开工程窗口Filter/Deployment desciptors/web,xml文件,在文档窗口中你可以更改<filter-mapping/>中的<url-pattern/>内的值来指定这个filter是对具体哪张网页做过滤,默认是/*,即对所有网页都进行过滤。切记,<filter>必须在整个web.xml中位置最前,否则不符合DTD语法要求。 
5.在文档窗口中: 
在 
public class FilterTest extends HttpServlet implements Filter { 
后添加 
//初始化用户名和密码 
  public static final String UserName = "111"; 
  public static final String PassWord = "111"; 
在doFilter方法中 
filterChain.doFilter(request, response); 
后添加 
  String username = ((HttpServletRequest)request).getParameter("username"); 
      String password = ((HttpServletRequest)request).getParameter("password"); 
      System.out.println("用户 \"" + username + "\" 正在试图登录,他的密码是 \"" + password + "\"。"); 
      if (username == null && password == null){ 
        System.out.println("页面值传递错误,或者非法进入。"); 
      }else{ 
        if (!UserName.equals(username)) { 
          ( (HttpServletResponse) response).sendRedirect("login_error.jsp?errmsg=username"); 
          return; 
        } 
        else { 
          if (!PassWord.equals(password)) { 
            ( (HttpServletResponse) response).sendRedirect("login_error.jsp?errmsg=password"); 
            return; 
          } 
        } 
      } 
    好了,至此你已经完成你在Jbuilder9中的第一个Filter过滤器了,请运行看结果吧。:) 
  
我的文章首发牛耳论坛(www.newer.com.cn/bbs)和程序员论坛(www.csdn.net),欢迎转载,不过,请保留作者以及修订者的名字,谢谢。 
      
 
  |