`

Struts2 urlrewrite + kindeditor 上传图片时request为null问题

阅读更多

采用struts2  加上了  urlrewrite  后 web.xml 里面配置变成了这样

 

 

 <filter-mapping>
  <filter-name>struts2</filter-name>
  <url-pattern>/*</url-pattern>
  <!-- 重新必须加的 -->
  <dispatcher>FORWARD</dispatcher>
  <dispatcher>REQUEST</dispatcher>
  <!-- <dispatcher>INCLUDE </dispatcher>  -->
 </filter-mapping>

 

 但是问题就来了 url 重写 是实现了 但是 /* 是不能完成kindeditor  当中的upload_json.jsp上传的

 

upload_json.jsp 的上传  是需要 *.action

 

 

怎么解决呢 办法来了

 

重写一个jsp用作上传

 

 

如下:

 

<%@ page language="java" pageEncoding="GBK"%>
<%@page
 import="java.util.*,java.io.*,org.apache.struts2.dispatcher.multipart.MultiPartRequestWrapper,java.util.concurrent.locks.*"%>
<%
 //Struts2  请求 包装过滤器   
 MultiPartRequestWrapper wrapper = (MultiPartRequestWrapper) request;
 // 获得上传的文件名    
 String fileName = wrapper.getFileNames("imgFile")[0];
 //获得未见过滤器    
 File file = wrapper.getFiles("imgFile")[0];
 //----------- 重新构建上传文件名----------------------   
 final Lock lock = new ReentrantLock();
 String newName = null;
 lock.lock();
 try {
  //加锁为防止文件名重复    
  newName = System.currentTimeMillis()
    + fileName.substring(fileName.lastIndexOf("."),
      fileName.length());
 } finally {
  lock.unlock();
 }
 //------------ 锁结束 -------------   
 //获取文件输出流    
 FileOutputStream fos = new FileOutputStream(request.getSession()
   .getServletContext().getRealPath("/")
   + "ke_upload\\" + newName);
 //设置 KE 中的图片文件地址    
 String newFileName = request.getScheme() + "://"
   + request.getServerName() + ":" + request.getServerPort()
   + request.getContextPath() + "/ke_upload/" + newName;
 byte[] buffer = new byte[1024];
 //获取内存中当前文件输入流    
 InputStream in = new FileInputStream(file);
 try {
  int num = 0;
  while ((num = in.read(buffer)) > 0) {
   fos.write(buffer, 0, num);
  }
 } catch (Exception e) {
  e.printStackTrace(System.err);
 } finally {
  in.close();
  fos.close();
 }
 //发送给KE    
 out
   .println("<html><head><title>Insert Image</title><meta http-equiv='content-type' content='text/html; charset=gbk'/></head><body>");
 out.println("<script type='text/javascript'>");
 out.println("parent.parent.KE.plugin['image'].insert('"
   + wrapper.getParameter("id") + "','" + newFileName + "','"
   + wrapper.getParameter("imgTitle") + "','"
   + wrapper.getParameter("imgWidth") + "','"
   + wrapper.getParameter("imgHeight") + "','"
   + wrapper.getParameter("imgBorder") + "','"
   + wrapper.getParameter("align") + "');</script>");
 out.println("</body></html>");
%>

分享到:
评论

相关推荐

    struts2+spring3+hibernate4+urlrewrite

    本框架为struts2+spring3+hibernate4+urlrewrite(伪静态地址) Struts采用通配,web-inf下的urlrewrite.xml为伪静态配置文件,跳转到struts.xml进行对应

    Struts2下使用urlReWrite的最简实例(MyEclipse工程)

    例如,将上面的URL从`/struts2urlrewrite/welcome.action`重写为`/welcome`: ```xml &lt;from&gt;/welcome &lt;to type="forward"&gt;/struts2urlrewrite/welcome.action ``` 这条规则会将所有匹配`/welcome`的请求...

    使用urlrewrite重写struts2的action

    Struts2是一个非常流行...总之,结合Struts2框架使用`URL Rewrite Filter`能够有效地改进你的应用的URL结构,提升用户体验,并为安全性和性能带来诸多好处。熟练掌握这一技术,对于开发高质量的Java Web应用至关重要。

    urlrewrite2伪静态与使用文档(IIS)

    标题“urlrewrite2伪静态与使用文档(IIS)”涉及到的是在IIS(Internet Information Services)服务器环境中,使用urlrewrite2模块实现URL重写和伪静态功能的技术内容。URL重写是Web开发中的一项关键技术,它允许...

    ssh2中的urlrewrite和Struts2的生成静态页面

    ### SSH2中的URLRewrite与Struts2生成静态页面 #### URLRewrite的理解与应用 在SSH2(Spring + Struts2 + Hibernate)框架中,URLRewrite是一种强大的工具,可以用于实现URL重写功能,使得网站的URL更加友好、易于...

    IIS Urlrewrite2

    IIS URL重写2是微软为Internet Information Services (IIS) 提供的一款强大且灵活的URL管理工具,主要用于优化网站的URL结构,提高搜索引擎优化(SEO)效果,以及实现更加友好的用户体验。这个工具是基于Apache的mod...

    java urlrewrite解决默认页问题

    ### Java URL Rewrite 解决默认页面问题 在J2EE项目中使用URL重写(URL Rewrite)来优化URL结构,使其更加简洁、友好是常见的做法。然而,在实施过程中可能会遇到一些问题,比如默认页面的处理。本文将详细介绍如何...

    UrlRewrite.rar

    《URL重写技术详解——基于UrlRewrite工具的实践指南》 在Web开发领域,URL重写是一项重要的技术,它能够使网站的URL更加友好、简洁,提高用户体验,同时也有利于搜索引擎优化(SEO)。本篇文章将围绕“UrlRewrite....

    UrlRewrite例子

    UrlRewrite是一个强大的URL重写工具,常用于Java Web应用中,尤其是与Struts2框架结合使用时,能够帮助开发者优化URL结构,提高网站的SEO友好性和用户体验。在这个"UrlRewrite例子"中,我们将深入探讨UrlRewrite的...

    hibernate3+struts2+spring2+freemarker 主流技术架构 实例

    • 采用hibernate3+struts2+spring2+freemarker主流技术架构 • 懂html就能建站,提供最便利、合理的使用方式 • 强大、灵活的标签,用户自定义显示内容和显示方式 • 在设计上自身预先做了搜索引擎优化,增强对...

    URLrewrite-实例

    在使用`URLrewrite`时,我们需要创建一个名为`urlrewrite.xml`的配置文件,其中定义了各种重写规则。例如,以下规则将所有以“/article”开头的请求重定向至“/content/article”: ```xml ^/article/(.*)$ &lt;to&gt;...

    urlrewrite-maven-example.zip

    URLRewrite主要通过配置文件(通常命名为`urlrewrite.xml`)来定义这些规则。在`urlrewrite.xml`中,我们可以定义一系列的条件和动作,条件用于判断是否执行某个规则,动作则定义了URL如何被重写。 **URLRewrite...

    urlrewrite

    4. **测试与调试**:在应用了`URLRewrite`后,需要进行充分的测试,确保所有预期的URL重写都能正确工作,并且没有引入新的问题。 `code`文件可能包含了`URLRewrite`的示例代码或者项目配置文件,具体内容取决于...

    urlrewrite3.04的demo

    **URLRewrite 3.0.4:优雅的URL管理工具** 在Web开发中,URL的设计和管理对于网站的用户体验和搜索引擎优化(SEO)至关重要。`urlrewrite`是一款优秀的Java库,专门用于处理URL重写,它使得动态网站能够展现静态化...

    URLRewrite URL重写组件

    **URLRewrite组件详解** URLRewrite是一款广泛应用于ASP.NET应用程序中的URL重写工具,它允许开发者通过修改HTTP请求的URL来实现各种功能,如优化SEO(搜索引擎优化)、隐藏内部结构、提供友好的URL以及实现负载...

    netcn_URLRewrite

    什么是UrlRewrite UrlRewrite 是 将动态页面转换为静态页面的一种技术 例如 您网站页面是 http: www yourdomain com news docread aspx id 123 为什么使用UrlRewrite: 1 处理这样的情形:你要更改你的web应用...

    URLRewrite配置和使用

    URLRewrite配置和使用 URLRewrite是一种URL重写技术,它可以满足搜索引擎的要求,隐藏技术实现,提高网站的移植性,并满足美感的要求。下面将详细介绍URLRewrite的配置和使用。 1. 满足搜索引擎的要求 搜索引擎对...

    iis urlrewrite文件

    IIS URL Rewrite模块是Microsoft为Internet Information Services (IIS) web服务器开发的一个功能强大的URL处理工具。这个模块允许管理员和开发者通过自定义规则来重写和管理网站的URL,从而提高网站的SEO优化、实现...

    UrlRewrite域名重写

    UrlRewrite是一个强大的URL管理工具,常用于ASP.NET应用程序中,它允许开发者通过自定义规则对网站的URL进行重写和转换。这个技术的核心在于提供更友好的、搜索引擎优化(SEO)的URL,同时也可以帮助解决网站迁移或...

    struts2改写url后缀demo

    总结,通过引入`Tuckey URL Rewrite Filter`,并在`urlrewrite.xml`中定义适当的规则,我们可以轻松地将Struts2的`.do`后缀重写为`.html`或其他形式。这不仅使URL更易于理解和记忆,也有助于提升用户体验和SEO效果。...

Global site tag (gtag.js) - Google Analytics