首页 > 其他分享 >struts2 intercepter简单例子

struts2 intercepter简单例子

时间:2023-06-11 23:01:33浏览次数:62  
标签:String struts2 例子 user intercepter import com public

玩了一天终于把struts2的intercepter搞明白了,有那么点小兴奋,呵呵。

下面把俺的成果分享一下:

1.在注册页面中(index.jsp)注册一下:

 

 

<%
     session.setAttribute("user","lzw");
      %>

2.在登录界面(login.jsp)登录:

<form action="login.action" method="post"> <table align="center"> <tr> <td> 用户名: </td> <td> <input type="text" name="userName" /> </td> </tr> <tr> <td> 密  码: </td> <td> <input type="password" name="password" /> </td> </tr> <tr align="center"> <td colspan="2"> <input type="submit" value="登录" /> </td> </tr> </table> </form>
3.登录类:LoginAction.java
 
package com.lzw.action; import java.util.Map; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; public class LoginAction extends ActionSupport { private String userName; private String password; public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @Override public String execute() throws Exception { System.out.println("开始执行execute()"); Map<String,Object> map = ActionContext.getContext().getSession(); String user = (String) map.get("user"); System.out.println("The user'name is ---------- "+user); return SUCCESS; } }
 
4.success.jsp页面
 
 welcome   ${userName} to struts2 world。
 
 
 

  
 
 

  5.拦截器类:LoginInterceper.java
 
 
 

  
 
 
package com.lzw.intercepter; import java.util.Map; import com.opensymphony.xwork2.Action; import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.interceptor.AbstractInterceptor; public class LoginIntercepter extends AbstractInterceptor { @Override public String intercept(ActionInvocation invocation) throws Exception { Map<String, Object> session = invocation.getInvocationContext() .getSession(); String user = (String) session.get("user"); System.out.println("11---------------- " + user); if ("".equals(user)||null==user) { System.out.println("22---------------- "); return Action.INPUT; } else { System.out.println(" 33---------------- " + user); return invocation.invoke(); } } }
 
 

 
 
6.struts2配置文件struts.xml
 
 

 
 
<!DOCTYPE struts PUBLIC  
 
  
        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"  
 
  
        "http://struts.apache.org/dtds/struts-2.0.dtd">
 
  
<struts>
 
  
 <package name="struts" extends="struts-default">
 
  
 <interceptors>
 
  
 <interceptor name="authority" class="com.lzw.intercepter.LoginIntercepter" />
 
  
 <interceptor-stack name="loginStack">
 
  
 <interceptor-ref name="authority" />
 
  
 <interceptor-ref name="defaultStack" />
 
  
 </interceptor-stack>
 
  
 </interceptors>
 
  
 <default-interceptor-ref name="loginStack" />
 
  

 
  
 <action name="login" class="com.lzw.action.LoginAction">
 
  
 <result>/success.jsp</result>
 
  
 <result name="input" type="redirect">/login.jsp</result>
 
  
 </action>
 
  
 </package>
 
  
</struts>  
 
 

 
 

 
 
7.web.xml
 
 

 
 
