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包

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看rEADME.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看rEADME.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值