zoukankan      html  css  js  c++  java
  • 开始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!
  • 相关阅读:
    网络教程(2)光纤和RF编码简介
    网络教程(1)通过导线传播数字信号
    C语言基础 (11) 结构体 ,共用体 枚举 typedef
    C语言基础 (10) 变量作用域,生命周期 内存结构
    C语言基础 (9) 数组指针
    C语言基础 (8) 常用字符串处理函数
    C语言基础 (7) 输入输出
    短视频图像处理 OpenGL ES 实践
    短视频 SDK 6大功能技术实现方式详解
    从 HTTP 到 HTTPS 再到 HSTS
  • 原文地址:https://www.cnblogs.com/cherri/p/1735881.html
Copyright © 2011-2022 走看看