<?xml version="1.0" encoding="UTF-8"?>
 
  
<web-app version="2.5" 
 
  
 xmlns="http://java.sun.com/xml/ns/javaee" 
 
  
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 
  
 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
 
  
 http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
 
  
  <welcome-file-list>
 
  
    <welcome-file>index.jsp</welcome-file>
 
  
  </welcome-file-list>
 
  
   <filter>
 
  
        <filter-name>struts2</filter-name>
 
  
        <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
 
  
    </filter>
 
  
    <filter-mapping>
 
  
        <filter-name>struts2</filter-name>
 
  
        <url-pattern>/*</url-pattern>
 
  
    </filter-mapping>
 
  
  
 
  
</web-app>




8.部署到tomcat服务器上,在地址栏上输入:http://localhsot:8080/test来注册,



再重新输入:http://localhost:8080/test/login.jsp

标签:String,struts2,例子,user,intercepter,import,com,public
From: https://blog.51cto.com/u_16065168/6459274

相关文章

  • javascript操作xml(增删改查)例子代码
    关键字:javascript操作xml(增删改查)自己做了一个小东西,不是很好,但是对初学来说是一个不错的例子!包括了stu.hta(是HTML应用程序);stu.xml注意下面的HTML代码必须保存为后缀名为hta否则当对XML文件进行操作(增删改)的时候就会提示没有权限!!文件stu.hta代码如......
  • JAVA微信扫码支付模式二功能实现完整例子
    概述本例子实现微信扫码支付模式二的支付功能,应用场景是,web网站微信扫码支付。实现从点击付费按钮、到弹出二维码、到用户用手机微信扫码支付、到手机上用户付费成功、web网页再自动调整到支付成功后的页面,这一个过程。详细一、准备工作先开通微信公众号,再开通微......
  • delphi 回调函数例子 用函数过程作为参数
    转:今天有个朋友问我怎么用函数或者过程作为函数的参数呢,我说网上有挺多的,然而他告诉我很多例子运行不起来,我搜了几个测试了下,不知道是不是我自己的软件版本的问题,运行不了,所以自己研究了下,把自己能运行的贴出来,和大家分享分享。先说说回调函数需要注意的几个步骤吧,首先要声明一......
  • Spring 学习笔记(1)—— 通过一个小例子体会 IoC 的概念
    《墨攻》中的一个场面,刘德华所饰演的墨者——革离,到达梁国都成下时候,城上的梁国守军问道:“来者何人?”,刘德华回答:“墨者革离!”使用Java语言为这个场景“城门叩问”的场景编写剧本。革离是《墨攻》剧本中一个角色,我们用一个接口(interface)来表示这个角色GeLi.javapackagecom.smart.io......
  • 25)m2e-execution-not-covered 具体例子
    http://www.eclipse.org/m2e/documentation/m2e-execution-not-covered.html  这个插件定义的phase不包含在Eclipsem2e的生命周期内。(这种情况很正常,自己定义的插件所在的phase可以是各种各样的) 出现这种情况除了有个讨厌的红叉,不会影响正常的mavenbuild,只是eclipse......
  • JavaScript 递归的简单例子
     typescript+vue3functionflattenTree(tree:any,result:any){tree.forEach((node:any)=>{result.push({id:node.id,cat_name:node.cat_name,cat_name_en:node.cat_name_en});if(node.child.length>0){flattenTree(node.child,r......
  • pomelo广播的实现(chat例子分析)
         其实最开始要读pomelo框架无非是因为自己没有读过什么node.js框架的源码,不过后来就逐渐变成了想要知道pomelo框架是如何实现广播的,貌似这也是游戏服务器比较重要的功能吧。。。。一开始会觉得这种广播在分布式的环境下实现会比较的复杂。。但是当搞明白了pomelo的实现之......
  • Spring 3.0.5+MyBatis3.0.4整合非完全例子
    基于注解的mybatis和spring整合:[url]http://huangmin001.iteye.com/blog/1185806[/url][color=red]这个文章说的很详细,很值得一看[/color].Maven+SpringMVC+Mybatis【绝非原创,单纯整理】【四】:[url]http://playgod1984.iteye.com/blog/984113[/ur......
  • c语言的几个陷阱和代码例子
    数组越界:intarr[3]={1,2,3};arr[3]=4;//数组越界for(inti=0;i<=3;i++){printf("%d\n",arr[i]);//数组越界}在上述代码中,由于数组下标从0开始,arr[3]越界访问了数组最后一个元素的位置,此时程序可能会崩溃或者产生其他不确定的结果;另外在循环中因......
  • postman 常用参数例子
    文档路径:https://learning.postman.com/docs/getting-started/navigating-postman/常用tests用法如下:1.检查responsebody中是否包含某个stringtests["Bodymatchesstring"]=responseBody.has("string_you_want_to_search");注意:"Bodymatchesstring"......