Java Web:Struts2框架

框架处理请求流程

1.浏览器:发送请求
2.服务器:拦截器筛选请求
3.服务器:调用action处理请求
4.服务器:action业务处理导向相应页面
5.服务器:—响应请求

实例:页面登陆

一、浏览器发送请求

<form action="login" method="post">
  用户:<input type="text" name=user><br>
  密码:<input type="password" name=password><br>
  <input type="submit" value="登陆">
</form>

action=“提交给服务器相应处理的Action类,该类必须在struts.xml中配置”

二、服务器拦截请求

    <filter>
    <filter-name>struts2</filter-name>
      <filter-class>
        <!-- 通过struts2的jar包中的StrutsPrepareAndExecuteFilter启动拦截器-->
        org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
      </filter-class>
    </filter>

    <filter-mapping>
      <!-- 配置拦截器拦截所有请求 -->
      <filter-name>struts2</filter-name>
      <url-pattern>/*</url-pattern>
    </filter-mapping>

三、调用action类

1.struts.xml注册action类,让服务器知道提交的action的具体,并且根据action类返回的结果进行处理
<?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="default" namespace="/" extends="struts-default">
  <!-- action类的配置,让struts2知道action的存在 :name地址映射,页面发送请求调用action的类名,class:对应的实现类-->
  <action name="login" class="Action.login">
    <!-- action类处理完成后返回的结果result,根据result导向页面 -->
    <result name="success">/succes.jsp</result>
    <result name="error">/error.jsp</result>
  </action>
</package>
</struts>
2.实现action类
package Action;
import com.opensymphony.xwork2.ActionSupport;
//这里继承了ActionSupport的方法,使用Struts2提供的Action接口
public class login extends ActionSupport{
private static final long serialVersionUID = 1L;
//Action为对象属性驱动,浏览器传来的参数传递给对应的包含set方法的属性,所以需要定义并实现get,set同名参数
private String user;
private String password;
public String getUser() {return user;}
public void setUser(String user) {this.user = user;}
public String getPassword() {return password;}
public void setPassword(String password) {this.password = password;}
//重写execute方法,该方法返回字符串类型既返回result结果到struts.xml中
public String execute()throws Exception {
    String ret = ERROR;
    //可以连接数据库验证,调用DAO层数据库的验证方法返回相应的值作为判断依据
    if(user.equals("doge")&&password.equals("123456")){
        ret=SUCCESS;
        return ret;
    }else{
        return ret;
    }
}
}

备注

1.有时候stuts2启动不成功报错Unable to locate configuration files,可能是导入lib的jar包版本太旧,应该使用最新的官网提供的jar包

你可能感兴趣的:(java,Web,struts2.0)