• struts2 框架的基本使用


    <?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_3_0.xsd" 
             id="WebApp_ID" version="3.0">
    
        <!-- 配置struts2 的拦截路径 -->
        <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>
        <!-- END 配置struts2 的拦截路径 -->
    
    </web-app>
    <?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>
    
        <!-- <constant name="struts.action.extension" value=",action,do" /> -->
        <constant name="struts.devMode" value="true" />
        <!-- http://localhost:8080/lf/dev_thing -->
        
        <package name="myPackage" namespace="/lf"  extends="struts-default">
            <!-- 配置拦截器 -->
            <interceptors>
                <!-- 拦截器有三种 -->
                <interceptor name="loginInterceptor" class="cn.zr.struts2.interceptor.LoginInterceptor"/>
                <interceptor name="twoInterceptor" class="cn.zr.struts2.interceptor.TwoInterceptor"/>
                <interceptor name="threeInterceptor" class="cn.zr.struts2.interceptor.ThreeInterceptor"/>
                <interceptor-stack name="testStack">
                    <interceptor-ref name="defaultStack" />
                    <interceptor-ref name="loginInterceptor"/>
                    <interceptor-ref name="threeInterceptor"/>
                    <interceptor-ref name="twoInterceptor">
                        <param name="excludeMethods">thing</param>
                        <param name="includeMethods">update</param>
                    </interceptor-ref>    
                </interceptor-stack>
            </interceptors>
            <!-- 换掉默认拦截器 -->
             <default-interceptor-ref name="testStack"/>
            
            <action name="dev_*" class="cn.zr.struts2.action.LoginAction" method="{1}" >
                <!-- 视图 -->
                <result name="page" type="dispatcher">
                    /WEB-INF/jsp/login.jsp
                </result>
            </action>
            
            <action name="test_*" class="cn.zr.struts2.action.Register" method="{1}" >
                <result name="lf" type="dispatcher">
                    /WEB-INF/jsp/register.jsp
                </result>
            </action>
            
    
            <action name="inf_*" class="cn.zr.struts2.action.InfoAction" method="{1}" >
                <result name="info" type="dispatcher">
                    /WEB-INF/jsp/info.jsp
                </result>
            </action>
            
        </package>
        
    
    
    </struts>
       
        
     
    <?xml version="1.0" encoding="UTF-8"?>
    <!--  log4j2.xml文件配置-->
    <Configuration>
        <Appenders>
            <Console name="STDOUT" target="SYSTEM_OUT">
                <PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/>
            </Console>
        </Appenders>
        <Loggers>
            <Logger name="com.opensymphony.xwork2" level="debug"/>
            <Logger name="org.apache.struts2" level="debug"/>
            <Root level="warn">
                <AppenderRef ref="STDOUT"/>
            </Root>
        </Loggers>
    </Configuration>
    package cn.zr.struts2.action;
    
    import cn.zr.struts2.pojo.User;
    
    public class InfoAction extends SuperAction{
    
        
        private User user;
        private String email;
    
    
        //根据Set的方法注入
        public void setUser(User user) {
            this.user = user;
        }
    
        public User getUser() {
            return user;
        }
    
    
        public void setEmail(String email) {
            this.email = email;
        }
    
    
        public String getInfo(){
            System.out.println("email:"+email);
            System.out.println("user:"+user);
            return "info";
        }
    
        
    }
    package cn.zr.struts2.action;
    
    public class LoginAction extends SuperAction{
        
        public String thing(){
            System.out.println("进入thing的方法.......");
            return "page";
        }
        
        public String add() {
            System.out.println("welcome to here======");
            System.err.println("request:"+request+",response:"+response+",session:"+session);
            return "page";
        }
        
        public String update() {
            System.out.println("**** * update * ****");
            return "page";
        }
    }
    package cn.zr.struts2.action;
    
    
    
    
    public class Register extends SuperAction{
        
        public String testSome(){
            System.out.println("测试+++");
            
            return "lf";
            
        }
        
    
        
    }
    package cn.zr.struts2.action;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    
    import org.apache.struts2.interceptor.ServletRequestAware;
    import org.apache.struts2.interceptor.ServletResponseAware;
    
    public class SuperAction implements ServletRequestAware,ServletResponseAware{
        
        
        public HttpServletRequest request;
        public HttpServletResponse response;
        public HttpSession session;
        @Override
        public void setServletResponse(HttpServletResponse response) {
            this.response = response;
            
        }
        @Override
        public void setServletRequest(HttpServletRequest request) {
    
            this.request = request;
            this.session = request.getSession();
        }
        
        
    
        
    }
    package cn.zr.struts2.interceptor;
    
    import com.opensymphony.xwork2.ActionInvocation;
    import com.opensymphony.xwork2.interceptor.Interceptor;
    
    public class LoginInterceptor implements Interceptor{
    
        @Override
        public void destroy() {
            // TODO Auto-generated method stub
            
        }
    
        @Override
        public void init() {
            // TODO Auto-generated method stub
            
        }
    
        @Override
        public String intercept(ActionInvocation action) throws Exception {
            
            System.out.println("拦截前.......");
            String result =  action.invoke();
            System.out.println("=========拦截后.......");
            return result;
        }
        
    }
    package cn.zr.struts2.interceptor;
    
    import com.opensymphony.xwork2.ActionInvocation;
    import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
    
    public class ThreeInterceptor extends AbstractInterceptor {
    
        @Override
        public String intercept(ActionInvocation action) throws Exception {
            
            System.out.println("tell me what do you want to do...");
            
            String result = action.invoke();
            
            System.out.println("OK, i let you go...");
            
            return result;
        }
    
    }
    package cn.zr.struts2.interceptor;
    
    import com.opensymphony.xwork2.ActionInvocation;
    import com.opensymphony.xwork2.interceptor.MethodFilterInterceptor;
    
    public class TwoInterceptor extends MethodFilterInterceptor{
    
        @Override
        protected String doIntercept(ActionInvocation action) throws Exception {
            System.out.println("开始拦截,哈哈哈。。。");
            String result = action.invoke();
            System.out.println("放你走,哈哈哈。。。");
            return result;
        }
    
    }
    package cn.zr.struts2.pojo;
    
    public class User {
    
        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;
        }
        public User() {
        }
        public User(String username, String password) {
            this.username = username;
            this.password = password;
        }
        @Override
        public String toString() {
            return "User [username=" + username + ", password=" + password + "]";
        }
        
        
    }
    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>info starting page</title>
        
        
    
    
      </head>
      
      <body>
        <h1>OK</h1>
      </body>
    </html>
    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>login page</title>
        
        <meta http-equiv="pragma" content="no-cache">
        <meta http-equiv="cache-control" content="no-cache">
        <meta http-equiv="expires" content="0">    
        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
        <meta http-equiv="description" content="This is my page">
        <!--
        <link rel="stylesheet" type="text/css" href="styles.css">
        -->
    
      </head>
      
      <body>
        <h1>欢迎进入登录页面</h1>
      </body>
    </html>
    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>register page</title>
        
        
    
      </head>
      
      <body>
        <h1> welcome </h1>
        
        <form action="/lf/inf_getInfo.action" method="post">
            <label>用户</label><input name="user.username"><br>
            <label>密码</label><input name="user.password"><br>
            <label>邮箱</label><input name="email"><br>
            <input type="submit" value="提交">
        </form>
        
      </body>
    </html>
  • 相关阅读:
    二叉树的下一个节点
    二叉树的对称
    CString,string和char*
    二叉平衡树
    二叉树的深度
    必应首页图片下载
    Git报错:fatal: remote origin already exists.
    sublime text3 自定义代码片段
    atom自定义C++代码片段
    vscode 自定义代码片段(snippets)
  • 原文地址:https://www.cnblogs.com/lantu1989/p/6435251.html
Copyright © 2020-2023  润新知