Apache Struts

Struts2 文件上传 对XHR的请求 (ajax + formData 上传的文件) 拿不到文件

北城余情 提交于 2019-12-02 20:46:18
Struts2 对文件上传是通过 file upload 拦截器实现的,具体引入方法见 这里 。然而 File Upload 拦截器似乎对于 XHR 过来的文件上传请求无法响应。 MMP老子试了半天。 用ajax + formData 的方式 文件能传出去(在浏览器HTTP请求中能看到) HTML: <input id="file" type="file" name="upload"/> <input id="uploadBtn"class="btn-b-m" type="button" value="上传" /> JS: $("#uploadBtn").click(function () { var formData = new FormData(); formData.append("upload", $("#file").get(0).files[0]); jQuery.ajax({ enctype: 'multipart/form-data', url: '/json/blackWhiteLimit/fileUpload.action', type: "post", data: formData, processData: false,//用于对data参数进行序列化处理 这里必须false contentType: false, //必须 success:

SpringMVC基础及应用-李守红

那年仲夏 提交于 2019-12-02 07:14:17
本文视频观看地址:http://www.wisdomdd.cn/Wisdom/resource/articleDetail.htm?resourceId=1141 视频大纲 ³SpringMVC简介和环境搭建 ³第一个SpringMVC实例 ³SpringMVC配置讲解 ³SpringMVC和Spring集成 ³SpringMVC图片和文件访问上传 ³SpringMVC使用json交换数据 ³SpringMVC+spring +hibernate 开发简单项目 SpringMVC简介 ³SpringMVC和Struts一样是一个MVC框架,和Spring无缝连接。和Struts2有点相似。 ³Spring MVC属于SpringFrameWork的后续产品,Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。 ³使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还可以是 Struts 这样的 Web 框架。 来源: oschina 链接: https://my.oschina.net/u/3743971/blog/1934230

Apache Struts最新漏洞 远程代码执行漏洞预警 2018年11月08日

﹥>﹥吖頭↗ 提交于 2019-12-01 12:22:33
2018年11月8日,SINE安全监控检测中心,检测到Apache Struts官方更新了一个Struts漏洞补丁,这个漏洞是Apache Struts目前最新的漏洞,影响范围较广,低于Apache Struts 2.3.35的版本都会受到此次Struts漏洞的攻击,目前apache官方更新的漏洞补丁,主要是修复commonsfileupload上传库出现的安全问题,这个库可以远程执行代码,上传木马后门到网站服务器中去。 Apache Struts 漏洞描述 某知名的安全组织向Apache Struts官方反馈了该漏洞的详细细节,其中就包括了之前版本出现的漏洞都是因为commons fileupload上传库而导致产生的口袋,目前的apache版本都在使用低版本的commons fileupload库,大多数都默认使用,导致攻击者可以利用上传漏洞,进行远程代码执行,提权,攻击服务器。Apache Struts 2.5.10以上的高版本,不受此次漏洞的影响。 Apache Struts漏洞级别 严重 Apache Struts 安全建议: 升级Apache Struts版本的到2.5.18以上的版本 升级Struts的上传库,commons fileupload的版本到最新版本1.3.3,Struts commons fileupload fileupload/download

好程序员Java学习路线分享JavaScript基本数据类型分析

眉间皱痕 提交于 2019-11-30 19:02:22
好程序员Java学习路线分享JavaScript基本数据类型分析,相信接触过Java的小伙伴们都知道,Java是一门强大的编程语言,在现今互联网行业中,Java的身影可谓是随处可见的,可能刚刚开始学习的小伙伴会因Java编程语言庞大的体系而震惊,但是知识是需要日积月累的,没有人能够一口吃成个胖子。我们所看到的Java高手们,也是通过一行行代码努力编写出来。那么作为新人在初学Java的时候应该学习哪些技术呢? 1、HTML:HTML超文本标记语言,这是用来在浏览器上生成用户所看到的网页的,我们需要对他有一个深入的了解,目前市场上在用的是HTML5。 2、CSS:他是HTML的样式表,用来显示浏览器上网页的样式的,也就是控制网页的字体,颜色,大小,宽高,也可以使网页在浏览器上的效果变成动态的。 3、JavaScript,它和Java在语法上面有一部分hi比较相似,但是它们是相对独立的语言,JS能够让某些简单的业务处理在浏览器上计算并提交到后台,还能够改变浏览器的CSS,让我们制作出来的网页的功能更为强大。   看到这里,许多人会问,Java是一个后端开发语言,为什么还要去学前端的语言知识呢?   现在各大企业对于人才的需求,越来越高,综合型人才能够为自己提高不少竞争力,而且,如果工作中需要你去开发一个网站的后台,在和前端同事沟通的时候,你对前端语言已经有深入的了解了

Struts2 返回json格式配置

那年仲夏 提交于 2019-11-30 18:56:35
介绍如何使用Struts2的struts2-json-plugin.jar插件返回JSON数据。 一、其中主要步骤有: 1.将struts2-json-plugin.jar插件拷贝到项目的"/WEB-INF/lib"文件夹下; 2.编写Action类文件; 3.在struts.xml文件中配置这个Action,这个Action所在的"<package.../>"必须继承”json-default“, Action 的 Result 类型为 json ,即 type="json" ,而且不对应任何视图资源。 二、示例代码: Action类文件: package com.example.action; import java.util.ArrayList; import com.opensymphony.xwork2.ActionSupport; public class StrutsJsonAction extends ActionSupport { private int i=123; private String str="str"; private int[] array={1,2,3}; private ArrayList<String> list; public int getI() { return i; } public void setI(int i) { this

纠结应该先学Python还是Java?看完就有数了

不想你离开。 提交于 2019-11-30 12:24:33
准备学习编程前,你一定会打开电脑搜索一下“先学 Python 还是先学 Java ?”扑面而来的是海量回答。 如果你问一名 Java 程序员,肯定会建议你先学 Java ,因为他们认为Python像个乳臭未干的黄毛小子。但如果你问Python程序员,可能会得到一个完全相反的答案,他们认为Java是刻板啰嗦的老大爷,而人生苦短,我用 Python 。 但别担心,今天我们将会从 语言特色 学习曲线 职业方向 市场需求 等多个方面为你解答 “选择 Python 还是Java的人生难题” 语言历史 Python:生而为简 Python是一门拥有简洁语法的高级编程语言。一个名为Guido van Rossum的荷兰大佬在1991年设计了它。Rossum设计这门语言的初衷,就是为了让代码读起来更轻松,并且让程序员们比起用其他语言,可以写更少的代码,事半功倍。 Java:出生就想当老大 而Jame Gosling在1995年设计了Java。 Java是一门以Class为单位,高度面向对象的高级编程语言。Java的设计初衷是“写一次代码,在哪里都可以用。” Java可以完成任何规模的任务,所以它也是很多公司在做商业级项目的时候的普遍选择。 语言本身 Python: 语法简洁,容易上手 Java:语法稍微复杂 从语言本身来说,Python是出了名的简洁,容易上手

spring的controller是单例模式,但是是多线程,各个线程之间不影响

我只是一个虾纸丫 提交于 2019-11-30 04:03:51
spring mvc 的Controller类默认Scope是单例(singleton)的 使用Spring MVC有一段时间了,之前一直使用Struts2,在struts2中action都是原型(prototype)的, 说是因为线程安全问题,对于Spring MVC中bean默认都是(singleton)单例的,那么用@Controller注解标签注入的Controller类是单例实现的? 测试结果发现spring3中的controller默认是单例的,若是某个controller中有一个私有的变量i,所有请求到同一个controller时,使用的i变量是共用的,即若是某个请求中修改了这个变量a,则,在别的请求中能够读到这个修改的内容。 若是在@Controller之前增加@Scope(“prototype”),就可以改变单例模式为多例模式 以下是测试步骤,代码与结果. 1. 如果是单例类型类的,那么在Controller类中的类变量应该是共享的,如果不共享,就说明Controller类不是单例。以下是测试代码: import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.stereotype

话说对 Hibernate 的吐槽很没道理,我竟无言以对

我的梦境 提交于 2019-11-29 05:54:39
在 Java 的世界里有一些超级重量级的框架,很多 Java 开发者对它们甚至比对 JDK 本身还熟悉。没错,我说的就是 Struts、Spring 和 Hibernate,或者就把这三者称为 Java 的三剑客,传说中大名鼎鼎的 SSH。 尽管我今年只有 19 岁,但已有十好几年的 Java 开发经验,目前简历里只敢说熟悉(非精通) Java 编程语言。曾经是 Struts 和 Hibernate 的深度用户。对于 Web 框架我的轨迹是:Servlet -> Struts 1.x -> No Framework ,No Framework 其实说的不准确,应该是自己对 Servlet 或者 Filter 的一个简单封装。而在数据库访问这块轨迹是:JDBC -> Hibernate -> DbUtils。我觉得 DbUtils 说的也不准确,因为我愿意尝试各种轻量级的 ORM 框架,而 DbUtils 严格意义上并不是一个 ORM 的东西,充其量就是一个 JDBC 的工具包。 回想下当你在写各种 JDBC 程序的时候,假设一个表有 20 个字段,那么一个插入记录的方法可能就有小 30 行代码,因为有大量的 setString\setInteger 之类的方法需要调用。后来出现了 Hibernate 后感觉原来写代码也是如此的享受,之前 30 行的代码现在只需要两三行搞定

?为什么要学这个技术(有什么优秀的地方,可以解决哪些问题?

帅比萌擦擦* 提交于 2019-11-28 09:28:55
今天来总结一下Struts2的知识点,学习编程我的思路一般是这样的:     ① why ?为什么要学这个技术(有什么优秀的地方,可以解决哪些问题?)。     ②what ? 这个技术是什么玩意?有什么牛逼的地方值得我们学习,这个技术的核心是什么。     ③How ? 怎么学?基本技术都是自己自学的,我的学习思路就是,看视频,拿例子来学习知识,在敲代码的过程中理解问题。在此期间如果遇到不懂得或者是感觉很模糊的地方,及时的上网找相应的博客进行理解。基本上就是在敲代码中学习技术。并且对技术要及时的进行总结,但是我不推荐一个知识点总结一次,这样根本没有那么多的时间,最好的是看完之后,从全局出发,对整个知识进行积累和总结,在总结的过程中,多看一下其他人的博客,集思广益,收获会很大。     ④Do ! 做!做是什么?是理论到实践的必经之路,是你成为大牛的必经之路,找个项目,认真的做完,对一些常用的技巧和方法进行归纳整理,发布到自己的博客上,在做项目的时候,有很多的途径,我最喜欢 的是看视频了,只要你前面没偷懒,认真的学习了,在这个时候你就会发现都是so easy的事情。在做项目的时候,要注意的是,遇到不会的,或者是有新的理解一定要去探索,这样会知道的越来越多,同时为了防止遗忘,及时的对博客进行更新,或许你遇到的问题也可能是别人遇到的,这样你的人气值就上来了!   比如对Struts2

关于 Struts2 和 SpringMVC 区别?

拟墨画扇 提交于 2019-11-27 20:43:49
又是一个常问的面试题,真是面试一次长一次见识。 那我们先就从原理出发: springMVC 原理(见下图): SpringMVC 流程 1、 用户发送请求至前端控制器 DispatcherServlet。 2、 DispatcherServlet 收到请求调用 HandlerMapping处理器映射器。 3、 处理器映射器找到具体的处理器(可以根据 xml 配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。 4、 DispatcherServlet 调用 HandlerAdapter 处理器适配器。 5、 HandlerAdapter 经过适配调用具体的处理器(Controller,也叫后端控制器)。 6、 Controller 执行完成返回 ModelAndView。 7、 HandlerAdapter 将 controller 执行结果 ModelAndView 返回给 DispatcherServlet。 8、 DispatcherServlet 将 ModelAndView 传给 ViewReslover视图解析器。 9、 ViewReslover 解析后返回具体 View。 10、DispatcherServle 根据 View 进行渲染视图(即将模型数据填充至视图中)。 11、