Struts框架的简单应用到用户登录

Struts框架的原理:

  1. 客户端初始化一个指向Servlet容器(例如tomcat)的请求,这个请求经过一系列的过滤器(Filter),接着FilterDispatcher(过滤处理器)被调用,FilterDispatcher询问ActionMapper来决定这个请求是否需要调用某个Action。其中ActionMapper在web应用启动时根据配置信息加载生成。
  2. 如果ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy,ActionProxy通过Configuration Manager询问框架的配置文件,找到需要调用的Action类,ActionProxy创建一个ActionInvocation的实例。ActionInvocation实例使用命名模式来调用,在调用Action的过程前后,涉及到相关拦截器(Intercepter)的调用。
  3. 一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。返回结果通常是(但也不总是,也可能是另外的一个Action链)一个需要被表示的JSP。在表示的过程中可以使用Struts2 框架中的标签。
    可能有点抽象,在后面的程序中会逐步加深!

实例:用户登录

目录展示:
这里写图片描述

步骤:

1.导入jar包
2.配置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_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>struts_test</display-name>
  <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</url-class>
  </filter>
  <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
  </filter-mapping>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <!-- 文件中配置了FilterDispatcher  filter的name和clas属性指出了过滤器的名称和对应的类,<filter-mapping>中的<url-pattern>指出过滤匹配的URL模式,设为/*表示均匹配-->
</web-app>

3.编写jsp文件
(1)login.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<!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>登录系统</title>
</head>
<body>
    <br><br><br><br>
    <div align="center">
        ${requestScope.message}
        <s:form action="Login" method="POST">
            <s:textfield name="adminUserName" lable="用户名"></s:textfield>
            <s:password name="adminUserPassword" size="21" lable="密码"/>
            <s:submit value="提    交"/>
        </s:form>
    </div>

</body>
</html>
<!-- ${requestScope.message}是一个EL表达式,这里的mseeage是指在LoginAction中用户登录的校验的报错信息,
    在Action中将message设为一个属性,登录校验后,设置message属性的值,系统会将message属性的值保存在request范围中.
转化为jsp后,form表单的action属性为/ch13/Login.action-->

(2)loginResult.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>验证通过</title>
</head>
<body>
${message}
</body>
</html>

4.配置struts.xml
将struts.xml放置于”WEB-INF/classes”目录下,在eclipse开发时,只需要在”Java Resourse:src“中创建struts.xml文件,则会在动在刚才提到的目录中生成。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>

<package name="example" extends="struts-default" namespace="">
    <action name="Login" class="action.LoginAction">
        <result>/loginResult.jsp</result>
        <result name="xxx">/login.jsp</result>
    </action>
</package>
</struts>
<!--<struts>之间的是actionMapper相关的配置。使用<package>进行分类,<result>指出Action执行完毕后要导向的目标页面。<result>的name表示Action的axecute()方法返回到而相应字符串。如果没有指出name属性值,则默认为"success"。-->

5.编写Action

package action;

import com.opensymphony.xwork2.ActionSupport;
/**
 * 用户登录功能的Action类
 * @author 13983
 *
 */
public class LoginAction extends ActionSupport{

    /**
     * 执行用户验证的方法
     */
    public String message;//execute()执行完后返回的信息
    public String adminUserName;
    public String adminUserPassword;


    public String execute() throws Exception{

        if("admin".equals(adminUserName)&&"pass".equals(adminUserPassword))
        {
            message=adminUserName+"登陆成功!";
        }

        else{
            message=adminUserName+"登陆失败!";
            return INPUT;
        }
        return SUCCESS;

    }


    public String getMessage() {
        return message;
    }


    public void setMessage(String message) {
        this.message = message;
    }


    public String getAdminUserName() {
        return adminUserName;
    }


    public void setAdminUserName(String adminUserName) {
        this.adminUserName = adminUserName;
    }


    public String getAdminUserPassword() {
        return adminUserPassword;
    }


    public void setAdminUserPassword(String adminUserPassword) {
        this.adminUserPassword = adminUserPassword;
    }

}

可以运行:
这里写图片描述

本项目使用的jar包:struts 2.0.11

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值