Struts1(入门,简单登入demo)

首先Struts1架包不要下成Struts2的架包,刚开始研究就下错了这里附带架包的链接

链接:https://pan.baidu.com/s/1MjVxLHe7LEMOUReiiGDh8A 
提取码:ssau 

或者去struts的官网下载【下载地址】

demo路径如下

首先创建两个类,具体代码如下

package com.yfxr.domain;

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

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

public class LoginAction extends Action {
	
	@Override
    public ActionForward execute(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response)
            throws Exception {
        //将传进来的ActionForm对象向下转型,获得数据
        LoginForm user = (LoginForm) form;
        String userName = user.getUserName();
        System.out.println(userName);
        String password = user.getPassword();
        System.out.println(password);
        //判断登录结果,并响应给Action
        if("zhang".equals(userName) && "123".equals(password))
            return mapping.findForward("sucess");
        else
            return mapping.findForward("fail");
    }

}

 

LoginForml类必须继承ActionForm类,不然得不到form表单中的值

在这个类中,我们需要重写一个方法:excute。这个方法会处理业务逻辑,会自动调用,它有点类似于Servlet中的service方法,或者doGet/doPost方法。

package com.yfxr.domain;

import org.apache.struts.action.ActionForm;

public class LoginForm  extends ActionForm {
	
	 private static final long serialVersionUID = 1L;
	    private String userName;//接收表单数据,字段名必须与表单一致
	    private String password;
	    private String msg;//返回错误信息

	    public String getMsg() {
	        return msg;
	    }


	    public void setMsg(String msg) {
	        this.msg = msg;
	    }


	    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;
	    }



}

<1>.一般的规范:定义属性名称的时候应该和jsp页面的控件名称一样。 
<2>.但其实,属性的名称并非一定要一致,而真正要保持一致的是setter和getter方法。也就是说,如果你在jsp中定义的控件名称为username和password,那么setter方法的名称一定是setUsername和setPassword,同理,getter方法的名称一定是getUsername和getPassword。属性可以换其他的名字,但是这几个方法的名称一定要固定格式:get/set+控件名称并且首字母大写 
<3>.但我们遵守一般的规范最好。 
<4>.ActionForm一定要按照上述规范写好,才能保证数据能够正确填充,才能保证work

 

之后配置 struts-config.xml  路径为:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts-config PUBLIC
          "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
          "http://struts.apache.org/dtds/struts-config_1_3.dtd">

<!-- Struts框架的配置文件 -->
<struts-config>

    <form-beans>
        <!-- 该标签作用是填充数据,type是指定接收表单提交数据的类全称 -->
        <form-bean name="loginForm" type="com.yfxr.domain.LoginForm"></form-bean>
    </form-beans>

    <!-- Action的映射 -->
    <action-mappings>
        <!-- 配置一个Action,该Action的作用就是验证登录信息 -->
        <!-- path相当于该Action对外访问的虚拟路径 -->
        <!-- type是该Action所对应的类(相当于一个真实路径)" -->
        <!-- name的作用是指明总控制器跳转到指定Action所需携带的数据 -->
        <action path="/login" type="com.yfxr.domain.LoginAction" name="loginForm">
            <!-- 用于Action处理接收到的"后台"响应 -->
            <forward name="sucess" path="/success.jsp"></forward>
            <forward name="fail" path="/failuer.jsp"></forward>
        </action>
    </action-mappings>

</struts-config>

 

主要的login.jsp 页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
    <form action="login.do" method="POST">
        用户名:<input type="text" name="userName"  >
        密    码:<input type="password" name="password">
        <input type="submit" value="提交">
    </form>
</body>
</html>

其中还有两个登入成功和失败的页面比较简单直接省略

最后配置web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>struts</display-name>
  <welcome-file-list>
    <welcome-file>login.jsp</welcome-file>
  </welcome-file-list>
  
  <!-- 配置总控制器 -->
    <servlet>
        <servlet-name>Action</servlet-name>
        <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
        <!-- 配置初始化参数,内容为管理调度总控制器中Action的属性文件 -->
        <init-param>
            <param-name>config</param-name>
            <param-value>/WEB-INF/struts-config.xml</param-value>
        </init-param>
    </servlet>

    <!-- 配置总控制器对外的映射路径 -->
    <servlet-mapping>
        <servlet-name>Action</servlet-name>
        <!-- 只有.do类型的请求才需要转到ActionServlet总控制器中 -->
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>
    
</web-app>

借鉴:https://blog.csdn.net/gavin_john/article/details/51730093

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值