0 0

关于struts2的https与http的切换问题20

    本人已在tomcat上配置了ssl协议,测试后运行成功。问题是现在所有在该tomcat上跑的项目都要用https方式去访问,现本人想通过一些方法能使访问在https与http之间切换。
    本人现在用的框架是struts2,在网上找了个struts2的ssl插件 struts2-ssl-plugin 但是尝试了很久还是未果,每次都是以http方式访问时就出现页面不存在,而且还不是tomcat的报错页面,本人在网上搜索相关资料,收获甚少,希望各位牛人能帮助本人解答下。
    以下是部分代码,
    struts.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC 
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
    
<struts>
    <constant name="struts.custom.i18n.resources" value="Resource"/>
    <constant name="struts.mapper.class" value="org.apache.struts2.dispatcher.mapper.Restful2ActionMapper"></constant>
    <constant name="struts.enable.SlashesInActionNames" value="true"></constant>
    <constant name="struts2.sslplugin.httpPort" value="8080"></constant>
    <constant name="struts2.sslplugin.httpsPort" value="8443"></constant>
    <constant name="struts2.sslplugin.annotations" value="true"></constant>
    <include file="helloworld.xml"></include>
</struts>


------------------------------------------------------------------------------------------------------------------------

    helloworld.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC 
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
    <package name="SSL" extends="ssl-default">
    	<interceptors>
	        <interceptor-stack name="SecureStack">
	        <interceptor-ref name="secure">
	            <param name="httpsPort">443</param>
	         </interceptor-ref>
	         <interceptor-ref name="defaultStack"/>
	        </interceptor-stack>
        </interceptors>
        <action name="helloWorldSSL/*" class="com.product.action.HelloWorldSSL">
            <result>/example/methodShow.jsp</result>
        </action>
    </package>
</struts>


-----------------------------------------------------------------------------------------------------------------------

    HelloWorldSSL.java:

package com.product.action;

import com.googlecode.sslplugin.annotation.Secured;

public class HelloWorldSSL extends SupportAction {

	/**
	 * 
	 */
	private static final long serialVersionUID = -4121768069718140948L;
	
	public String doIt(){
		super.request.setAttribute("result", "It's not SSL.");
		return super.SUCCESS;
	}
	
	@Secured
	public String doItSSL(){
		super.request.setAttribute("result", "It's SSL.");
		return super.SUCCESS;
	}

}


--------------------------------------------------------------------------------------------------------------------

     ssl.jsp:

<%@ page language="java" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>

  </head>
  
  <body>
    <form action="<%= basePath %>helloWorldSSL/!doIt" method="get">
    	<input type="submit" value="edit"/>
    </form>
    <form action="<%= basePath %>helloWorldSSL/!doItSSL" method="get">
    	<input type="submit" value="edit"/>
    </form>
  </body>
</html>


-----------------------------------------------------------------------------------------------------------------------

     methodShow.jsp:

<%@ page language="java" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  </head>
  
  <body>
    ${result }
  </body>
</html>


-------------------------------------------------------------------------------------------------------------------------

以上本人是结合了struts2.1的新功能Restful2
struts2-ssl-plugin相关资料:http://code.google.com/p/struts2-ssl-plugin/
2010年1月25日 11:01
目前还没有答案

