index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<%
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>My JSP 'index.jsp' starting 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>
<form
action="${pageContext.request.contextPath}/csdn/UploadAction_upload.action"
method="post" enctype="multipart/form-data">
上传文件:
<input type="file" name="upload">
<br />
<input type="submit" value="上传" />
</form>
错误信息:
<br />
<s:fielderror></s:fielderror>
</body>
</html>
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<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>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
struts.xml
<?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>
<!-- 常量的配置 -->
<include file="struts-constant.xml"/>
<package name="user" namespace="/csdn" extends="struts-default">
<global-results>
<result name="input">/index.jsp</result>
</global-results>
<action name="UploadAction_*" class="www.csdn.international_upload.action.UploadAction" method="{1}">
<interceptor-ref name="fileUpload">
<!-- 设置文件上传的类型:Tomcat/conf/web.xml文件 就有文件的类型的名称 -->
<param name="allowedTypes">image/jpeg,image/pjpeg,application/octet-stream,application/x-zip-compressed</param>
<param name="maximumSize">5242880</param>
</interceptor-ref>
<!-- 默认的拦截器栈 -->
<interceptor-ref name="defaultStack"/>
<result name="success">/index.jsp</result>
</action>
</package>
</struts>
struts-constant.xml
<?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>
<!-- 常量的配置 -->
<!-- struts2的后缀 -->
<constant name="struts.action.extension" value="action"/>
<!-- 编码方式 -->
<constant name="struts.i18n.encoding" value="UTF-8"/>
<!-- 浏览器静态缓存最好处于关闭状态 -->
<constant name="struts.serve.static.browserCache" value="false"/>
<!-- struts.xml文件当被修改后 重新加载,开发阶段最好打开 -->
<constant name="struts.configuration.xml.reload" value="true"/>
<!-- 处于开发阶段 最好把开发模式打开 会打印更多的详细错误信息 -->
<constant name="struts.devMode" value="true"/>
<!-- 设置临时保存的路径 -->
<constant name="struts.multipart.saveDir" value="c:\\day\\"/>
<!-- 设置文件上传的大小 ,这个值必须大于等于拦截器中的值 -->
<constant name="struts.multipart.maxSize" value="5242880"/>
<!-- 国际化资源文件的基本名称 -->
<constant name="struts.custom.i18n.resources" value="csdn"/>
</struts>
UploadAction.java
package www.csdn.international_upload.action;
import java.io.File;
import java.io.IOException;
import javax.servlet.ServletContext;
import org.apache.commons.io.FileUtils;
import org.apache.struts2.ServletActionContext;
import org.apache.struts2.interceptor.FileUploadInterceptor;
import com.opensymphony.xwork2.ActionSupport;
public class UploadAction extends ActionSupport {
private File file;
private String contentType;
private String filename;
public void setUpload(File file) {
this.file = file;
}
public void setUploadContentType(String contentType) {
this.contentType = contentType;
}
public void setUploadFileName(String filename) {
this.filename = filename;
}
public String upload() {
String path = ServletActionContext.getServletContext().getRealPath(
"WEB-INF/uploads");
File pfile = new File(path);
if (!pfile.exists()) {
pfile.mkdirs();
}
try {
FileUtils.copyFile(file, new File(pfile, System.currentTimeMillis()
+ "_" + filename));
return SUCCESS;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return INPUT;
}
}
两个配置文件:
运行结果界面:
404. 左叶子之和计算给定二叉树的所有左叶子之和。示例: 3 / \ 9 20 / \ 15 7在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24/** * Definition for a binary tree node. * public class TreeNode { * int val; * T...
说说如何中止一个正在运行的线程?一、不正确的线程终止 - Stop中止线程,并且清楚监控锁的信息,但是可能导致线程安全问题,JDK不建议用。public class Demo3 { public static void main(String[] args) throws InterruptedException { StopMyThread thread = new Sto...
发声体和声音扬声器(speaker)和蜂鸣器(piezo transducer)piezoelectric(压电感应)音频:振动的频率音高(pitch):声音的频率(音频)高低tone()指令:tone(输出端口, 频率, 持续时间);或 tone(输出端口, 频率),若不指定时间,Arduino将持续发声,直到执行noTone()为止。动手做 13-1 演奏一段马里奥旋律程序代...
Centos7下监控磁盘使用量超过阈值自动发送报警邮件前言一、下载安装sendEmail工具二、编写disk_check.sh文件三、运行disk_check.sh四、加入定时任务前言前段时间公司有台Centos7的服务器因为磁盘满了,导致服务不可以,今天有空特来总结一下,如何监控centos系统磁盘,设置阈值,定时检测,自动发送邮件报警。一、下载安装sendEmail工具cd /opt #安装到opt目录下wget http://c aspian.dotconf.net/menu/Softwa
王刑天是个很酷的程序员,他总是带着耳机,无论是上班路上,还是办公室,感觉世界就是他一个人的存在。公交车上刑天带着耳机闭上眼睛,脑海里浮现的竟然是一行一行的代码,并非在欣赏音乐。音乐对于他来说主要作用不是悦耳,或动听,而是噪音。但是这种噪音对于程序员来说的非常好的静心神曲,无论是优美的、JD的、轻音乐的、还是哀怨的、还是歌颂爱情的,都是可以接受的,只要可以隔绝外部真正的噪音,就行了。一天,公交车上两个长的还可以的妹子正在聊办公室里的八卦,其中一个妹子A说“你知道那个每天鸡窝头的男同事叫什么名字吗?感..
问题描述: 给定含有n个元素的多重集合S,每个元素在S中出现的次数称为该元素的重数。多重集S中重数最大的元素称为众数。例如,S={1,2,2,2,3,5}。多重集S的众数是2,其重数为3。对于给定的n个自然数组成的多重集S,计算S的众数及其重数 。问题分析: 1、 分治法 分治法解题过程主要分为分、治、合三个步骤“,应用该方法的基本过程如下: (1) 将原问题分解为若干个规模较小的子问题
arm32 一个 vma 中 有 两个 index // armv6 RM ref P730 L1(一级页表,即页目录表)index 为 12位,所以一级页表的大小为 2^12*4B=16KB L2(二级页表,页表)index为8位,所以二级页表的大小为2^8*4B=1KB // 所以一套(一级和二级)页表的"最大"大小为 // 16KB + 16KB/4B * 1KB = 4MB + 16KB // 一级页表大小 + 所有的 二级页表大小arm32 硬件上 有 TTBR0 TTBR1
开头经常会有人问:“现在学习Android开发还有前景?”我的看法是现在只是市场趋于平稳了,对开发人员的要求越来越好了,这并不代表没有前景了。移动开发不等于App开发,所有新的技术浪潮其实都可以融入到移动开发的体系里,比如IOT、音视频、边缘计算、VR/AR,我们要做的,只是打好基础,随时准备战斗。其次,从心态上,我觉得我们千万不要把时间浪费在纠结问题上,而是应该放在解决问题上。“王者荣耀”“吃鸡”并不能解决我们的焦虑,拥抱变化,才能拥有未来,让我们共勉。移动端的招聘中高端的职位还是很多的,看了下拉勾
ImageView的Scaletype决定了图片在View上显示时的样子,如进行何种比例的缩放,及显示图片的整体还是部分,等等。设置的方式包括:1. 在layout xml中定义android:scaleType="CENTER"2. 或在代码中调用imageView.setScaleType(ImageView.ScaleType.CENTER);接下来,将对Scal
python岗位数据分析报告数据集为针对智联,boss,拉勾三个招聘网站的爬取,爬取关键字段:语言为python,java,c;城市为 北上广深郑杭;数据分类保存在 ‘’python招聘数据.xlsx‘’ 表格中研究问题 :一. python相关岗位(数据分析,数据挖掘,开发工程师)地区(北京地区内)分布(1) 数据处理# 导入模块import pandas as pd# 读取数据full_data = pd.read_excel('python招聘数据.xlsx',sheet_name
声明:本系列博客是根据SGG的视频整理而成,非常适合大家入门学习。《2021年最新版大数据面试题全面开启更新》1 配置SQL 客户端启动时可以添加 CLI 选项,具体如下。./bin/sql-client.sh embedded --helpMode "embedded" submits Flink jobs from the local machine. Syntax: embedded [OPTIONS] "embedded" mode options: -
搭建SpringMvc+Spring+MyBatis,下面俩个地址是 详细处理:http://blog.csdn.net/cool_easy/article/details/42963573 http://blog.csdn.net/Michael_HM/article/details/52542710?locationNum=3