zoukankan      html  css  js  c++  java
  • Struts实现登陆

    最近一直在研究struts看的书有点老,也许还没有DispatchAction这类。
    不知道1.1版本里是否有使用到这个类。就先用Action这个类写一遍。
    比如:现在你已经在login.jsp页面提交给Struts,或者index.jsp页面提交任何都行。
     配置文件:
    web.xml

    <servlet>
      
    <servlet-name>action</servlet-name>
      
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
      
      
    <init-param>
       
    <param-name>config</param-name>
       
    <param-value>/WEB-INF/struts-config.xml</param-value>
      
    </init-param>
      
      
    <init-param>
       
    <param-name>debug</param-name>
       
    <param-value>2</param-value>
      
    </init-param>
      
      
    <load-on-startup>2</load-on-startup>
     
    </servlet>
     
     
    <servlet-mapping>
      
    <servlet-name>action</servlet-name>
      
    <url-pattern>*.do</url-pattern>

    </servlet-mapping>
    struts-config.xml配置

    Code
    LoginForm类
    package web.form;

    import javax.servlet.http.HttpServletRequest;

    import org.apache.struts.action.ActionErrors;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionMapping;
    import org.apache.struts.action.ActionMessage;

    public class loginForm extends ActionForm {

        
    private String username;
        
    private String password;
        
    public loginForm() {
            
    // TODO Auto-generated constructor stub
        }
        
    public String getUsername() {
            
    return username;
        }
        
    public void setUsername(String username) {
            
    this.username = username;
        }
        
    public String getPassword() {
            
    return password;
        }
        
    public void setPassword(String password) {
            
    this.password = password;
        }
        
        
    public ActionErrors validate(ActionMapping mapping,HttpServletRequest request){
            ActionErrors error 
    = new ActionErrors();
            
    if(username==null||username.equals("")||username.length()<1)
            {
                error.add(
    "username",new ActionMessage("error.username.reqired"));
            }
            
    if(password==null||"".equals(password)||password.length()<1)
            {
                error.add(
    "password",new ActionMessage("error.password.reqired"));
            }
            
    return error;
        }
    }

    LoginAction类
    ackage web.action;

    import java.io.IOException;

    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;

    import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionErrors;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
    import org.apache.struts.action.ActionMessage;
    import org.apache.struts.action.ActionMessages;
    import org.apache.struts.actions.DispatchAction;

    import app.Constants;

    import com.UserDirectory;
    import com.UserDirectoryException;

    import web.form.loginForm;

    public class loginAction extends DispatchAction {

        
    public loginAction() {
            
    // TODO Auto-generated constructor stub
        }

            
    public ActionForward execute(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response) throws IOException, ServletException {
            
            loginForm myform 
    = (loginForm)form;
            
    if(myform==null)
            {
                  
    return new ActionForward(mapping.getInput(),false);
            }
            
    boolean istrue = false;
            
    try
            {
                
    //验证登陆业务逻辑
                istrue = isUserlogon(myform.getUsername(),myform.getPassword());
            }
            
    catch (Exception e) {
                ActionErrors errors 
    = new ActionErrors();
                errors.add(ActionErrors.GLOBAL_MESSAGE,
    new ActionMessage("error.logon.connect"));
                saveErrors(request, errors);
                
    return new ActionForward(mapping.getInput(),false);
            }

            
    if(!istrue)
            {
                           
                ActionErrors errors 
    = new ActionErrors();
                 
    //1.1以后没有ActionError类 使用ActionMessage
                
    //1.0 errors.add(ActionError.GLOBAL_MESSAGE,new ActionError("."))
                errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("error.logon.invalid"));
                saveErrors(request, errors);
                
    return new ActionForward(mapping.getInput());
            }
            
            HttpSession session 
    = request.getSession(true);
            session.setAttribute(Constants.USER_KEY,myform);
            
    /*
                   1.0时
                 if(servlet.getDebug()>=Constants.DEBUG)
             
    */
            
    if(Integer.parseInt(servlet.getInitParameter("debug"))>=Constants.DEBUG)
            {
                StringBuffer msg 
    = new StringBuffer("LogonUser :'");
                msg.append(myform.getUsername());
                msg.append(
    "'logged on in session");
                msg.append(session.getId());
                servlet.log(msg.toString());
            }
            
    return mapping.findForward(Constants.SUCESS);
        }
    }

  • 相关阅读:
    I.MX6 简单电路模拟USB设备的插入
    I.MX6 查看baudrate确定是否被其他程序占用
    I.MX6 Ethernet MAC (ENET) MAC Address hacking
    I.MX6 MAC Address 导致的系统崩溃
    I.MX6 U-boot编译找不到用户目录
    I.MX6 i2c_data_write_byte ioctl error: I/O error
    I.MX6 Android shutdown shell command
    Where Are You Standing?
    byte[]和InputStream的相互转换
    jsp 获取cookie 的值的方法
  • 原文地址:https://www.cnblogs.com/79039535/p/1539629.html
Copyright © 2011-2022 走看看