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>
五:项目结构
六:运行结果
转载于:https://www.cnblogs.com/Z-D-/p/6053579.html
struts2-19-合法用户上传文件相关推荐
- Django之用户上传文件的参数配置
Django之用户上传文件的参数配置 models.py文件 class Xxoo(models.Model):title = models.CharField(max_length=128)# me ...
- 匿名的ftp服务器不允许用户上传文件对吗,vsftp实现匿名用户文件可上传不能删除...
目的:匿名用户可上传.不能删除.不能更名 方法:在匿名用户主目录下新建一个upload目录用来存放匿名用户上传文件 修改/etc/vsftpd/vsftpd.conf anonymous_enable ...
- 解决办法:WinSCP 普通用户上传文件没有权限解决
文章目录 问题描述 解决办法 解决办法 1 解决办法 2 问题描述 普通用户(非root用户)使用 WinSCP上传文件到 Linux 服务器,出现 Permission Denied 的错误提示,并 ...
- winscp普通用户上传文件没有权限解决
winscp可以利用sftp协议对linux服务器就行连接,如果是利用普通用户进行登陆的话,上传文件的过程中会出现一些permission denied的提示,并且错误的返回码是3,下面说明下解决方法 ...
- django2.0media用户上传文件配置及使用方法
1.setting.py配置 #用户文件上传至media MEDIA_URL='/media/' MEDIA_ROOT=os.path.join(BASE_DIR,"media") ...
- java action 上传文件_Struts2实现单文件或多文件上传功能
一.简述 Struts2的文件上传其实也是通过拦截器来实现的,只是该拦截器定义为默认拦截器了,所以不用自己去手工配置, 二.指定用户上传文件的大小,有两种方式 1)默认是在default.proper ...
- php上传文件很慢的原因_PHP编码安全:上传文件安全
一次性付费进群,长期免费索取教程,没有付费教程. 进微信群回复公众号:微信群:QQ群:460500587 教程列表 见微信公众号底部菜单 | 本文底部有推荐书籍 微信公众号:计算机与网络安全 I ...
- 解决使用layui上传文件时提示“请求上传接口出现异常”
在做网站的过程中,需要用户上传文件,接收文件的接口已经写好(经过测试确定可用) 现在需要在网页上提供一个文件上传的按钮.由于原生input type="file"组件太丑,考虑使用 ...
- putty怎么进入文件夹_如何利用putty工具上传文件 - 卡饭网
图解使用FTP工具上传文件以FlashFXP为例 图解使用FTP工具上传文件以FlashFXP为例 现以FlashFXP为例,图解使用FTP工具上传文件. 1: 运行 LeapFTP,点击1处(站点- ...
最新文章
- windows程序设计之对话框简介1
- android 打包出现错误Error: ResourceName
- 动态规划 - 装配线调度问题
- html文件已传入服务器,把html文件上传到云服务器
- go mongodb排序查询_「赵强老师」MongoDB中的索引(下)
- c语言怎么减去一个16进制数,一个简单的有关问题:像这样的16进制数怎么转换得到...
- Spark配置参数详解
- Codeforces 934C - A Twisty Movement
- linux sed命令的常用方法
- python函数作用域与闭包_python基础-08-内置函数、作用域、闭包、递归
- 父亲购房后去世,房产证还没办,后妈和父亲没结婚,户口簿上有父亲,儿子,妹妹,那房产证应该写谁的名字?
- Auto-ML之自动化特征工程
- 【个人笔记】OpenCV4 C++ 图像处理与视频分析 10课
- Microsoft ASP.NET 4 Step by Step
- Python全栈_Day5_用户、群组、权限
- Vue 项目(网站应用)接入QQ互联qq登录接口 汇总
- python经纬度转换xy坐标公式_python 经纬度和平面坐标相互转换利用米勒坐标系
- 微信小程序实现图片下载功能
- mysql 1114_mysql 解决 ERROR 1114 (HY000): The table 'XXX' is full
- Office2021专业增强版激活报错0xc004f074以及尝试办法
热门文章
- mybatis中LIKE模糊查询的几种写法以及注意点
- TCP控制字段标志:URG、ACK、PSH、RST、SYN、FIN
- linux mmap 内存映射 mmap() vs read()/write()/lseek()
- sockaddr和sockaddr_in的区别
- USB OTG 的进一步理解
- jni中native通过adb输出
- [react] React中如何监听state的变化?
- [css] pseudo-class与pseudo-element有什么区别?
- [js] 说说你对JS中暂性死区的理解,它有什么运用场景?
- “约见”面试官系列之常见面试题之第八十一篇之webpack(建议收藏)