struts2 框架的基本使用
2017-02-23 20:14 甘雨路 阅读(179) 评论(0) 编辑 收藏 举报<?xml version="1.0" encoding="UTF-8"?> <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"> <!-- 配置struts2 的拦截路径 --> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- END 配置struts2 的拦截路径 --> </web-app>
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <!-- <constant name="struts.action.extension" value=",action,do" /> --> <constant name="struts.devMode" value="true" /> <!-- http://localhost:8080/lf/dev_thing --> <package name="myPackage" namespace="/lf" extends="struts-default"> <!-- 配置拦截器 --> <interceptors> <!-- 拦截器有三种 --> <interceptor name="loginInterceptor" class="cn.zr.struts2.interceptor.LoginInterceptor"/> <interceptor name="twoInterceptor" class="cn.zr.struts2.interceptor.TwoInterceptor"/> <interceptor name="threeInterceptor" class="cn.zr.struts2.interceptor.ThreeInterceptor"/> <interceptor-stack name="testStack"> <interceptor-ref name="defaultStack" /> <interceptor-ref name="loginInterceptor"/> <interceptor-ref name="threeInterceptor"/> <interceptor-ref name="twoInterceptor"> <param name="excludeMethods">thing</param> <param name="includeMethods">update</param> </interceptor-ref> </interceptor-stack> </interceptors> <!-- 换掉默认拦截器 --> <default-interceptor-ref name="testStack"/> <action name="dev_*" class="cn.zr.struts2.action.LoginAction" method="{1}" > <!-- 视图 --> <result name="page" type="dispatcher"> /WEB-INF/jsp/login.jsp </result> </action> <action name="test_*" class="cn.zr.struts2.action.Register" method="{1}" > <result name="lf" type="dispatcher"> /WEB-INF/jsp/register.jsp </result> </action> <action name="inf_*" class="cn.zr.struts2.action.InfoAction" method="{1}" > <result name="info" type="dispatcher"> /WEB-INF/jsp/info.jsp </result> </action> </package> </struts>
<?xml version="1.0" encoding="UTF-8"?> <!-- log4j2.xml文件配置--> <Configuration> <Appenders> <Console name="STDOUT" target="SYSTEM_OUT"> <PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/> </Console> </Appenders> <Loggers> <Logger name="com.opensymphony.xwork2" level="debug"/> <Logger name="org.apache.struts2" level="debug"/> <Root level="warn"> <AppenderRef ref="STDOUT"/> </Root> </Loggers> </Configuration>
package cn.zr.struts2.action; import cn.zr.struts2.pojo.User; public class InfoAction extends SuperAction{ private User user; private String email; //根据Set的方法注入 public void setUser(User user) { this.user = user; } public User getUser() { return user; } public void setEmail(String email) { this.email = email; } public String getInfo(){ System.out.println("email:"+email); System.out.println("user:"+user); return "info"; } }
package cn.zr.struts2.action; public class LoginAction extends SuperAction{ public String thing(){ System.out.println("进入thing的方法......."); return "page"; } public String add() { System.out.println("welcome to here======"); System.err.println("request:"+request+",response:"+response+",session:"+session); return "page"; } public String update() { System.out.println("**** * update * ****"); return "page"; } }
package cn.zr.struts2.action; public class Register extends SuperAction{ public String testSome(){ System.out.println("测试+++"); return "lf"; } }
package cn.zr.struts2.action; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.apache.struts2.interceptor.ServletRequestAware; import org.apache.struts2.interceptor.ServletResponseAware; public class SuperAction implements ServletRequestAware,ServletResponseAware{ public HttpServletRequest request; public HttpServletResponse response; public HttpSession session; @Override public void setServletResponse(HttpServletResponse response) { this.response = response; } @Override public void setServletRequest(HttpServletRequest request) { this.request = request; this.session = request.getSession(); } }
package cn.zr.struts2.interceptor; import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.interceptor.Interceptor; public class LoginInterceptor implements Interceptor{ @Override public void destroy() { // TODO Auto-generated method stub } @Override public void init() { // TODO Auto-generated method stub } @Override public String intercept(ActionInvocation action) throws Exception { System.out.println("拦截前......."); String result = action.invoke(); System.out.println("=========拦截后......."); return result; } }
package cn.zr.struts2.interceptor; import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.interceptor.AbstractInterceptor; public class ThreeInterceptor extends AbstractInterceptor { @Override public String intercept(ActionInvocation action) throws Exception { System.out.println("tell me what do you want to do..."); String result = action.invoke(); System.out.println("OK, i let you go..."); return result; } }
package cn.zr.struts2.interceptor; import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.interceptor.MethodFilterInterceptor; public class TwoInterceptor extends MethodFilterInterceptor{ @Override protected String doIntercept(ActionInvocation action) throws Exception { System.out.println("开始拦截,哈哈哈。。。"); String result = action.invoke(); System.out.println("放你走,哈哈哈。。。"); return result; } }
package cn.zr.struts2.pojo; public class User { 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; } public User() { } public User(String username, String password) { this.username = username; this.password = password; } @Override public String toString() { return "User [username=" + username + ", password=" + password + "]"; } }
<%@ 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>info starting page</title> </head> <body> <h1>OK</h1> </body> </html>
<%@ 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>login 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> <h1>欢迎进入登录页面</h1> </body> </html>
<%@ 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>register page</title> </head> <body> <h1> welcome </h1> <form action="/lf/inf_getInfo.action" method="post"> <label>用户</label><input name="user.username"><br> <label>密码</label><input name="user.password"><br> <label>邮箱</label><input name="email"><br> <input type="submit" value="提交"> </form> </body> </html>