Chinaunix首页 | 论坛 | 博客
  • 博客访问: 483039
  • 博文数量: 1496
  • 博客积分: 79800
  • 博客等级: 大将
  • 技术积分: 9940
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-09 13:22
文章分类

全部博文(1496)

文章存档

2011年(1)

2008年(1495)

我的朋友

分类:

2008-09-09 17:24:51


  [b:d01b749036]     测试页面testmvc.jsp[/b:d01b749036]示例: 
   /testmvc.jsp 
  <%@ page con_tentType="text/html;charset=gb2312" %> 
   
   
  无标题文档 
   
   
   
     Pleasa Login  
     
   
  "> 
     
       
         用户名:  
           
         
     
     
         密 码:  
           
         
     
     
          
           
         
     
   
   
    
  
    
   
   
  function test() 
  { 
  alert("ok"); 
  document.form1.submit(); 
  } 
   
  
  [b:d01b749036]测试页面:welcome.jsp[/b:d01b749036] 
  示例: /welcome.jsp 
  you are welcome 
  
  说明:这里我偷了个懒,该页面只写这句话。 
  
  [b:d01b749036]BEAN:USER类[/b:d01b749036] 
  示例: /WEB-INF/Classes/beans/User.java 
  package bean; 
  public class User implements java.io.Serializable 
  { 
  private final String userName,password,hint; 
  public User(String userName,String  password,String hint) 
  { 
  this.userName=userName; 
  this.password=password; 
  this.hint=hint; 
  } 
  public String getUserName() 
  { 
  return userName; 
  } 
  
  public String getPassWord() 
  { 
  return password; 
  } 
  
  public String getHint() 
  { 
  return hint; 
  } 
  public boolean equals(String uname,String pwd) 
  { 
  return getUserName().equals(uname)&& getPassWord().equals(pwd); 
  } 
  } 
     该类表示了一个用户,并提供了一个equals的方法,当用户名和口令匹配的时候,返回true值。 
  
  [b:d01b749036]BEAN:LoginDB类[/b:d01b749036] 
  示例: /WEB-INF/Classes/beans/User.java 
  package bean; 
  import java.util.Iterator; 
  import java.util.Vector; 
  import java.io.*; 
  
  public class LoginDB implements Serializable 
  { 
  private Vector users=new Vector(); 
  public void addUser(String uname,String pwd,String hint)//添加用户的方法 
  { 
  users.add(new User(uname,pwd,hint)); 
  } 
  public User getUser(String uname,String pwd)//检索用户的方法 
  { 
  Iterator it=users.iterator(); 
  User bean=null; 
  synchronized (users){ 
  while(it.hasNext()) 
  { 
  bean=(User)it.next(); 
  if (bean.equals(uname,pwd)) 
    return bean; 
  } 
  } 
  return null; 
  } 
  public String getHint(String uname)//对指定的用户提供返回口令提示的方法 
  { 
  Iterator it=users.iterator(); 
  User bean=null; 
  synchronized (users) 
  { 
  while(it.hasNext()) 
  { 
  if (bean.getUserName().equals(uname)) 
  return bean.getHint(); 
  } 
  } 
  return null; 
  } 
  } 
      
  [b:d01b749036]LoginServlet类:[/b:d01b749036] 
  示例:  /WEB-INF/Classes/LoginServlet.java 
  import javax.servlet.ServletConfig; 
  import javax.servlet.ServletException; 
  import javax.servlet.http.HttpServlet; 
  import javax.servlet.http.HttpServletRequest; 
  import javax.servlet.http.HttpServletResponse; 
  import javax.servlet.jsp.*; 
  import bean.*; 
  public class LoginServlet extends HttpServlet 
  { 
   private LoginDB loginDB; 
   public void init(ServletConfig config) throws ServletException 
   { 
    loginDB=new LoginDB(); 
   } 
   public void service(HttpServletRequest req, HttpServletResponse res) 
          throws java.io.IOException, ServletException  
       { 
        loginDB.addUser("long","long","long"); 
        User user=loginDB.getUser(req.getParameter("userName"),req.getParameter("PassWord")); 
        System.out.println("The name of loginDB is"+loginDB.getClass().getName()); 
        //String user=req.getParameter("userName"); 
        //System.out.println("get user name:"+user); 
        /*getServletContext().getRequestDispatcher(res.encodeURL("/index.jsp")).forward(req,res);*/ 
        /*要注意getServletContext()和req两个对象的区别,经过实验应用getServletContext()进行重定向*/ 
        /*总是不行,而应用req则可以*/ 
        if (user!=null) 
        { 
        req.getRequestDispatcher(res.encodeURL("/welcome.jsp")).forward(req,res); 
        } 
        else 
        { 
        req.getRequestDispatcher(res.encodeURL("/adduser.jsp")).forward(req,res); 
        } 
       } 
        
  } 
  
  当testmvc.jsp的表单提交时,请求被发送到登录的Servlet,这段代码我没什么好说的,在使用mvc构架之前,我们喜欢用隐藏帧来处理表单提交的内容,实际LoginServlet.java就是替代了隐藏帧而已。 
  
  到此为止,请读者将所有的示例,按示例所示的路径好所有的类和jsp页面。下一步我们将讨论这个东东的玩法和原理。 
  对了,忘了告诉大家,我的测试环境是: 
  win2000server  tomcat 4.1  jdk1.4  没有数据库
【责编:admin】

--------------------next---------------------

阅读(212) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~