`
p2world
  • 浏览: 95639 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

struts2 登录 跳转 方法 动态 请求页

阅读更多
实现的功能:在需要用户登录才能浏览的页前加拦截器,跳转到登陆页,登录后自动跳转到请求页;
1.让interceptor 获取 跳转信息 respones.setAttribute("nextAction",request.getServletPath()+"?"+request.getQuery()),login.jsp里get出来放到hidden里,action接受后return "success"; 在struts.xml中设置 result type=redirect   跳转到${next},成功;
2.还可以通过chain,resultType(共享值栈,相当于2个action共享field),先用loginAction获取到QueryString,实现太麻烦,不灵活,舍弃;

public class LoginInterceptor extends AbstractInterceptor {
	@Override
	public String intercept(ActionInvocation arg0) throws Exception {
		if(arg0.getInvocationContext().getSession().get("name")==null){
			HttpServletRequest request=ServletActionContext.getRequest();
			request.setAttribute("nextAction", request.getServletPath()+"?"+request.getQueryString());
			return "reLogin";
		}
		
		return arg0.invoke();	
	}

}

login.jsp
<input type="hidden" name="nextAction" value="<%=request.getAttribute("nextAction") %>"/>


struts.xml
<interceptors>
			<interceptor name="loginInterceptor"
				class="p2world.sshBbs.interceptor.LoginInterceptor" />
		</interceptors>

		<global-results>
			<result name="reLogin">login.jsp</result>
		</global-results>
<action name="login" class="loginAction">
			<result name="success" type="redirect">${nextAction}</result>
			<result name="fail" type="redirect">fail.jsp</result>
		</action>


loginAction
	private String nextAction;

	public String execute() throws IOException{
		System.out.println(nextAction);
//		HttpServletResponse response=ServletActionContext.getResponse();
		password=new MD5Code().getMD5ofStr(password);
		User u=new User();
		u.setName(name);
		u.setPassword(password);
		if(userService.login(u)){
			ActionContext.getContext().getSession().put("name", name);
//			response.sendRedirect(nextAction);
			return "success";
		}else {
			return "fail";
		}
	}
1
0
分享到:
评论

相关推荐

    Struts2简单的页面跳转示例

    Action类中的方法对应用户请求的URL,当用户发起请求时,Struts2框架会根据配置文件(struts.xml)找到对应的Action并执行相应的方法。 例如,我们可以创建一个名为`SimpleAction`的类,其中包含一个`execute()`...

    struts2 跳转至404 页面的解决方案

    针对"Struts2 跳转至404 页面的解决方案"这个主题,我们将深入探讨可能的原因和解决方法。 首先,我们来看`struts.xml`文件,这是Struts2的核心配置文件,负责定义Action、结果类型、拦截器等关键组件。当Struts2...

    struts2 action跳转action传参数

    ### Struts2中Action间的参数传递方法 在Struts2框架中,经常需要实现Action之间的跳转,并在跳转过程中传递必要的参数。这种需求在实际开发中非常常见,尤其是在需要根据用户的不同操作来调用不同的业务逻辑时。...

    struts1.3页面跳转问题

    6. 动态方法调用(Dynamic Method Invocation,DMI) DMI允许Action路径直接映射到Action类的方法,减少了struts-config.xml的配置,但可能会带来安全风险,因此在生产环境中应谨慎使用。 总结,Struts1.3中的页面...

    Struts2中实现页面的跳转

    在Struts2框架中,页面跳转是常见的需求,它涉及到前端控制器的设计模式以及请求处理流程。`&lt;jsp:forward/&gt;`标签在JavaServer Pages (JSP)中用于将一个请求转发到另一个资源,比如从一个JSP页面跳转到另一个JSP页面...

    Struts通过拦截器实现登录后跳转到登录前页面

    4. **处理重定向**:在拦截器的`intercept()`方法中,当登录成功时,我们获取并返回存储的原始URL,Struts2会自动进行重定向操作。如果登录失败,则按正常流程返回Action的结果。 通过这样的设置,Struts2的拦截器...

    Struts 标签 页面跳转 数据库操作

    2. JSP中跳转到Action:通过`&lt;html:submit&gt;`或`&lt;html:image&gt;`等标签,用户点击后会提交表单到指定的Action,Action根据请求参数决定跳转的页面。 3. Action中的业务逻辑跳转:在Action类中,可以根据业务逻辑使用`...

    struts2 中路径无法跳转的问题

    在Struts2中,路径跳转是应用程序中常见的操作,它涉及到请求转发和重定向。当遇到“Struts2中路径无法跳转的问题”时,这通常与配置、Action类、结果类型或JSP页面的设置有关。以下是一些可能导致问题的关键知识点...

    struts2一个action处理多个请求 struts2实例

    在Struts2框架中,Action类是业务逻辑处理的核心组件,它负责接收并处理来自用户的请求。本实例探讨了如何让一个Action类处理多个请求,这在开发中常见于需要集中处理相似请求的情况,可以提高代码复用性和结构的...

    struts2登录程序源码

    对于登录,可能会有成功和失败两种结果,分别跳转到不同的页面,如`success`跳转到欢迎页,`input`表示验证失败,返回登录页面。 6. **Session管理**: 登录成功后,通常会将用户信息保存在Session中,以便在后续...

    struts2登录实例

    Struts2是一个基于MVC(Model-View-Controller)设计模式的Java web应用程序框架,它在Java社区中广泛应用于构建动态、数据驱动的Web应用。本实例将详细讲解如何使用Struts2实现一个简单的登录功能。 一、Struts2...

    Struts2登录界面

    本项目"Struts2登录界面"旨在帮助初学者快速理解和实践Struts2框架的基础应用。 首先,让我们了解一下Struts2的核心概念: 1. **Action类**:在Struts2中,业务逻辑通常封装在Action类中。Action类是处理用户请求...

    Struts2登录DEMO

    本DEMO是针对Struts2框架的一个简单登录示例,旨在帮助初学者理解并掌握Struts2的基本用法。 在Struts2登录DEMO中,主要涉及以下几个核心知识点: 1. **Action类**:在Struts2中,Action类是业务逻辑的载体,通常...

    struts2登录小例子

    同时,我们需要编写一个execute()方法,这是Struts2框架调用的主要入口点,负责处理用户提交的登录请求。 在execute()方法中,我们可以实现用户身份验证的逻辑。这通常包括检查用户名和密码是否匹配数据库中的记录...

    STRUTS2跳转示意图

    在Struts2中,Action是核心组件,负责处理用户的请求并执行业务逻辑,而Result则是Action执行后的跳转结果。本篇将深入讲解Struts2中的Action和Result,以及它们如何协同工作来实现页面跳转。 首先,让我们理解...

    Struts2登录实例--亲测可用

    在Struts2中,我们通常会创建一个专门的Action类来处理登录请求。Action类是业务逻辑的载体,它接收用户请求,进行处理,并返回结果到视图层。 1. **Action**:Action类是Struts2的核心组件,它定义了业务逻辑的...

    struts1跳转大全

    在这种模式下,ActionServlet接收到请求后,会直接调用action类的`execute()`方法,然后根据`execute()`方法返回的ActionForward对象,查找配置中的forward,从而决定跳转到哪个页面或执行哪个action。 ### 仅有JSP...

    struts2的API耦合与动态方法调用

    动态方法调用是Struts2的一种强大功能,它允许根据不同的用户请求动态决定执行哪个Action方法。主要有以下两种方式: 1. **基于struts.xml配置**:在配置文件中,可以为每个action指定一个默认的方法,比如`...

    简单的Struts2登录

    当用户提交登录表单时,Struts2会拦截这个请求,并根据配置的Action映射找到相应的处理方法。 1. **Action类**:在Struts2中,Action类是业务逻辑的载体,通常继承自`org.apache.struts2.dispatcher.ng.Execute...

    struts2 实现登录实例

    完成以上步骤后,运行项目,访问`login.jsp`页面,输入用户名和密码,点击登录按钮,Struts2框架将处理请求,调用Action中的`execute`方法进行验证,并根据返回的结果跳转到相应的页面。 总结,这个实例展示了如何...

Global site tag (gtag.js) - Google Analytics