采用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(伪静态地址) Struts采用通配,web-inf下的urlrewrite.xml为伪静态配置文件,跳转到struts.xml进行对应
例如,将上面的URL从`/struts2urlrewrite/welcome.action`重写为`/welcome`: ```xml <from>/welcome <to type="forward">/struts2urlrewrite/welcome.action ``` 这条规则会将所有匹配`/welcome`的请求...
Struts2是一个非常流行...总之,结合Struts2框架使用`URL Rewrite Filter`能够有效地改进你的应用的URL结构,提升用户体验,并为安全性和性能带来诸多好处。熟练掌握这一技术,对于开发高质量的Java Web应用至关重要。
标题“urlrewrite2伪静态与使用文档(IIS)”涉及到的是在IIS(Internet Information Services)服务器环境中,使用urlrewrite2模块实现URL重写和伪静态功能的技术内容。URL重写是Web开发中的一项关键技术,它允许...
### SSH2中的URLRewrite与Struts2生成静态页面 #### URLRewrite的理解与应用 在SSH2(Spring + Struts2 + Hibernate)框架中,URLRewrite是一种强大的工具,可以用于实现URL重写功能,使得网站的URL更加友好、易于...
IIS URL重写2是微软为Internet Information Services (IIS) 提供的一款强大且灵活的URL管理工具,主要用于优化网站的URL结构,提高搜索引擎优化(SEO)效果,以及实现更加友好的用户体验。这个工具是基于Apache的mod...
### Java URL Rewrite 解决默认页面问题 在J2EE项目中使用URL重写(URL Rewrite)来优化URL结构,使其更加简洁、友好是常见的做法。然而,在实施过程中可能会遇到一些问题,比如默认页面的处理。本文将详细介绍如何...
《URL重写技术详解——基于UrlRewrite工具的实践指南》 在Web开发领域,URL重写是一项重要的技术,它能够使网站的URL更加友好、简洁,提高用户体验,同时也有利于搜索引擎优化(SEO)。本篇文章将围绕“UrlRewrite....
UrlRewrite是一个强大的URL重写工具,常用于Java Web应用中,尤其是与Struts2框架结合使用时,能够帮助开发者优化URL结构,提高网站的SEO友好性和用户体验。在这个"UrlRewrite例子"中,我们将深入探讨UrlRewrite的...
• 采用hibernate3+struts2+spring2+freemarker主流技术架构 • 懂html就能建站,提供最便利、合理的使用方式 • 强大、灵活的标签,用户自定义显示内容和显示方式 • 在设计上自身预先做了搜索引擎优化,增强对...
在使用`URLrewrite`时,我们需要创建一个名为`urlrewrite.xml`的配置文件,其中定义了各种重写规则。例如,以下规则将所有以“/article”开头的请求重定向至“/content/article”: ```xml ^/article/(.*)$ <to>...
URLRewrite主要通过配置文件(通常命名为`urlrewrite.xml`)来定义这些规则。在`urlrewrite.xml`中,我们可以定义一系列的条件和动作,条件用于判断是否执行某个规则,动作则定义了URL如何被重写。 **URLRewrite...
4. **测试与调试**:在应用了`URLRewrite`后,需要进行充分的测试,确保所有预期的URL重写都能正确工作,并且没有引入新的问题。 `code`文件可能包含了`URLRewrite`的示例代码或者项目配置文件,具体内容取决于...
**URLRewrite 3.0.4:优雅的URL管理工具** 在Web开发中,URL的设计和管理对于网站的用户体验和搜索引擎优化(SEO)至关重要。`urlrewrite`是一款优秀的Java库,专门用于处理URL重写,它使得动态网站能够展现静态化...
**URLRewrite组件详解** URLRewrite是一款广泛应用于ASP.NET应用程序中的URL重写工具,它允许开发者通过修改HTTP请求的URL来实现各种功能,如优化SEO(搜索引擎优化)、隐藏内部结构、提供友好的URL以及实现负载...
什么是UrlRewrite UrlRewrite 是 将动态页面转换为静态页面的一种技术 例如 您网站页面是 http: www yourdomain com news docread aspx id 123 为什么使用UrlRewrite: 1 处理这样的情形:你要更改你的web应用...
URLRewrite配置和使用 URLRewrite是一种URL重写技术,它可以满足搜索引擎的要求,隐藏技术实现,提高网站的移植性,并满足美感的要求。下面将详细介绍URLRewrite的配置和使用。 1. 满足搜索引擎的要求 搜索引擎对...
IIS URL Rewrite模块是Microsoft为Internet Information Services (IIS) web服务器开发的一个功能强大的URL处理工具。这个模块允许管理员和开发者通过自定义规则来重写和管理网站的URL,从而提高网站的SEO优化、实现...
UrlRewrite是一个强大的URL管理工具,常用于ASP.NET应用程序中,它允许开发者通过自定义规则对网站的URL进行重写和转换。这个技术的核心在于提供更友好的、搜索引擎优化(SEO)的URL,同时也可以帮助解决网站迁移或...
总结,通过引入`Tuckey URL Rewrite Filter`,并在`urlrewrite.xml`中定义适当的规则,我们可以轻松地将Struts2的`.do`后缀重写为`.html`或其他形式。这不仅使URL更易于理解和记忆,也有助于提升用户体验和SEO效果。...