精华内容
下载资源
问答
  •  最近在使用struts2做一个导出excel文件的时候出现了一些问题,用IE等浏览器下载的时候正常的,但是使用360,迅雷下载的时候会得到一个action文件,网上搜了下也没什么好的解决办法。不过wxinpeng提供了一个可以...

         最近在使用struts2做一个导出excel文件的时候出现了一些问题,用IE等浏览器下载的时候是正常的,但是使用360,迅雷下载的时候会得到一个action文件,网上搜了下也没什么好的解决办法。不过wxinpeng提供了一个可以解决的办法,试了下果然可以。做下笔记。

     

        1、首先在web.xml中的struts2配置中加上一个其它扩展名的拦截

    <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>*.xls</url-pattern>  
        </filter-mapping> 
    	<filter-mapping>
    		<filter-name>struts2</filter-name>
    		<url-pattern>*.action</url-pattern>
    	</filter-mapping>

          2、在struts配置中加上如下的一句话

                             <constant name="struts.action.extension" value="action,htm,xls" /> 

         就可以了,其它action中的处理是不用变的。

    展开全文
  • 前面都快放弃了,最近在学习resuful框架写api,代码实现上没出现啥问题,倒是这个path_info的环境配置把我弄的比较郁闷你一定见过类似这样的路径:http://www.04007.cn/index.php/home/index/action/3408.html,对,这...
    2c2db50cd88b77f5e8b6535b6ee16453.png

    我也配置了很多次了,前面都快放弃了,最近在学习resuful框架写api,代码实现上没出现啥问题,倒是这个path_info的环境配置把我弄的比较郁闷

    你一定见过类似这样的路径:http://www.04007.cn/index.php/home/index/action/3408.html,对,这就是phpinfo模式。从上面可以看出其有以下几个特点。

    1,URL中带有入口文件全名,即index.php,

    2,在入口文件后面依然跟有路径比如上面的/home/index/action/3408.html

    3,很多框架中后面分别是/模块/控制器/方法参数等,Thinkphp就是这样的。当然这个不一定非得是模块控制器方法的组成。

    按照常理来理解,index.php后面跟随着路径,那么index.php就相当于一个文件夹了。但实际上又不存在index.php这个文件夹,所以如果没有开启phpinfo模式,那么这个路径解析就会报找不到文件。而只有在开启phpinfo模式之后,服务器才会去执行index.php这个文件。从服务器上的配置方法也可以看出来。

    本人使用的是集成安装环境phpstudy,这个环境用的时间比较久

    先检查这三个配置

    一:

    在PHP安装文件夹下找到PHP.INI,

    ;cgi.fix_pathinfo=1

    改为

    cgi.fix_pathinfo = On

    保存,重启服务器即可

    也有的说将

    ;cgi.fix_pathinfo=1

    之前的 ; 去掉,即改为

    cgi.fix_pathinfo=1

    保存,重启服务器的。

    但是我尝试发现,这样并不能解决问题,于是决定采用第二种方法;

    二:

    打开Apache安装文件夹下的conf文件夹,找到httpd.conf文件中找到下面这段代码

    Options FollowSymLinks

    AllowOverride None

    Order deny,allow

    Deny from all

    AcceptPathInfo On //加入这行代码就OK了

    不幸的是,按照上面的方法,还是失败了。木办法,只能试下第三种方法了;

    三:

    在配置文件中加入

    AcceptPathInfo On

    这样 Apache 就可以支持针对 php 文件的 PathInfo 了。

    于是,又充满希望的试了一下,可惜,还是没有成功。

    我想,这PathInfo跟URL有关,那会不会是因为Apache服务器没有开启mod_rewrite模块的关系呢?于是,我在Apache的配置文件(Apache安装目录的conf文件夹下的httpd.conf文件)里找到:

    #LoadModule rewrite_module modules/mod_rewrite.so

    将前面的#去掉,改为:

    LoadModule rewrite_module modules/mod_rewrite.so

    下面是nginx服务器开启phpinfo模式的方法:

    location ~ [^/].php(/|$){ # comment try_files $uri =404; to enable pathinfo #try_files $uri =404; #把这行代码注释,让服务器不尝试去加载路径文件 fastcgi_pass unix:/tmp/php-cgi.sock; fastcgi_index index.php; include fastcgi.conf; include pathinfo.conf; #加载phpinfo.conf配置}

    重启nginx服务器即可。对于Apache服务器,需要先加载rewrite模块,将http.conf中的配置AllowOverride None将None改为 All,重启Apache即可。在.htaccess文件中加入

    RewriteEngine onRewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_FILENAME} !-fRewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]

    注:在配置虚拟域名的时候我的配置

    我给个我的配置成功的php.ini和httpd.comf把,我在另外一台电脑没有成功的原因可能是我多加了个这个指向到项目地址的配置,例如我下面这个配置把

    DocumentRoot "E:phpstudyWWWestful"

    Options +Indexes +FollowSymLinks +ExecCGI

    AllowOverride All

    Order allow,deny

    Allow from all

    AcceptPathInfo On

    Require all granted

    指向到了项目单项目的根地址下把

    我的配置的下载地址:

    http://download.csdn.net/download/qq_27229113/9981419

    最近在学习用restful框架写api,发现自己路由存在这个问题

    我把虚拟域名指向为www.restfulapi.com/

    虚拟域名地址指向为restfulapi这个文件夹

    我的api目录写在restful/index.php里面,有两个方法,分别是users和articles两个方法

    如果我输入http://www.restfulapi.com/restful/路由会发现还报这个错误Notice: Undefined index: PATH_INFO in E:phpstudyWWWestfulapiestfulindex.php on line 107

    {"error":"请求资源不被允许"}

    但是输入这个路由时http://www.restfulapi.com/restful/users

    便有数据反馈{"error":"用户名不能为空"}

    在代码index.php打印加载的配置

    var_dump($_SERVER);反馈结果为
    array(39) { ["REDIRECT_STATUS"]=> string(3) "200" ["HTTP_HOST"]=> string(18) "www.restfulapi.com" ["HTTP_CONNECTION"]=> string(10) "keep-alive" ["HTTP_CACHE_CONTROL"]=> string(9) "max-age=0" ["HTTP_USER_AGENT"]=> string(108) "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.79 Safari/537.36" ["HTTP_UPGRADE_INSECURE_REQUESTS"]=> string(1) "1" ["HTTP_ACCEPT"]=> string(85) "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8" ["HTTP_ACCEPT_ENCODING"]=> string(13) "gzip, deflate" ["HTTP_ACCEPT_LANGUAGE"]=> string(14) "zh-CN,zh;q=0.8" ["PATH"]=> string(272) "C:Windowssystem32;C:Windows;C:WindowsSystem32Wbem;C:WindowsSystem32WindowsPowerShellv1.0;C:Program Files (x86)Microsoft SQL Server100ToolsBinn;C:Program FilesMicrosoft SQL Server100ToolsBinn;C:Program FilesMicrosoft SQL Server100DTSBinn;C:adb" ["SystemRoot"]=> string(10) "C:Windows" ["COMSPEC"]=> string(27) "C:Windowssystem32cmd.exe" ["PATHEXT"]=> string(53) ".COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC" ["WINDIR"]=> string(10) "C:Windows" ["SERVER_SIGNATURE"]=> string(0) "" ["SERVER_SOFTWARE"]=> string(47) "Apache/2.4.23 (Win32) OpenSSL/1.0.2j PHP/5.5.38" ["SERVER_NAME"]=> string(18) "www.restfulapi.com" ["SERVER_ADDR"]=> string(9) "127.0.0.1" ["SERVER_PORT"]=> string(2) "80" ["REMOTE_ADDR"]=> string(9) "127.0.0.1" ["DOCUMENT_ROOT"]=> string(26) "E:/phpstudy/WWW/restfulapi" ["REQUEST_SCHEME"]=> string(4) "http" ["CONTEXT_PREFIX"]=> string(0) "" ["CONTEXT_DOCUMENT_ROOT"]=> string(26) "E:/phpstudy/WWW/restfulapi" ["SERVER_ADMIN"]=> string(18) "admin@phpStudy.net" ["SCRIPT_FILENAME"]=> string(44) "E:/phpstudy/WWW/restfulapi/restful/index.php" ["REMOTE_PORT"]=> string(5) "59338" ["REDIRECT_URL"]=> string(14) "/restful/users" ["GATEWAY_INTERFACE"]=> string(7) "CGI/1.1" ["SERVER_PROTOCOL"]=> string(8) "HTTP/1.1" ["REQUEST_METHOD"]=> string(3) "GET" ["QUERY_STRING"]=> string(0) "" ["REQUEST_URI"]=> string(14) "/restful/users" ["SCRIPT_NAME"]=> string(18) "/restful/index.php"["PATH_INFO"]=>string(6) "/users" ["PATH_TRANSLATED"]=> string(32) "E:phpstudyWWWestfulapi甥敳獲" ["PHP_SELF"]=> string(24) "/restful/index.php/users" ["REQUEST_TIME_FLOAT"]=> float(1505533005.973) ["REQUEST_TIME"]=> int(1505533005) } {"error":"用户名不能为空"}

    发现["PATH_INFO"]=>string(6) "/users"

    说明这个path_info配置只指向到了restful/users和restful/articles目录下我怀疑是我的路由配置的原因在打开我的 .htaccess文件夹

    RewriteEngine onRewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_FILENAME} !-fRewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]还有我发现运行这个http://www.restfulapi.com/restful/users路由的时候会经过二次跳转才访问到最终api,感觉这里存在问题

    经过测试得出下面个人结论

    在实际非api注册中的路由是www.restfulapi.com,可以完成用户注册,而我们使用resuful框架进行api注册用户时的路由是www.restfulapi.com/restful/users和文章api www.restfulapi.com/restful/articles的路由既可以是个人对路由理解不够透彻吧!总结下,上面的路由配置和php.ini和http.conf配置才是重点,完成好就可以实现php的pathinfo模式,
    展开全文
  • 修改struts的访问后缀

    2019-11-30 11:03:35
    第一种方式: 在struts.xml的配置文件中添加 <constant name="struts.action.extension" ...这里面的action,,代表输入的访问路径后缀可以.action也可以什么都不加,两个逗号就代表了什么都不加 如上面在st...

    第一种方式:

    在struts.xml的配置文件中添加 <constant name="struts.action.extension" value="do"></constant>

    name是从default.properties中找到的

    这里面的action,,代表输入的访问路径后缀可以是.action也可以什么都不加,两个逗号就代表了什么都不加

    如上面在struts.xml中修改了这个常量的值为do,那么访问的时候就可以在访问名后面加上一个  .do

    由于配置文件的加载顺序,是先default.properties后再有struts.xml,所以在struts.xml中的常量配置会把default.properties中的常量配置覆盖掉

    第二种方式

    1. 在src下创建struts.properties
    2. 添加struts.action.extension=htm
    3. 注:如果这样配置会覆盖struts.xml配置

    由于struts配置文件的加载顺序中,struts.properties是在struts.xml的后面,所以加载的时候会将struts.xml中的常量配置给覆盖掉

    第三种方式

    在web.xml中配置

    原理是一样的,也是由于配置文件的加载顺序导致的替换

     

    展开全文
  • Struts2属性文件详解

    2010-02-11 03:10:11
    该属性指定需要Struts 2处理的请求后缀,该属性的默认值是action,即所有匹配*.action的请求都由Struts 2处理.如果用户需要指定多个请求后缀,则多个后缀之间以英文逗号(,)隔开. struts.serve.static 该属性设置是否...
  • ...例子一大推,下载的时候一开始后缀名一直是action,经过很久才搞定,   一、action的xml配置 &lt;!--文件下载 --&gt; &lt;action name="downloadOBS" class="...

       公司项目中要用到利用Excel批量导入数据和并且有一个Excel模板下载功能,数据导入倒没什么问题,网上

    例子一大推,下载的时候一开始后缀名一直是action,经过很久才搞定,

     

    一、action的xml配置

    <!--文件下载 -->
      <action name="downloadOBS" class="cn.fulong.omp.web.action.ServiceProcessManagerAction" method="downloadOBS">
       <param name="directory"></param><!-- 一定要是action中的成员变量,并提供set和get方法 -->
          <result name="success" type="stream">
              <param name="contentType">text/plain</param>
              <param name="inputName">inputStream</param><!-- 指定返回流的方法为getInputStream()-->
              <param name="contentDisposition">
                    attachment;filename="${filename}"<!-- filename为下载后的文件名,一定要是action中的成员变量,并提供set和get方法,这步决定了你的文件名的后缀,后缀名为action时,一定是在这里错了-->
              </param>
              <param name="bufferSize">2014</param>
          </result>
      </action>

    二、action的写法

    private String filename;
    private String directory;

     

     public String downloadOBS() {
      return SUCCESS;
     }
     public InputStream getInputStream() throws IOException {
      String separator = java.io.File.separator;
      String fileName = "";
      // 导入线下服务成果的Excel表格数据表模板文件名称
              filename = "服务成果.xlsx";
      try {
       filename = new String(filename.getBytes(), "ISO-8859-1");

       //这里要转码,如果是文件名是中文就会乱码,文件名是英文的话,这步不写也没问题
       fileName = Platform.getInstance().getRealPath() + separator
         + "file" + separator + "fdsasaggg.xlsx";

    //拿到文件名,该文件放在根路径下的file文件夹下
       System.out.println(fileName);
       InputStream is = new FileInputStream(fileName);

    //拿到文件流
       if (is != null) {
        return is;
       } else {
        return null;
       }
      } catch (Exception e) {
       return null;
      }
     }

    public get....

    public set....

    分析:

    问题一:下载后的文件名称为.action

         刚接触Struts2下载的孩子很容易就出现下载后的文件名为.action的情况,我当时是因为没有理清文件下载的流程,被filename和fileName给搞乱了,filename是指下载后的文件名,fileName是指项目中文件的名称(绝对路径),作用是来生成文件流的。

    问题二:中文乱码问题,下载后的文件只出现文件后缀名

         加上filename = new String(filename.getBytes(), "ISO-8859-1"); 因为表单提交的时候默认用的编码是ISO-8859-1

       

     

     

    展开全文
  • SpingMVC 下载文件问题

    2017-03-09 13:20:11
    -- 这里的配置我的理解自动给后面action的方法return的字符串加上前缀和后缀,变成一个 可用的url地址 --> <property name="prefix" value="/WEB-INF/jsp/" /> <property name="suffix" value=".jsp" /> ...
  • Action返回的一个真实路径的时候,视图...当Action返回的逻辑路径的时候,我们必须要在配置文件中注册视图解析器并为该逻辑路径添加前缀和后缀 转载于:https://www.cnblogs.com/moxiaotao/p/9546087.html...
  • -- 去掉struts2请求后缀 --> 1. <constant name="struts.action.extension" value=","> 1. 1. 1. <action name="*List?id=*" method="{1}" class="OrderActionBean" > 1. <param name="id">{2} 1. <!--...
  • -- Struts2处理的请求后缀,默认值是action --> <constant name="struts.action.extension" value="do" /> <!-- 国际化资源文件 --> <default-action-ref name="indexPage" /> ...
  • 当然已知的不利之处在于PHP由于开放源码项目,没有什么商业支持,并且由此而带来的执行速度缓慢(直到PHP4之前)。但是PHP的邮件列表很有用而且除非你正在运行像Yahoo!或者Amazon.com这样的极受欢迎的站点,你...
  • DTD文件一个ASCII的文本文件后缀名为.dtd。例如:myfile.dtd。 为什么要用DTD文件呢?我的理解它满足了网络共享和数据交互,使用DTD最大的好处在于DTD文件的共享。(就是上文DTD说明语句中的PUBLIC属性)。...
  • 访问Servlet API Action搜索顺序 动态方法调用 指定多个配置文件 ... 首先我们了解什么是Servlet API  httpRequest、httpResponse、servletContext 3个api对应jsp面向对象:request、respons...
  • struts2的常量、动态方法调用、接受请求参数处理、类型转换 ...为什么是.action 并且.action能不能修改?  在struts2-core-2.3.8.jar的org.apache.strut2.default.properties  文件中找到后缀为.
  • struts2的常量、动态方法调用、接受请求参数处理、类型转换 ...为什么是.action 并且.action能不能修改?  在struts2-core-2.3.8.jar的org.apache.strut2.default.properties  文件中找到后缀为.
  • 前言 其实在 linux mint 桌面上右键弹出的...在目录 /home/用户名/.local/share/nemo/actions 新建几个文件, 文件的名字没有要求(起什么名字不影响右键菜单显示的名字),但是后缀名必须 .nemo_action 例如 shutd...
  • SpringMVC概述

    2020-10-03 22:56:05
    1.1Spring MVC是什么 Spring web mvc是表现层的框架,它是Spring框架的一部分,我们可以从Spring的整体结构中看得出来: 1.2Spring MVC处理流程 1)核心控制器:处理特定请求。(例如:以*.action后缀) 名称:...
  • y作为后缀的属性,这个什么。难道敏感词么? handleSpecialParameters(request, mapping); //最后返回过滤好的action的一些信息~这样的话,就能获取到Action的名称方法 return parseActionName(mapping)...
  • Bison-Flex 笔记

    2011-05-26 16:15:00
    Bison-Flex 笔记FLEX 什么是FLEX?它一个自动化工具,可以按照定义好的规则自动生成一个C函数yylex(),也成为扫描器(Scanner)。这个C函数把文本串作为输入,按照定义好的规则分析文本串中的字符,找到符合...
  • 现在问题来了,当我使用fckeditor的时候,单独使用都没什么问题,但文件上传就出现权限不够。原因我知道。我用网上他们说的方法重新写一个filter来拦截这个请求,但还是没解决。如果把url拦截改成*.action也不行,...
  • 什么他的后缀是bbscs,可以随便定义随便改的?只要在struts.xml里面配置拦截吗?我看到lib下还有bbsccs8.jar,这个他们自己开发的框架吗? 诶,想参照做一份仅仅的登陆都不可以。在网上查到有6.0的分析,但是...
  • 首先,要强调一点,只要可以用文本编辑器编辑的文件都可以Velocity的模版,无论其文件扩展名java,xml,c,html等等,工程中以vm后缀作为模板文件类型, 没别的意思,只是一种区分而已. 然后,想想这样一个问题-----...
  • springmybatis

    2015-09-05 06:54:28
    什么是mybatis MyBatis支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java...
  • 那么GS的原理是什么呢?我们以中文版为例,看看08087B70到底存了什么。查看游戏的代码发现,原先的指令为and r1,r0,就是进行r1和r2的“与”运算。修改后变成mov r1,0#0,就是将“0”放入r1里。二者的区别就是后者...
  • android 图片裁剪问题

    2014-05-24 02:17:25
    * 这里加这样一个判断主要为了第三方的软件选择,比如:使用第三方的文件管理器的话,你选择的文件就不一定图片了,这样的话,我们判断文件后缀名 * 如果图片格式的话,那么才可以 */ ...
  • 'application/octet-stream',//阿里云好像都通过二进制上传,似乎上面4个后缀设置起到什么用? ), 第三步:公共function里面 // 返回json function backJson($code,$info){ $arr['status']=$code; $arr['...
  • -- 自动给后面action的方法return的字符串加上前缀和后缀,变成一个 可用的url地址 --> <property name="suffix" value=".jsp"></property> <!-- 文件上传需要配置此解析器 找类的快捷键为:ctrl+shift+...
  • Spring MVC会稍微比Struts2 快些,Spring MVC是基于方法设计, 处理器是单例,而Sturts2 是基于类,每次发一次请求都会实例一个新的Action对象, Action是多例的。 Spring MVC更加简洁,开发效率Spring MVC比Struts2高,...
  • 目录介绍 01.项目介绍 02.项目运行 03.项目部分介绍 ...有的建议Clean然后Rebuild,有的建议修改使用内存,有的说是代码问题,也有的说是资源问题,比如本来jpg图片或者.9图片,文件后缀png也会导致...
  • //文件名称(当前毫秒数+文件后缀名) String filename = date.getTime()+fileFileName.substring(fileFileName.length()-4,fileFileName.length()); //文件路径 //String root=ServletActionContext...

空空如也

空空如也

1 2
收藏数 34
精华内容 13
关键字:

后缀action是什么文件