网站开发中经常会遇到这样的问题,登录后自动转到了首页或者用户管理首页,这样有时候会让用户觉得很不方便,特别是电子商务类的网站,当用于在浏览产品页面时,需要购买,但是只有登录后的用户才能进入购买页面,所以如果当用户登录后进入的不是他登录前的产品浏览页面,他得去重新找,这是非常不友好的。
可以通过request.getHeader("referer");方式来实现登录/注册后返回进入登录或注册页面前的页面
举例:
java 代码
-
-
-
-
-
-
-
-
- public ActionForward loginview(ActionMapping mapping, ActionForm form,
- HttpServletRequest request, HttpServletResponse response) {
-
-
- String pagefrom = request.getHeader("referer");
- if(pagefrom.indexOf("method=login")>0 || pagefrom.indexOf("method=logout")>0)
- {
- pagefrom = pagefrom.substring(0,pagefrom.lastIndexOf("/")+1);
- }
- request.setAttribute("pagefrom", pagefrom);
-
- saveToken(request);
-
- User object = null;
- try {
- object = entityClass.newInstance();
- } catch (InstantiationException e) {
- log.error(e);
- } catch (IllegalAccessException e) {
- log.error(e);
- }
- initForm(form, request, object);
- return mapping.findForward(LOGINVIEW);
- }
在登录页面中设置hidden元素:
登录页面部分代码
- <html:form action="/userm.do" focus="loginname" styleClass="u_login_form" onsubmit="return validateUserForm(this)">
- <input type="hidden" name="method" value="login"/>
- <input type="hidden" name="pagefrom" value="${ pagefrom }"/>
- <input type="hidden" name="name" value="name"/>
- <input type="hidden" name="mail" value="yahaitt@163.com"/>
- <div class="l"><img src="${css}/images/login_icon_01.gif" />div>
- <div class="l">
- <html:text property="loginname" styleClass="text"/><br />
- <html:password property="password" styleClass="text"/><br />
- <%@ include file="/commons/messages.jsp" %>
- div>
- <div class="l"><html:img src="${css}/images/login_icon_02.gif" onclick="if(validateUserForm(document.userForm)) document.userForm.submit();"/>div>
- <div class="c">div>
- html:form>
- <html:javascript formName="userForm" staticJavascript="false" dynamicJavascript="true" cdata="false"/>
- <script type="text/javascript" src="${ctx}/scripts/validator.jsp">script>
根据登录页面中的pagefrom元素的值,在登录成功后跳转到该值对应的页面
登录代码:
java 代码
-
-
-
-
-
-
-
-
-
- public ActionForward login(ActionMapping mapping, ActionForm form,
- HttpServletRequest request, HttpServletResponse response) {
- String pagefrom = request.getParameter("pagefrom");
- request.setAttribute("pagefrom", pagefrom);
-
- if (isCancelled(request))
- return list(mapping, form, request, response);
- if (!isTokenValid(request)){
- saveDirectlyError(request, "重复提交");
- return mapping.findForward(LOGINVIEW);
- }
-
-
-
- ActionMessages errors = form.validate(mapping, request);
- if (!errors.isEmpty()) {
- saveErrors(request, errors);
- refrenceData(request);
- return mapping.findForward(LOGINVIEW);
- }
-
-
-
- User object = doNewEntity(form, request);
- initEntity(form, request, object);
-
- User user = userManagerCommon.checkPassword(object.getLoginname(), object.getPassword());
- if(null==user)
- {
- errors.add("password",new ActionMessage("user.missing",object.getPassword()));
- saveErrors(request, errors);
- return mapping.findForward(LOGINVIEW);
- }
-
- SessionUser.saveSession(request,user);
-
-
- try {
- response.sendRedirect(pagefrom);
- return null;
- } catch (IOException e) {
- e.printStackTrace();
- }
-
- return mapping.findForward(INDEX);
- }
第48行的代码就实现了跳转。
分享到:
相关推荐
代码为ASP.NET C#,采用asp.net和jquery异步方式实现。 用户登录采用模态弹出窗口,异步方式验证登录信息,不刷新页面。 用户注册,能检查用户名和密码是否为空,当用户输入用户名时可采用异步方式从数据库提取...
### Spring MVC 控制网站登录用户失效后跳转登录页面 #### 概述 在Web应用开发中,确保用户的会话安全至关重要。对于基于Spring MVC框架的应用程序而言,一个常见的需求是当用户会话失效(例如:用户长时间未操作...
项目需求 访问网站页面时,有的页面需要授权才能访问,这时候就会要求用户登录,跳转到登录页面login.php,怎么实现登录后返回到刚才访问的页面。解决思路1: 在跳转到登录页面之前要将当前访问页面的url保存到...
在SpringBoot中,我们可以自定义Filter实现预处理和后处理功能,例如检查用户是否已登录,未登录时重定向到登录页面。 4. **拦截器(Interceptor)**: Spring MVC提供了拦截器(Interceptor)机制,它同样可以...
使用flutter 实现基础的登录页手机号码获取验证码,60s倒计时,通过路由页面切换,页面结构 1.标题 2.手机号输入框 3.验证码输入框 4.获取验证码 5.60s倒计时 6.登录按钮 7.跳转到主页
然而,对于拥有页面访问权限控制的需求而言,如需要实现未登录用户访问特定页面时自动跳转至登录页面,就需要在Vue项目中集成一定的路由守卫逻辑。本篇文档将详细介绍在Vue项目中,如何利用vue-router实现未登录用户...
- 为了从WebView中获取登录后的参数(如授权码code),我们需要监听页面加载完成事件并在JavaScript中注入一个函数,该函数负责将参数通过调用Android原生方法传递出来。 - 在Java代码中,创建一个接口供...
在本文中,将详细探讨Laravel在用户登录、注册操作后,如何使用Auth认证中间件以及redirect()方法实现页面的回跳功能。 首先,Laravel的Auth认证中间件位于app/Http/Middleware/Authenticate.php文件中,这个中间件...
**WPF登录和跳转程序**是基于Windows Presentation Foundation(WPF)框架开发的一个应用程序,主要功能是实现用户登录验证并根据验证结果跳转至不同的界面。WPF是微软推出的一种用于构建桌面应用的UI框架,它提供了...
6. 当用户选择“记住我”并登录后,下次打开应用时,可以在onCreate()方法中读取SharedPreferences中的用户名和密码,如果存在,可直接跳过登录界面,直接进入主界面。 以上就是关于Android Studio中实现登录界面...
在Python中实现Web端的用户登录和注册功能是构建任何Web应用的基础。这里我们将深入探讨如何使用Python进行这些操作,特别关注代码片段中涉及的关键点。 首先,注册功能。在提供的代码中,可以看到使用了API来处理...
### JSP页面实现自动跳转 在JSP页面中实现自动跳转同样可以采用上述几种方式。以下是一个更完整的示例,展示了如何结合JavaScript和服务器端逻辑实现页面的自动跳转: ```jsp ;url=<%=url%>"> window.moveTo(0...
在实际操作中,开发者可能需要根据用户的类型(如管理员、普通用户、未注册用户)或特定的访问条件(如IP地址、设备类型)来定制登录页面。这通常涉及到在配置文件中定义拦截规则,编写中间件或过滤器代码,以及设计...
【标题】"Tomcat+Servlet+mysql简单的登录注册和转跳到主页"是一个基础的Web应用项目,它结合了三个核心组件:Tomcat服务器、Servlet技术以及MySQL数据库,用于实现用户的基本登录和注册功能,并在验证成功后转跳至...
这种方式更加灵活,可以直接控制HTTP响应,确保用户在Session过期后能够被正确地引导回登录页面,重新验证其身份。在实际应用中,还需要考虑其他因素,如Ajax请求的处理、防止无限重定向问题以及提供友好的提示信息...
但是这二维码还有一个需求就是,用户已经下载了这个app,当用户打开app进入到注册页面时,再次扫描这个二维码时,自动填写邀请码进行注册。那么该如何实现,细节就不说了,直接上代码。 使用js实现,其实代码非常...
// 用户已登录,可跳过登录页面或直接进入主界面 } else { // 用户未登录,展示登录界面 } ``` 在"StudyDemo9"这个项目中,你可能可以找到具体的代码实现和更多细节,例如如何处理登录按钮的点击事件,以及如何在...
Android 实现外部唤起应用跳转指定页面的方法是指通过 scheme 的方式来实现跳转,首先需要在 App 中注册一个全局的事件监听,然后在 Manifest 文件中配置具体的 `<intent-filter>`,使得外部可以唤醒 App。...
在Android Studio中,通常会使用XML布局文件来设计登录和注册页面。登录界面一般包含用户名输入框(EditText)、密码输入框(EditText,通常设置为私密类型,显示为星号或圆点)、登录按钮(Button)以及可能的记住...