zoukankan      html  css  js  c++  java
  • Struts2配置介绍

    1、web.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
             version="4.0">
        <!--配置Struts2的前端控制器
            struts2框架开始工作的入口
            接管请求
        -->
        <filter>
            <!--名称自定义-->
            <filter-name>struts2</filter-name>
            <!--Struts2提供的控制器类-->
            <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
        </filter>
        <filter-mapping>
            <filter-name>struts2</filter-name>
            <url-pattern>*.action</url-pattern>
        </filter-mapping>
    
        <welcome-file-list>
            <welcome-file>index.jsp</welcome-file>
        </welcome-file-list>
    </web-app>

    2、Struts2.xml(该配置文件的名称固定,不能修改。且只能放于src下)

    <?xml version="1.0" encoding="UTF-8"?>
    
    <!DOCTYPE struts PUBLIC
            "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
            "http://struts.apache.org/dtds/struts-2.5.dtd">
    
    <!--suppress ALL -->
    <struts>
        <!--
            package分模块管理
                name 可自定义但不能重复,在一个项目中唯一
                namespace:命名空间,与url请求路径直接相关
                如:/ 请求为/hello.action   /user 请求为/user/hello.action
                extends: 继承 必须直接或者间接继承struts-default
         -->
        <package name="default" namespace="/" extends="struts-default">
            <!--配置action
            配置url和处理类的方法进行映射
            name 为请求名称,不加后缀
            class 处理类的完全限定名称  包名+类名(如果不配置,则由默认类来处理)com.opensymphony.xwork2.ActionSupport
            method 指定处理请求方法 默认为execute方法
            -->
            <action name="hello" class="cn.ht.action.HelloAction">
                <!--
                 result 结果集配置
                 name 结果集名称和处理方法的返回值,默认为success,可以自定义
                 Struts2提供5个返回结果:
                    Action.SUCCESS 执行成功,跳转到下一个视图
                    Action.NONE 执行成功,不需要视图显示
                    Action.ERROR 执行失败,显示失败页面
                    Action.INPUT 要执行该Action 需要更多的输入条件
                    Action.LOGIN 需要登录后才能执行
    
                 type指定响应结果类型:
                    dispatcher 转发 默认
                    redirect  重定向
    
                 -->
                <result name="success" type="redirect">hello.jsp</result>
            </action>
        </package>
    
    
    </struts>

    3、Struts2案例:

    • 新建项目
    • 将lib移到WEB-INF目录下(手动导入必要且正确的jar包,否则会报Exception starting filter struts2)
    • 配置 web.xml--配置 struts2 的核心过滤器
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
             version="4.0">
        <filter>
            <filter-name>struts2</filter-name>
            <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
        </filter>
        <filter-mapping>
            <filter-name>struts2</filter-name>
            <url-pattern>*.action</url-pattern>
        </filter-mapping>
    </web-app>
    •  配置 struts.xml
    <?xml version="1.0" encoding="UTF-8"?>
    
    <!DOCTYPE struts PUBLIC
            "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
            "http://struts.apache.org/dtds/struts-2.5.dtd">
    
    <struts>
        <package name="default" namespace="/" extends="struts-default">
            <!-- class 处理类的完全限定名称  包名+类名 -->
            <action name="login" class="cn.ht.action.LoginAction">
                <result name="success">/success.jsp</result>
                <result name="failed">/login.jsp</result>
            </action>
        </package>
    </struts>
    • 在web目录下创建login.jsp

      注:action 的提交地址.action 是扩展名,默认为.action;action 的扩展名和 web.xml 中配
      置的 struts2 的核心过滤器相匹配;也就是如果表单中提交的地址以.action 结尾,那么在配
      置 filter 的 url-pattern 时一定是: <url-pattern>*.action</url-pattern>; 

    <%--
      Created by IntelliJ IDEA.
      User: Administrator
      Date: 2019-8-13
      Time: 10:01
      To change this template use File | Settings | File Templates.
    --%>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>STRUTS2</title>
    </head>
    <body>
    <form action="login.action" method="post">
        用户名:<input type="text" name="name"/><br>
        密码:<input type="password" name="pwd"/><br>
        <input type="submit" value=" 登录 "/>
    </form>
    </body>
    </html>
    • 在src下创建LoginAction 类 (注:LoginAction 中的属性名和表单中表单元素的名称要一致)
    package cn.ht.action;
    
    /**
     * @Classname LoginAction
     * @Description TODO
     * @Date 2019-8-13 10:04
     * @Created by Administrator
     */
    public class LoginAction {
        private String name;
        private String pwd;
        //处理方法
        public String execute(){
            if("zhang".equals(name)&&"1234".equals(pwd)){
                return "success";
            }else{
                return "failed";
            }
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public String getPwd() {
            return pwd;
        }
        public void setPwd(String pwd) {
            this.pwd = pwd;
        }
    }
    • 创建success.jsp
    <%--
      Created by IntelliJ IDEA.
      User: Administrator
      Date: 2019-8-13
      Time: 12:07
      To change this template use File | Settings | File Templates.
    --%>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>Title</title>
    </head>
    <body>
    <h1>登录成功!!!</h1>
    </body>
    </html>
    • 访问测试:

    •  输入信息-登录

    整体目录结构如下:

  • 相关阅读:
    软件定义网络笔记(PART 1)
    软件架构-可视化
    nginx反向代理配置去除前缀
    年轻就该多尝试,教你20小时Get一项新技能
    LNMP架构部署(附:部署Discuz社区论坛Web应用)
    高级开发进阶:第一章:总篇
    pip和conda添加和删除镜像源
    Micro-PaaS(Docker+K8S)
    云平台概述
    1、Docker学习笔记
  • 原文地址:https://www.cnblogs.com/Anemia-BOY/p/11341772.html
Copyright © 2011-2022 走看看