* 直接输出内容的简便函数
*
* eg. render("text/plain","hello","encoding:GBK")
*/
public static void render(final String contentType, final String content,
final String... headers) {
String encoding = "UTF-8";
boolean nocache = true;
try {
for (String header : headers) {
String headerName = StringUtils.substringBefore(header, ":");
String headerValue = StringUtils.substringBefore(header, ":");
if (StringUtils.equalsIgnoreCase(headerName, "encoding")) {
encoding = headerValue;
} else if (StringUtils.equalsIgnoreCase(headerName, "no-cache")) {
nocache = Boolean.parseBoolean(headerValue);
} else {
throw new Exception("不是一个合法的header类型");
}
}
HttpServletResponse response = ServletActionContext.getResponse();
String fullContentType = contentType+";charset="+encoding;
response.setContentType(fullContentType);
if(nocache){
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expirse", 0);
}
response.getWriter().write(content);
} catch (Exception e) {
}
}
分享到:
相关推荐
* 在 web.xml 文件中,我们可以配置 Struts2 框架的 Filter,用于将请求路由到 Struts2 框架中。 * 在 struts.xml 文件中,我们可以配置 Struts2 框架的各种常量、Action、结果类型等。 Struts2 的Action Action ...
确保在Struts2配置中为这个Action类的相应结果添加一个Action Mapping,以便正确跳转到显示图片的JSP页面。 安全方面,上传图片时需要注意防止恶意文件注入,例如限制上传文件的类型和大小。此外,确保文件名的安全...
4. **结果类型(Result Types)**:Struts2支持多种结果类型,如`dispatcher`(默认,将结果转发到JSP页面)、`stream`(用于文件下载)、`redirect`(重定向URL)等,可以根据不同的需求选择合适的结果类型。...
7. `struts2-json-plugin.jar`:这个插件支持JSON数据格式的输入和输出,便于前后端交互。 8. `struts2-tiles-plugin.jar`:Tiles是用于页面布局的框架,此插件允许Struts2使用Tiles来组织和管理视图。 9. `struts...
在这个"基于Struts2的Hello World输出"中,我们将深入理解如何使用Struts2来创建一个简单的web应用。 首先,Struts2的核心在于它的Action类,它是业务逻辑处理的主要组件。在我们的"Hello World"示例中,我们需要...
2. Struts2框架的特点:Struts2框架主要的特点是它采用了MVC(Model-View-Controller)的设计模式,这种模式可以将应用程序的输入、处理和输出分离开来,提高了程序的可维护性和可扩展性。Struts2还具有强大的标签库...
通过上述步骤,Struts2和FreeMarker的组合使得开发人员能够便捷地将动态内容转化为静态页面,从而提升网站性能,优化用户体验。同时,这种模式也方便了内容管理和维护,降低了服务器负载。然而,要注意的是,对于...
常见的结果类型有`dispatcher`(转发到JSP页面)、`stream`(输出流,如文件下载)和`redirect`(重定向)。 5. **OGNL(Object-Graph Navigation Language)**:Struts2使用OGNL作为默认表达式语言,用于在Action...
7. **结果类型**:Struts2支持多种结果类型,如dispatcher(用于转发到JSP页面)、stream(用于处理文件下载)、freemarker或velocity(用于模板引擎渲染)等。开发者可以根据需要选择或自定义结果类型。 8. **国际...
2. **xwork-core.jar**:XWork是Struts2的前身,它的核心库被合并到了Struts2中。这个JAR包含了许多实用工具类,如类型转换、对象容器、表达式语言支持等,为Struts2提供基础服务。 3. **ognl.jar**:OGNL(Object-...
- 使用`ServletOutputStream`来写入文件内容到HTTP响应的输出流。在`execute()`方法中,创建`FileInputStream`以读取文件,然后通过`ServletOutputStream`写入。 5. **安全考虑**: - 在处理文件下载时,要注意...
用户通过HTML表单选择文件,然后提交到服务器,Struts2的拦截器会解析请求并处理文件内容。 文件下载则涉及到HTTP响应头的设置,如`Content-Type`指定文件类型,`Content-Disposition`指示浏览器如何处理响应内容...
8. **struts2-tiles-plugin.jar**:Tiles是Apache的一个视图管理框架,这个插件让Struts2能够与Tiles集成,方便创建复杂的布局和重用页面组件。 9. **commons-logging.jar**,**log4j.jar**等日志库:它们为Struts2...
Apache Struts2是一个非常流行的Java Web开发框架,它提供了MVC(Model-View-Controller)架构模式,便于开发者构建动态网页应用。然而,S2-045漏洞使得攻击者可以利用OGNL表达式的解析机制,绕过安全控制,执行任意...
Struts2是一个非常著名的Java Web...只需将这些JAR文件添加到项目的类路径中,就可以开始利用Struts2的强大功能构建Web应用了。同时,对于初学者,了解每个JAR文件的作用和功能,有助于更好地理解和使用Struts2框架。
Struts2的配置文件struts.xml是整个应用的配置中心,它定义了Action类、Action的输入和输出、以及全局的拦截器链。在这里,我们可能会看到类似以下的配置: ```xml <result name="success">/pages/success.jsp ...
根据给定的部分内容,可以看到使用的是`struts2-json-plugin-2.1.8.1.jar`这个JAR包。该插件包含处理JSON相关的类库,使得Struts2能够识别并处理JSON格式的数据。具体来说,插件中的`struts-plugin.xml`配置文件定义...
- **实现静态化**:为了实现Struts2页面的静态化,可以自定义一个Freemarker Result Type,该类型负责读取模板文件并填充数据模型,然后将其内容输出到文件系统中,形成静态页面。 以下是一个简单的自定义...
Struts2是Java EE开发中一个非常流行的MVC框架,用于构建可维护、可扩展的Web应用程序。在开始使用Struts2之前,...在实际开发中,你可能还需要了解更多关于Struts2的特性,如拦截器、插件、国际化、异常处理等内容。
Struts2 标签库提供了主题、模板支持,极大地简化了视图页面的编写,而且,Struts2 的主题、模板都提供了很好的扩展性。Struts2 允许在页面中使用自定义组件,这完全能满足项目中页面显示复杂、多变的需求。 Struts...