springsecurity教程
http://docs.oracle.com/javaee/1.4/tutorial/doc/Security5.html
http://lebuqi.com/forum.php?mod=viewthread&tid=22
http://code.google.com/p/family168/
在使用struts2 redirect跳转不同命名空间方法时:
环境:
@Results( {
@Result(name = CrudActionSupport.RELOAD, location = "account.action", type = "redirect"),
@Result(name = "main", location = "/fs/file-system.action", type = "redirect") })
public class AccountAction extends CrudActionSupport<User> {
public String save() throws Exception {
return "main";
}
}
注意:使用上面方法需要在struts.xml中配置如下,主要是
<constant name="struts.convention.default.parent.package" value="crud-default" />
<package name="crud-default" extends="json-default">
<interceptors>
<interceptor-stack name="crudStack">
<interceptor-ref name="store">
<param name="operationMode">AUTOMATIC</param>
</interceptor-ref>
<!-- 基于paramsPrepareParamsStack,增加store interceptor保证actionMessage在redirect后不会丢失 -->
<interceptor-ref name="paramsPrepareParamsStack" />
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="crudStack" />
</package>
java.lang.IllegalStateException
at org.apache.catalina.connector.ResponseFacade.sendError(ResponseFacade.java:407)
原因:我在客户端使用的是ajax提交,不知道为什么不能跳转,如果不用ajax,则该跳转没有问题
别人建议在方法上配置:
@Action(results={@Result(name="main",location = "/fs/file-system.action",type="redirect",params={"id","${id}","action","${action}","type","${type}"})})
关于使用struts2自带json问题:
@Action(results = { @Result(type = "json", name = "get", params = {"wrapPrefix", "[" }) })
public String get() throws Exception {
return GET;
}
如何解决用户注册后自动登录的问题:
首先,因为客户端登录的时候密码是由客户端自己加密,所以在CustomAuthenticationProcessingFilter中验证时不需要加密。
其次,在application-Context.xml中,密码采用明文方式,即在springsecurity过滤时不需要再次加密密码
<s:authentication-provider user-service-ref="userDetailsService">
<s:password-encoder hash="plaintext" />
<!-- <s:password-encoder hash="sha" base64="false"/> -->
</s:authentication-provider>
最后,当用户注册结束后,我们使用一个跳转把用户名、密码和验证码等都自动提交,从而实现用户自动登录。
submitHandler: function(form) {
$('#password').val($.sha1($('#password').val()));
$(form).ajaxSubmit({
success: function(msg) {
window.location = "${ctx}/j_spring_security_check?j_username=" + $('#loginName').val() + "&j_password=" + $('#password').val() + "&j_captcha=" + $('#j_captcha').val();
},
error: function(msg) {
}
});
return false;
}
分享到:
相关推荐
总之,解决Struts2跳转至404页面的问题需要对整个应用的配置进行仔细检查,从Action、命名空间、拦截器到结果类型、资源路径,甚至包括服务器和IDE的设置。理解Struts2的工作原理,结合日志信息,通常可以找出导致...
在Struts2框架中,`Result`类型是动作(Action)执行后的一种处理方式,它定义了动作执行完后页面跳转或者数据处理的行为。`Redirect`是`Result`类型中的一种,它涉及到Web应用程序中的URL重定向概念,对用户浏览器...
- **`redirect-action`**: 相对于 `redirect`,`redirect-action` 类型的 Result 只能用于重定向到当前应用中的另一个 Action,并且默认情况下只能在同一命名空间内跳转。这种方式不会改变浏览器地址栏中的 URL,...
- **Result Types**:定义了不同类型的返回结果,如重定向到某个URL(`redirect`)、跳转到特定的JSP页面(`dispatcher`)等。 - **Action**:每个`action`元素对应着一个具体的业务逻辑处理方法。在`action`元素中,...
### Struts2中Redirect跳转深入解析 在Struts2框架中,`redirect`与`redirect-action`以及`chain`都是用于控制流程转向的关键技术,它们各有特点和适用场景,理解其工作原理对于构建高效、灵活的应用程序至关重要。...
配置文件中可以声明Action的命名空间、类、方法映射、结果类型等,是整个框架的蓝图。 3. **Interceptor(拦截器)**: 拦截器是Struts2的重要特性,它们按照预设的顺序在Action调用前后执行,可以用于日志记录、...
常量配置的进阶使用可能涉及到动态配置、插件配置等,可以灵活调整Struts2的行为,以满足不同应用场景的需求。 总的来说,学习Struts2需要理解这些基本配置元素的含义和用法,以及如何通过常量配置来调整框架的行为...
**Package配置**:`<package>`元素是Struts2.x中的重要组成部分,它用于定义命名空间(Namespace),这有助于将不同的Action分组管理。通过`extends`属性可以继承默认的包,从而复用其Action和拦截器等配置。 **JSP...
这篇博客文章可能探讨了在使用Struts2时遇到的路径相关问题,如Action配置、结果类型、静态资源访问等。 1. **Action配置**:在Struts2中,Action是业务逻辑的核心组件。每个Action通常对应一个特定的URL,这在...
- `namespace`:命名空间,用于区分不同的功能模块,可以避免命名冲突。 2. **** 元素: - `<action>`:定义一个具体的动作,关联一个控制器类(Action)和一个或多个操作方法。 - `name`:动作名称,用户在URL...
7. ** strut2-convention-plugin**:此插件使得开发者无需编写XML配置,只需遵循一定的命名规范,Struts2就能自动识别Action和Action方法。 8. **Tiles框架集成**:Struts2可以与Tiles框架无缝集成,用于构建复杂的...
这里的`param`标签用于传递参数,`actionName`和`namespace`分别表示要跳转的Action名和命名空间。 ### 6. 动态结果 动态结果允许根据Action的返回值动态选择Result。例如: ```xml ${resultType} ``` 在这里,`...
6. **灵活的结果类型:** Struts2支持多种结果类型,包括dispatcher(转发)、redirect(重定向)、chain(链式调用)等,使得页面跳转更加灵活多样。 #### 二、Struts2项目搭建与配置 要构建一个基于Struts2的Web...
- **概念**:命名空间是Struts2中用于组织Action的一种机制,每个Action可以通过指定的命名空间来访问。 - **路径确定**:命名空间决定了Action的访问路径。默认情况下,命名空间为空,这意味着所有未指定命名空间的...
除了以上列出的,还有一些已废弃的返回类型,如`redirect-action`和`plaintext`,它们分别对应于`redirectAction`和`plainText`,但在Struts 2.1.0之后不再推荐使用,而是推荐使用camelCase命名的版本。 选择正确的...
`namespace`属性定义了Action的命名空间,用于区分不同的功能模块。`extends`属性则指定了当前包继承自哪个基础包,通常会继承`struts-default`,以便获取默认的配置。Action可以通过`<action>`元素定义,其中`name`...
3. **Action查找顺序**:当Struts2处理请求时,首先会在当前命名空间下查找匹配的Action,如果找不到,则会查找默认命名空间下的Action。 4. **Action配置默认值**:通常,一个Action的基本配置如下: ```xml ...
本文将详细介绍Struts2框架中struts.xml配置文件的结构和关键元素,以及JSP页面中使用的标签。 首先,struts.xml是Struts2框架的核心配置文件。它由一个或多个元素组成,每个元素代表一个独立的命名空间,用于隔离...
以上内容概括了Struts2框架的基础配置与使用方法,包括环境搭建、配置文件编写、Action的创建和配置、数据获取和封装等方面的知识点。对于初学者来说,理解这些基础知识是非常重要的,它能够帮助开发者快速上手...