JSP开发之Struts2实现下载功能的实例

JSP开发之Struts2实现下载功能的实例

1、Action 类

package com.favccxx.strutsdemo; 

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream; 

import com.opensymphony.xwork2.ActionSupport; 

public class DownloadAction extends ActionSupport { 

  private static final long serialVersionUID = -7758584364932001138L; 

  private InputStream inputStream; 

  @Override
  public String execute() throws Exception {
     inputStream = new FileInputStream(new File("D:\\芒果豆.jpg"));
     return SUCCESS;
  } 

  public InputStream getInputStream() {
    return inputStream;
  } 

  public void setInputStream(InputStream inputStream) {
    this.inputStream = inputStream;
  } 

}

2、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> 

  <constant name="struts.enable.DynamicMethodInvocation" value="false" />
  <constant name="struts.devMode" value="true" /> 

  <package name="default" namespace="/" extends="struts-default"> 

    <default-action-ref name="index" /> 

    <global-results>
      <result name="error">/error.jsp</result>
    </global-results> 

    <global-exception-mappings>
      <exception-mapping exception="java.lang.Exception" result="error"/>
    </global-exception-mappings> 

    <action name="index">
      <result type="redirectAction">
        <param name="actionName">HelloWorld</param>
        <param name="namespace">/example</param>
      </result>
    </action> 

    <action name="download" class="com.favccxx.strutsdemo.DownloadAction">
      <result name="success" type="stream">
        <param name="contentType">application/octet-stream</param>
        <param name="inputName">inputStream</param>
        <param name="contentDisposition">attachment;filename="mongo.jpg"</param>
        <param name="bufferSize">1024</param>
      </result>
    </action>
  </package> 

</struts>

3、web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 

  <display-name>Struts Blank</display-name> 

  <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.html</welcome-file>
  </welcome-file-list> 

</web-app>

4、JSP

<a href="/download" rel="external nofollow" >无注解下载</a>

以上就是JSP实现下载功能的实例代码,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

(0)

