• Struts2学习(一)


    struts2框架主要是封装了servlet,简化了jsp跳转的复杂操作,并且提供了易于编写的标签,可以快速开发view层的代码。

      过去,我们用jsp和servlet搭配,实现展现时,大体的过程是:

      1 jsp触发action

      2 servlet接受action,交给后台class处理

      3 后台class跳转到其他的jsp,实现数据展现

      现在有了struts2,实现过程变为

      1 jsp出发action

      2 struts2拦截请求,调用后台action

      3 action返回结果,由不同的jsp展现数据

    需要的包如下:

    1 commons-fileupload-1.3.2.jar  
    2 javassist-3.11.0.GA.jar
    3 commons-io-2.2.jar            
    4 ognl-3.0.19.jar
    5 commons-lang3-3.2.jar         
    6 struts2-core-2.3.32.jar
    7 commons-logging-1.1.3.jar    
    8 xwork-core-2.3.32.jar
    9 freemarker-2.3.22.jar

    登陆页面代码:login.jsp

    <%@page language="java" contentType="text/html" pageEncoding="UTF-8"%>
    <%@taglib prefix="s" uri="/struts-tags"%>
    <!DOCTYPE html>
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title><s:text name="loginPage"/></title>
        </head>
        <body>
            <s:form action="login">
                <!--s:textfield name="username" key="user"/-->
                <p>
                    输入用户名:<input type="text" name="username" key="user"/>
                </p>
                
                <!--s:textfield name="password" key="pass"/-->
                <p>
                    输入密码:<input type="password" name="password" key="pass"/>
                </p>
                
                <s:submit key="login"/>
            </s:form>
        </body>
    </html>
    

     登陆成功页面:welcome.jsp

    <%@page language="java" contentType="text/html" pageEncoding="UTF-8"%>
    <%@taglib prefix="s" uri="/struts-tags"%>
    <!DOCTYPE html>
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title><s:text name="succPage"/></title>
        </head>
        <body>
            <s:text name="succTip">
            <s:param>${sessionScope.user}</s:param>
        </s:text><br/>
        </body>
    </html>

    登陆失败页面:error.jsp

    <%@page language="java" contentType="text/html" pageEncoding="UTF-8"%>
    <%@taglib prefix="s" uri="/struts-tags"%>
    <!DOCTYPE html>
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title><s:text name="errorPage"/></title>
        </head>
        <body>
            <s:text name="failTip"/>
        </body>
    </html>
    处理action的java代码:LoginAction.java
    package edu.jju;
    
    import com.opensymphony.xwork2.ActionContext;
    import com.opensymphony.xwork2.ActionSupport;
    
    /**
     *
     * @author munication
     */
    public class LoginAction extends ActionSupport {
        private String username;
        private String password;
    
        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;
        }
    
        /**
         *
         * @return
         * @throws Exception
         */
        @Override
        public String execute() throws Exception {
            if (getUsername().equals("admin") && getPassword().equals("xxl123")) {
                ActionContext.getContext().getSession().put("user", getUsername());
                return SUCCESS;
            }else{
                return ERROR;
            }
        }
    }

    部署文件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_3_1.xsd"
             version="3.1">
        <session-config>
            <session-timeout>
                30
            </session-timeout>
        </session-config>
        <filter>
            <filter-name>struts2</filter-name>
            <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
        </filter>
        <filter-mapping>
            <filter-name>struts2</filter-name>
            <url-pattern>/*</url-pattern>            
        </filter-mapping>
        <welcome-file-list>
            <welcome-file>login.jsp</welcome-file>
        </welcome-file-list>
    </web-app>

    struts2的配置文件:struts.xml

    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
        "http://struts.apache.org/dtds/struts-2.1.7.dtd">
    <struts>
        <!-- 指定全局国际化资源文件 -->
        <!--constant name="struts.custom.i18n.resources" value="mess"/-->
        <!-- 指定国际化编码所使用的字符集 -->    
        <!--constant name="struts.i18n.encoding" value="utf-8"/-->
        <!-- 所有的Action定义都应该放在package下 -->
        <package name="test" extends="struts-default">
            <action name="login" class="edu.jju.LoginAction">
                <result name="error">/error.jsp</result>
                <result name="success">/welcome.jsp</result>
            </action>
        </package>
    </struts>

    至此第一个demo完成了。

  • 相关阅读:
    两个Stirng[]拼接成一个数组
    Visual code 常用快捷键
    mysql 中的分页limit
    移动端web轮播图插件swiper,功能很强大
    array_splice()函数 ,删除数组中的某个值
    Github简单的上传和修改
    PHP数组在循环的时候修改本身的值
    IP定位,天气接口
    使用百度翻译的API接口
    laravel 队列
  • 原文地址:https://www.cnblogs.com/guochaoxxl/p/6828767.html
Copyright © 2020-2023  润新知