当前位置 : 主页 > 手机开发 > harmonyos >

Java_JavaEE_轻量级(SSH)_Struts2文件下载支持;

来源:互联网 收集:自由互联 发布时间:2023-08-26
功能:提供Struts2文件下载支持实现; =客户端页面代码(stuts2Down.jsp) span style="font-size:18px;"%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %%@ taglib prefix="s" uri="/struts-tags"%!DOCTYPE


功能:提供Struts2文件下载支持实现;

=>客户端页面代码(stuts2Down.jsp)

<span style="font-size:18px;"><%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<title>Struts2_文件下载</title>
</head>
<body>
	<h1>Struts2_文件下载</h1>
	<ul>
		<li>
		下载Logo图形:
			<a href="download.action">下载图形文件</a> 
		</li>

		<li>
		下载压缩文件:
			<a href="download2.action">下载压缩文件</a>
		</li>
	</ul>
</body>
</html></span>

=>Struts2配置文件(struts.xml)

<span style="font-size:18px;"><?xml version="1.0" encoding="GBK"?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
	"http://struts.apache.org/dtds/struts-2.1.7.dtd">
<struts>
	<constant name="struts.custom.i18n.resources" value="mess"/>
	<constant name="struts.i18n.encoding" value="GBK"/>
	
	<!-- action配置 -->
	<package name="lee" extends="struts-default">
		<!-- (有权限)文件下载Action -->
		<action name="download2" class="org.crazyit.app.action.AuthorityDownAction">
			<!-- 参数:被下载资源位置 -->
			<param name="inputPath">\images\wjc_logo.zip</param>

			<result name="success" type="stream">
				<param name="contentType">application/zip</param>
				<!-- 参数:指定由getTargetFile()方法返回被下载文件的InputStream流 -->
				<param name="inputName">targetFile</param>
				<param name="contentDisposition">filename="wjc_logo.zip"</param>
				<!-- 参数:指定下载文件缓冲大小 -->
				<param name="bufferSize">4096</param>
			</result>

			 <result name="login">/WEB-INF/content/login.jsp</result>
		</action>

		<!-- 登录Action -->
		<action name="login" class="org.crazyit.app.action.LoginAction">
			<result>/WEB-INF/content/stuts2Down.jsp</result>
		</action>

		<!--处理请求,避免直接访问页面-->
		<action name="*">
			<result>/WEB-INF/content/{1}.jsp</result>	
		</action>

	</package>
</struts></span>

=>Action下载实现(AuthorityDownAction.java)

<span style="font-size:18px;">package org.crazyit.app.action;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.*;
import java.util.Map;
import java.io.InputStream;
/**
 * AuthorityDownAction_class
 * Description: 受权限控制的下载;
 * Date: 2014-12-12 9:09
 * @author cyb_23
 * @version 1.0
 */
public class AuthorityDownAction implements Action 
{
	// 下载文件资源位置(在Action配置时设置)
	private String inputPath;
	public void setInputPath(String value)
	{
		inputPath = value;
	}
	
	// 下载文件输入流
	public InputStream getTargetFile() throws Exception 
	{
		//ServletContext提供getResourceAsStream()方法返回指定文件对应的输入流 ;
		return ServletActionContext.getServletContext().getResourceAsStream(inputPath);
	}
	
	// execute:处理程序;
	public String execute() throws Exception
	{
		//ActionContext实例
		ActionContext ctx = ActionContext.getContext();

		//HttpSession实例
		Map session = ctx.getSession();
		String user = (String)session.get("user");	// 取出user值,在登录时被放入Session中;

		//判断Session里的user是否通过检查
		if ( user !=  null && user.equals("cyb_23"))
		{
			return SUCCESS;
		}
		ctx.put("tip", "您还没有登录,或者登录的用户名不正确(没有权限),请重新登录!");
		return LOGIN;
	}
}
</span>





特别说明:如果能帮助到您,请您留下点滴痕迹,让我知道我的存在是有意义的;如果不能帮助到您,请接受我的歉意

网友评论