开始struts

一. struts环境的配置

 

 

软件环境:Myeclipse 6.5

 

 

首先建立一个web project,姑且命名为Strutstest吧 这个不用多说吧

 

 

然后开始傻瓜化的工作吧 赞美一下小M的强大吧 

 

 

右键单击工程项目->Myeclipse选项->ADD struts cap... 然后回弹出下面的对话框:

 

 

 

 

单击finish按键 OK 看看小M为我们添加了什么

 

 

1.struts 的各种jar包 充分体现出了小M的强大 有点啰嗦拉.

 

 

2.一些配置文件 :struts-config.xml 各种 *.tld

 

 

OK!struts配置完毕!

 

 

 

 

 

二. 利用 struts1.x实现简单的登陆功能

 

 

1. 双击 struts-config.xml 使用Design模式设计 会出现下面的画面:

 

 

 

 

Ok! 让我们开始设计我们的登陆系统吧

 

 

1.在上图的空白处点击右键 选择 new ->form action and jsp OK!

 

 

2.这时会出现如下的对话框:

 

 

 

 

 然后 按照上图的样例去填写 其中case是以后所用的action的名称 建议按照功能的特点进行命名 Ok!FINISH!

 

 

看看这时小M又为我们作了什么:

 

 

1. TestAction.java

 

 

2. TestForm.java

 

 

打开上面的 两个文件 仔细分析它们为我们作了什么工作. 

 

 

再利用Struts-config给我们建立几个JSP (这一步就不再介绍了)注意到上图中的property中的两个属性了吧 眼熟吧 我们正是需要建立JSP把这两个属性传递给testAction 然后再进行判断 返回到哪一个JSP .

 

 

不觉中 我们完成了MVC的架构 多亏了小M 的强大 省去了我们大量的无聊的工作

 

 

看看我们需要编写的代码吧~

 

 

首先 写一个判断用户名和密码的函数

 

package DatabaseOpt;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.sql.DataSource;
public class LoginCheck {
    DataSource ds = null;
    Connection con = null;
    Statement stat = null;
    PreparedStatement pstat = null;
    ResultSet rs = null;
    String sql = null;
   
    //构造函数,初始化数据库连接
    public LoginCheck(DataSource ds){
        try{
            this.ds = ds;
            con = ds.getConnection();
            if(!con.isClosed())
            {
                System.out.println("数据库连接成功");
            }
            else
            {
                System.out.println("数据库连接失败");
            }
        }
        catch(Exception ex){
            ex.printStackTrace();
        }   
        
    }
      ///////////////////////判别函数:
     public boolean loginChk(String loginName,String psw)
    {
        try{           
            sql = "select * from MBlogAdmin where username=? and password=?";
            pstat = con.prepareStatement(sql);
            pstat.setString(1,loginName);
            pstat.setString(2,psw);
            rs = pstat.executeQuery();       
            if (rs.next())
                {
                    return true;
                }
            else return false;
        }catch(Exception ex){
            ex.printStackTrace();
            return false;
        }  
        finally
        {
                // 在finally块里包含这些代码
                // 用以保证连接最后会被关闭
                try
                {
                   con.close();
                }
                catch (Exception e)
                {
                 e.printStackTrace();     
                }
        }
    }
}

 

 

 

 

package DatabaseOpt;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;

import javax.sql.DataSource;
public class LoginCheck {
    DataSource ds = null;
    Connection con = null;
    Statement stat = null;
    PreparedStatement pstat = null;
    ResultSet rs = null;
    String sql = null;
   
    //构造函数,初始化数据库连接
    public LoginCheck(DataSource ds){
        try{
            this.ds = ds;
            con = ds.getConnection();
            if(!con.isClosed())
            {
                System.out.println("数据库连接成功");
            }
            else
            {
                System.out.println("数据库连接失败");
            }
        }
        catch(Exception ex){
            ex.printStackTrace();
        }   
        
    }
      ///////////////////////判别函数:
     public boolean loginChk(String loginName,String psw)
    {

        try{           
            sql = "select * from MBlogAdmin where username=? and password=?";
            pstat = con.prepareStatement(sql);
            pstat.setString(1,loginName);
            pstat.setString(2,psw);
            rs = pstat.executeQuery();       
            if (rs.next())
                {
                    return true;
                }
            else return false;

        }catch(Exception ex){
            ex.printStackTrace();
            return false;
        }  
        finally
        {
                // 在finally块里包含这些代码
                // 用以保证连接最后会被关闭
                try
                {
                   con.close();
                }
                catch (Exception e)
                {
                	e.printStackTrace();     
                }
        }
    }
}
然后我们就开始在action里进行工作了 工作是如此的简单

 

	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		LoginForm loginForm = (LoginForm) form;// TODO Auto-generated method stub
		String name =loginForm.getName();
		String password = loginForm.getPassword();
		DataSource ds = getDataSource(request,"datasource");
		LoginCheck check = new LoginCheck(ds);
		if(check.loginChk(name, password))
		        {   
			       //将登陆信息写入session	
			        HttpSession session = request.getSession();
			        session.setAttribute("admin", name);
			        
		            return mapping.findForward("success");
		        }
		else
			return mapping.findForward("fail");			
	}
 

 

Ok!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2010-05-15 00:54  樱色布  阅读(234)  评论(0编辑  收藏  举报