struts2拦截器实现用户提交订单前必须登入

来源:互联网 发布:知乎用户开放注册 编辑:程序博客网 时间:2024/05/17 21:45

一,实现Interceptor接口,实现他的三个方法:destroy;init;intercept(ActionInvocation argo);

package com.buaa.interceptor;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionInvocation;import com.opensymphony.xwork2.interceptor.Interceptor;public class MyInterceptor implements Interceptor {/** *  */private static final long serialVersionUID = 1L;public void destroy() {}public void init() {}public String intercept(ActionInvocation arg0) throws Exception {if (ServletActionContext.getRequest().getSession().getAttribute("username") == null) {return "login";} else {return arg0.invoke();}}}

二、action类

package com.buaa.action;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionSupport;public class layoutAction extends ActionSupport {@Overridepublic String execute() throws Exception {ServletActionContext.getRequest().getSession().removeAttribute("username");return "login";}}

package com.buaa.action;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionSupport;public class LoginAction extends ActionSupport {@Overridepublic String execute() throws Exception {ServletActionContext.getRequest().getSession().setAttribute("username", "Jim");return "showOrder";}}

package com.buaa.action;import com.opensymphony.xwork2.ActionSupport;public class OrderAction extends ActionSupport{@Overridepublic String execute() throws Exception {return "showOrder";}}


三、jsp页面

index.jsp

<%@ page language="java" import="java.util.*" 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>    <base href="<%=basePath%>">        <title>My JSP 'index.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">-->  </head>    <body>    商品展示页面,可以选择商品并放入购物车    <a href="order.action">提交订单</a>  </body></html>

login.jsp页面


<%@ page language="java" import="java.util.*" 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>    <base href="<%=basePath%>">        <title>My JSP 'index.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">-->  </head>    <body>   <a href="login.action">登录</a>  </body></html>

layout.jsp页面:

<%@ page language="java" import="java.util.*" 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>    <base href="<%=basePath%>">        <title>My JSP 'layout.jsp' starting page</title>    <meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">-->  </head>    <body>   <a href="layout.action">退出</a>  </body></html>

showOrder.jsp页面:

<%@ page language="java" import="java.util.*" 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>    <base href="<%=basePath%>">        <title>My JSP 'showOrder.jsp' starting page</title>    <meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">-->  </head>    <body>    订单信息展示页面  </body></html>



三,在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><package name="default" namespace="/" extends="struts-default"><interceptors><interceptor name="myInte" class="com.buaa.interceptor.MyInterceptor"></interceptor></interceptors><action name="order" class="com.buaa.action.OrderAction"><interceptor-ref name="myInte"></interceptor-ref><result name="showOrder">/showOrder.jsp</result><result name="login">/login.jsp</result></action><action name="login" class="com.buaa.action.LoginAction"><result name="showOrder">/showOrder.jsp</result></action><action name="layout" class="com.buaa.action.layoutAction"><result name="login">/login.jsp</result></action></package></struts>


0 0
原创粉丝点击