相关推荐

  • Struts2开发 基本配置与类型转换

    一.Action配置中的各项默认值 <package name="csdn" namespace="/test" extends="struts-default">        <action name="helloworld" class="cn.csdn.action.HelloWorldAction" method="execute" > <resu

  • struts2开发流程及详细配置

    一:Struts开发步骤: 1. web项目,引入struts - jar包 2. web.xml中,引入struts的核心功能 配置过滤器 3. 开发action 4. 配置action src/struts.xml 二:详细配置    1.引入8个jar文件 commons-fileupload-1.2.2.jar   [文件上传相关包] commons-io-2.0.1.jar struts2-core-2.3.4.1.jar           [struts2核心功能包] xwork-

  • 使用maven+eclipse搭建struts2开发环境

    一.web分层结构简介1.web[细]粒度分层结构: 按细粒度分层可以分为以下6种: 1).表现层:html/css/js/jsp 2).控制层:servlet 3).实体层:javabean 4).业务逻辑层:javabean 5).持久层:jdbc/c3p0/dbutils 6).数据层:mysql/oracle 2.web[粗]粒度分层结构(重点): 按粗粒度可以分为3层: 1).由上面的1).2).3)组成mvc 什么是MVC? m即为model(模型层),v为view(表现层),c为c

  • Struts2开发环境搭建 附简单登录功能实例

    首先是搭建Struts2环境. 第一步 下载Struts2 去Struts官网 http://struts.apache.org/ 下载Struts2组件. 截至目前,struts2最新版本为2.3.1.3,下载struts-2.3.16.3-all.zip,解压,放着. 第二步 新建Web Project并导入jar包 在MyEclispe中新建Web Project,然后找到解压的Struts2包,在里面apps文件夹下找到struts2-blank.war,解压这个WAR文件,将里面WEB

  • JSP开发之Struts2实现下载功能的实例

    JSP开发之Struts2实现下载功能的实例 1.Action 类 package com.favccxx.strutsdemo; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import com.opensymphony.xwork2.ActionSupport; public class DownloadAction extends ActionSupport { priva

  • JSP 开发之Struts2内建自定义拦截器

    JSP 开发之Struts2内建自定义拦截器 Struts2的自定义拦截器主要用于解析请求参数,将请求参数赋值给Action属性,执行数据校验,文件上传等等操作.当需要扩展Struts2的功能时,我们只需要提供相应的拦截器并将它配置到Struts2容器中即可:当我们不需要使用的时候,只需要取消它在Struts2容器中的配置就行了. 1>配置拦截器主要使用四个配置元素: :用于配置自定义拦截器 :用于引用拦截器或者拦截器栈 :用于配置自定义拦截器栈,一个拦截器栈由多个拦截器构成,也可以包含其他的拦

  • jsp 开发之struts2中s:select标签的使用

    jsp 开发之struts2中s:select标签的使用 1.第一个例子: <s:select list="{'aa','bb','cc'}" theme="simple" headerKey="00" headerValue="00"></s:select> 2.第二个例子: <s:select list="#{1:'aa',2:'bb',3:'cc'}" label=&qu

  • JSP 开发之Spring Security详解

    JSP 开发之Spring Security详解 前言: spring Security是一个能够为基于Spring的企业应用系统提供描述性安全访问控制解决方案的安全框架.它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring IoC(依赖注入,也称控制反转)和AOP(面向切面编程)功能,为应用系统提供声明式的安全访问控制功能,减少了为企业系统安全控制编写大量重复代码的工作. Spring Security 的前身是 Acegi Security ,是 Spring 项

  • java JSP开发之Spring中Bean的使用

    java JSP开发之Spring中Bean的使用 在传统的Java应用中,bean的生命周期很简单.使用Java关键字new进行bean实例化,然后bean就可以被使用了,一旦该bean不再使用,Java就自动进行垃圾回收.然而,在Spring中,bean的生命周期就比较复杂了.下面是一个bean装载到Spring应用上下文的过程: 如图所示:在你准备调用bean之前,bean工厂执行了若干启动步骤: 1.Spring对bean进行实例化: 2.Spring将值和bean的引用注入到bean对

  • JSP 开发之 releaseSession的实例详解

    JSP 开发之 releaseSession的实例详解 Hibernate可以实现分页查询,昨天试了一下,分页效果不错.但是发现了一个问题,就是当请求超过20次的时候页面就会卡死.经检查,是卡在分页查询这一块. 应用程序采用struts2 + spring2 + hibernate3架构 连接池配置使用的是c3p0, 最大池大小为20, 很显然是连接池耗尽导致的. 增加连接池大小只是饮鸩止渴,总还有耗尽的时候,必须找到根本原因. Dao类的分页查询方法如下: java 代码  public Li

  • JSP开发之hibernate之单向多对一关联的实例

    JSP开发之hibernate之单向多对一关联的实例 一对多的基础上来测试单向多对一的关联 hibernate多对一的关联关系定义: 和单向一对多不同的是:一对多是在意的一方的一方定义set集合,在映射文件中 <set name="" table=""> <key name="" /> <one to many class=" 多的一方的包加类名"/> </set> :单向多对一

  • JSP 开发之Spring BeanUtils组件使用

    JSP 开发之Spring BeanUtils组件使用 用于演示的javabean import java.util.Date; public class People { private String name; private int age; private Date birth; public People(String name, int age, Date birth) { super(); this.name = name; this.age = age; this.birth =

  • JSP 开发之hibernate配置二级缓存的方法

    JSP 开发之hibernate配置二级缓存的方法 hibernate二级缓存也称为进程级的缓存或SessionFactory级的缓存. 二级缓存是全局缓存,它可以被所有的session共享. 二级缓存的生命周期和SessionFactory的生命周期一致,SessionFactory可以管理二级缓存. 常用的缓存插件 Hibernater二级缓存是一个插件,下面是几种常用的缓存插件: EhCache:可作为进程范围的缓存,存放数据的物理介质可以是内存或硬盘,对Hibernate的查询缓存提供了

  • JSP 开发之hibernate的hql查询多对多查询

    JSP 开发之hibernate的hql查询多对多查询 在hibernate的hql查询中,假如说分组信息与试题是多对多关系,那么我们要在hql查询中对含有多个分组信息的试题都要查询出来.并同时查询出相应试题的分组信息.那么此时hql要这样写: String[] groupIds = ojbects[1].toString().split(","); String hql = "SELECT distinct a.id FROM TmEduExamContent a"

随机推荐