相关推荐

    struts2中文学习文档

    从给定的文件信息来看,标题“struts2中文学习文档”和描述“struts2的根本webwork2”表明这是一份关于Struts2框架的学习资料,特别强调了Struts2与WebWork2的关系。Struts2是Apache Struts的一个版本,它是一个用于...

    struts2实现的中英文切换

    本教程将深入讲解如何在Struts2框架中实现中英文切换功能。 1. **创建资源文件**: 在Struts2国际化过程中,关键在于使用资源文件来存储不同语言的文本。资源文件通常命名为`XX.properties`,其中`XX`代表语言代码...

    struts2集成struts-ssl-plugin插件实现https访问例子

    - 考虑处理HTTP和HTTPS之间的会话管理,避免因切换协议导致的会话丢失问题。 - 在生产环境中,不要忘记更新为正式的SSL证书,而非测试或自签名证书。 通过以上步骤,你可以成功地在Struts2应用中集成`struts-ssl-...

    struts2国际化语言切换

    以下是实现Struts2国际化语言切换的详细步骤: 1. **创建资源包**: 首先,你需要为每种支持的语言创建一个资源包。资源包通常是以.properties为后缀的文本文件,例如`message_zh_CN.properties`(中文)和`...

    关于Struts2与Jquery实现无刷新分页的不解问题

    在本文中,我们将探讨如何在Struts2框架下利用jQuery实现无刷新分页,解决描述中提到的问题。 首先,让我们了解无刷新分页的基本概念。无刷新分页是指用户在浏览页面内容时,无需手动刷新整个页面即可切换到不同的...

    Struts2 技术内幕——深入解析Struts2架构设计与实现原理

    ### Struts2技术内幕——深入解析Struts2架构设计与实现原理 ...通过深入了解其架构设计与实现原理,不仅可以帮助开发者更好地掌握Struts2的使用方法,还能提升解决问题的能力,从而提高开发效率。

    Struts2 国际化 多语言切换

    下面我们将深入探讨如何在Struts2中实现国际化和多语言切换。 **一、国际化(i18n)基础** 国际化是指软件设计时考虑到不同地区的文化差异,使得软件可以通过简单的配置和扩展就能适应各种语言环境。在Java中,我们...

    Struts2国际化——自动切换语言

    以下将详细阐述实现Struts2国际化自动切换语言的过程。 1. **资源配置文件**: - `globalMessage.properties`:这是默认的资源配置文件,存放通用的国际化信息。 - `globalMessage_zh_CN.properties`:中文资源...

    Struts2第七章商品展示

    - Struts2框架是Apache软件基金会的开源项目,它是Struts1的升级版,解决了许多Struts1存在的问题,提供了更灵活的控制流程和更好的性能。 - MVC模式:Struts2遵循MVC设计模式,将业务逻辑、数据和用户界面分离,...

    struts2测试案例

    8. **国际化(i18n)支持**:Struts2提供对多语言的支持,通过资源包(Properties文件)可以轻松实现界面语言的切换。 9. **异常处理**:Struts2允许全局或局部地处理应用程序中的异常,提供了一种优雅的方式来管理...

    使用Struts 2框架开发租房网站

    8. **国际化与本地化**:Struts 2支持多语言环境,可以通过资源包(properties文件)实现内容的国际化,根据用户的浏览器设置动态切换语言。 9. **数据校验**:Struts 2提供了丰富的数据校验机制,可以在Action类中...

    struts2标准jar包集

    以下是关于Struts2框架以及其与Spring框架整合的关键知识点: 1. **Struts2框架基础**: - **MVC模式**:Struts2基于MVC设计模式,将业务逻辑、数据和用户界面分离,提高代码的可维护性和可重用性。 - **Action类...

    struts2四天的学习笔记

    8. **国际化(Internationalization, i18n)**:Struts2支持多语言环境,通过资源包(Properties文件)实现不同语言的切换,提供更好的用户体验。 9. **异常处理**:Struts2允许定义全局和Action级别的异常处理策略...

    Struts2 框架概述

    #### 一、Struts2的历史背景与起源 Struts2作为一款备受关注的企业级Web开发框架,在Java Web开发领域占据着举足轻重的地位。尽管Struts2声称自身是一个全新的框架,但从其发展历程来看,这种说法仅仅是从与前一代...

    struts2学习笔记总结

    Struts2是Apache软件基金会下的一个开源项目,它继承了Struts1的优点并解决了其存在的问题,如性能和灵活性。Struts2的核心是Action类,它是业务逻辑和视图之间的桥梁。通过使用拦截器,Struts2能够提供诸如输入验证...

    struts2.0整合Struts 1

    6. **国际化(i18n)与主题(Theme)**:Struts 2提供了内置的支持,方便开发者实现多语言和界面风格的切换。 7. **插件架构**:Struts 2的插件体系使得扩展和定制变得简单,如 strut2-dojo-plugin 提供了与Dojo ...

    struts2 入门书籍

    为了构建复杂的企业级应用,Struts2通常会与其他框架如Hibernate(用于ORM)、Spring(用于IOC和AOP)集成,形成一套完整的开发解决方案。 #### 12. 实战项目示例 通过一系列实战项目,如投票管理系统、无纸化办公...

    Struts2 教学课件

    9. **国际化与本地化**:Struts2支持多语言环境,通过资源包(Properties文件)来实现国际化,可以轻松切换不同地区的语言显示。 10. **集成Spring框架**:Struts2可以无缝集成Spring,将Action实例的创建和管理...

    struts2资源包

    在Struts2中,这个库提供了一个统一的日志接口,方便开发者进行调试和问题追踪。 总的来说,这些jar包共同构建了Struts2框架的基础架构,使得开发者可以高效地开发出符合MVC设计模式的Web应用,同时具备良好的可...

Global site tag (gtag.js) - Google Analytics