struts.xml
struts2配置文件,因为我们为Action配置了拦截器,默认的拦截器就会失效。为了程序的正常运行,需要我们显示引入默认拦截器。
1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> 3 <struts> 4 <package name="lee" extends="struts-default" namespace="/"> 5 <interceptors > 6 <interceptor name="log" class="Interceptor.Myinterceptor"></interceptor> 7 </interceptors> 8 <action name="Login" class="Action.LoginAction" > 9 <result name="input">index.jsp</result> 10 <result name="success">WEB-INF/success.jsp</result> 11 <interceptor-ref name="log"/> 12 <!-- 我们为一个Action配置了拦截器时,默认的拦截器就会失效, 13 但是Struts2本身的一些功能,比如说参数自动赋值又是依赖配置的默认拦截器实现, 14 所有应用程序会出错。这时需要我们手动将默认的拦截器引用进来,再为这项Action加入默认拦截器 --> 15 <interceptor-ref name="defaultStack"/> 16 </action> 17 18 </package> 19 20 </struts>
Myinterceptor.java
自定义的拦截器,继承了AbstractInterceptor类,并重写intercept方法
1 package Interceptor; 2 3 import Action.LoginAction; 4 5 import com.opensymphony.xwork2.ActionInvocation; 6 import com.opensymphony.xwork2.interceptor.AbstractInterceptor; 7 8 public class Myinterceptor extends AbstractInterceptor { 9 10 /** 11 * 12 */ 13 private static final long serialVersionUID = 1L; 14 15 16 17 @Override 18 public String intercept(ActionInvocation invocation) throws Exception { 19 // TODO Auto-generated method stub 20 LoginAction action=(LoginAction) invocation.getAction(); 21 System.out.println("########interceptor#########"); 22 String result=invocation.invoke(); 23 System.out.println(result); 24 25 return result; 26 } 27 28 }
LoginAction.java
struts2的action,继承ActionSupport类
1 package Action; 2 3 import com.opensymphony.xwork2.ActionSupport; 4 5 public class LoginAction extends ActionSupport { 6 7 /** 8 * 9 */ 10 private static final long serialVersionUID = 1L; 11 private String userName; 12 private String passwd; 13 14 public String getUserName() { 15 return userName; 16 } 17 18 public void setUserName(String userName) { 19 this.userName = userName; 20 } 21 22 public String getPasswd() { 23 return passwd; 24 } 25 26 public void setPasswd(String passwd) { 27 this.passwd = passwd; 28 } 29 30 @Override 31 public String execute() throws Exception { 32 // TODO Auto-generated method stub 33 System.out.println("#####LoginAction########"); 34 System.out.println(this.getUserName()); 35 if (this.userName.equals("frank")) 36 return SUCCESS; 37 return INPUT; 38 } 39 40 }
index.jsp
简单的登录界面
1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 2 <% 3 String path = request.getContextPath(); 4 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 5 %> 6 7 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 8 <html> 9 <head> 10 <base href="<%=basePath%>"> 11 12 <title>My JSP ‘index.jsp‘ starting page</title> 13 <meta http-equiv="pragma" content="no-cache"> 14 <meta http-equiv="cache-control" content="no-cache"> 15 <meta http-equiv="expires" content="0"> 16 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> 17 <meta http-equiv="description" content="This is my page"> 18 <!-- 19 <link rel="stylesheet" type="text/css" href="styles.css"> 20 --> 21 </head> 22 23 <body> 24 <form action="Login" method="post"> 25 <input type="text" name="userName" ><br> 26 <input type="password" name="passwd"><br> 27 <input type="submit" value="submit"> 28 </form> 29 </body> 30 </html>
web.xml
1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> 3 <display-name>interceptorTest</display-name> 4 <welcome-file-list> 5 <welcome-file>index.html</welcome-file> 6 <welcome-file>index.htm</welcome-file> 7 <welcome-file>index.jsp</welcome-file> 8 <welcome-file>default.html</welcome-file> 9 <welcome-file>default.htm</welcome-file> 10 <welcome-file>default.jsp</welcome-file> 11 </welcome-file-list> 12 <filter> 13 <filter-name>struts2</filter-name> 14 <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> 15 </filter> 16 <filter-mapping> 17 <filter-name>struts2</filter-name> 18 <url-pattern>/*</url-pattern> 19 </filter-mapping> 20 </web-app>
时间: 2024-10-17 09:15:16