zoukankan      html  css  js  c++  java
  • struts2-19-合法用户上传文件

    一:登录页面 

               成功:--->upload.jsp

               失败:返回错误信息(用户名或者密码错误)

    二:上传文件

             登录成功:上传成功

             未登录:--->login.jsp+错误信息(请登录)

    三:设置拦截器  未登录不能上传文件  nuc.sw.interceptor--->loginIntercetor.java

         

     1 package nuc.sw.interceptor;
     2 
     3 import com.opensymphony.xwork2.Action;
     4 import com.opensymphony.xwork2.ActionContext;
     5 import com.opensymphony.xwork2.ActionInvocation;
     6 import com.opensymphony.xwork2.ActionSupport;
     7 import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
     8 
     9 //定义拦截器需要继承类
    10 public class loginInterceptor extends AbstractInterceptor {
    11 
    12     //实现方法
    13     @Override
    14     public String intercept(ActionInvocation arg0) throws Exception {
    15         
    16         //获取session中的用户名
    17         ActionContext ctx=arg0.getInvocationContext();
    18         String user=(String)ctx.getSession().get("user");
    19         //判断逻辑。如果登录:放行---上传;未登录:转回登录页面。
    20         if(user!=null && user.equals("zd")){
    21             System.out.print("用户名是:"+user);
    22             return arg0.invoke();
    23         }
    24             ((ActionSupport)arg0.getAction()).addActionError("您还没有登录;");
    25             return Action.LOGIN;//  login
    26     }
    27 }

    四:配置struts.xml

     1 <?xml version="1.0" encoding="UTF-8" ?>
     2 <!DOCTYPE struts PUBLIC
     3     "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
     4     "http://struts.apache.org/dtds/struts-2.3.dtd">
     5 
     6 <struts>
     7  <constant name="struts.devMode" value="true" />
     8  <constant name="struts.multipart.saveDir" value="d:/tmpsaveDir"></constant>
     9  
    10  <package name="default" namespace="/" extends="struts-default">
    11     <!-- 用户自定义拦截器 -->
    12     <interceptors>
    13          <interceptor name="logininterceptor" class="nuc.sw.interceptor.loginInterceptor"/>
    14      </interceptors> 
    15      <global-results>
    16          <result name="login">/login.jsp</result>
    17      </global-results>
    18      <action name="loginnnn"  class="nuc.sw.action.LoginAction">    
    19          <result >/upload.jsp</result>
    20          <result name="input">/login.jsp</result>
    21        </action>
    22      <action name="uploadAction" class="nuc.sw.action.uploadAction">
    23         <!-- 判断文件类型 大小 扩展名 -->
    24          <interceptor-ref name="fileUpload">
    25              <param name="allowedTypes">image/png,image/jpeg,text/plain</param>
    26              <param name="maximumSize">655350</param>
    27              <param name="allowedExtensions">.png</param>
    28          </interceptor-ref>
    29          <!-- 文件上传位置 -->
    30          <param name="savePath">d:/uploadRealFile</param>
    31          <!-- 上传返回结果 -->
    32          <result name="success">/hello.jsp</result>
    33          <result name="input">/upload.jsp</result>
    34          <!-- 引用默认栈 -->
    35          <interceptor-ref name="defaultStack"/>
    36          <!-- 引用自定义的拦截器 -->
    37          <interceptor-ref name="logininterceptor"/>
    38      </action>
    39  </package>
    40 </struts>

    五:项目结构

    六:运行结果

     

         

  • 相关阅读:
    Java实现 LeetCode 69 x的平方根
    Java实现 LeetCode 68 文本左右对齐
    Java实现 LeetCode 68 文本左右对齐
    Java实现 LeetCode 68 文本左右对齐
    Java实现 LeetCode 67 二进制求和
    Java实现 LeetCode 67 二进制求和
    Java实现 LeetCode 67 二进制求和
    Java实现 LeetCode 66 加一
    Java实现 LeetCode 66 加一
    CxSkinButton按钮皮肤类
  • 原文地址:https://www.cnblogs.com/Z-D-/p/6053579.html
Copyright © 2011-2022 走看看