<?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>

struts2 框架的基本使用的更多相关文章

  1. Struts2框架基础

    Struts2框架基础 1.Java的框架 1.1.框架简介 在大型项目开发过程中,经常会使用到一些框架,这样做好的好处是能够提高工作效率,在java中最常用的的框架就是SSH,这其实是三个框架的简称 ...

  2. Struts2框架简介和示例

    struts2框架 Struts2是java web的框架,在Java Web开发中,表示层框架,其核心是通过扩展Servlet来帮助处理http请求. Struct2的基本流程 Struct2的框架 ...

  3. struts2 框架处理流程

    struts2 框架处理流程 流程图如下: 注意:StrutsPrepareAndExecuteFilter替代了2.1.3以前的FilterDispatcher过滤器,使得在执行Action之前可以 ...

  4. 搭建一个简单struts2框架的登陆

    第一步:下载struts2对应的jar包,可以到struts官网下载:http://struts.apache.org/download.cgi#struts252 出于学习的目的,可以把整个完整的压 ...

  5. Struts2框架之-注解开发

    Struts2主要解决了从JSP到Action上的流程管理,如何进行Uri和action类中每个方法的绑定这是重点,在这里先简单看一下配置文件中的简单配置: <span style=" ...

  6. Struts2 框架的快速搭建

    方便myEclipse 手动配置Struts2框架,写下此文,需要的朋友拿走不谢~ 一.引入JAR包 WEB工程->WebRoot->WEB-INF->lib引入Struts2对应版 ...

  7. struts2框架 初始别

    struts2 是webwork和struts合并而来. 1.下载struts2 说明: Full Distribution: 为完整版下载,建议下载它 Example Applications:st ...

  8. struts2框架快速入门小案例

    struts2快速入门: index.jsp------>HelloAction--------->hello.jsp struts2流程 1.导入jar包 struts2的目录结构: a ...

  9. 搭建struts2框架

    struts是一个经典的MVC模式拦截器比过滤器拦截的力度更大 搭建struts2框架1.引入lib包 9个(2.3版本的)common-fileupload;common-io;common-lan ...

  10. Struts2学习笔记-jsp中引用struts2框架

    如果在jsp中需要引用struts2 框架,需在前面加上以下内容 <%@taglib prefix="s" uri="/struts-tags" %> ...

随机推荐

  1. 记一次诡异的网络故障排除 - tpc_tw_recycle参数引起的网络故障

    一.故障现象 我们团队访问腾讯云上部署的测试环境中的Web系统A时,偶尔会出现类似于网络闪断的情况,浏览器卡很久没有反应,最终报Connection Timeout. 不过奇怪的是,当团队中的某个人无 ...

  2. typedeifn typename

    1.类型说明typedef 类型说明的格式为: typedef  类型 定义名; 类型说明只定义了一个数据类型的新名字而不是定义一种新的数据类型.定义名表示这个类型的新名字. 例如: 用下面语句定义整 ...

  3. 处理get中文乱码

    package com.servlet;              import java.io.IOException;       import java.io.PrintWriter;      ...

  4. LOJ10050 The XOR Largest Pair

    题意 在给定的 \(N\) 个整数 \(A_1,A_2,-,A_N\) 中选出两个进行异或运算,得到的结果最大是多少? 对于 \(100\%\) 的数据,\(1\le N\le 10^5, 0\le ...

  5. C语言 产生随机数

    rand()函数 #include <stdlib.h> int rand(void); rand()是根据某个种子,以特定的算法,计算出一系列数的函数.返回的数在0和RAND_MAX之间 ...

  6. Angular2语法指南

    引导 import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; platformBrowserDynami ...

  7. 提升Apache网站访问速度的优化方法

    Apache是世界使用排名第一的Web服务器软件.它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一. 在Apache服务器上怎样优化才能提高 ...

  8. linux 系统创建软连接

    ln -s /data/var/ /usr/local/smokeping/var 需求:/var/本身在/usr/local/smokeping/var下,想要把/usr/local/smokepi ...

  9. python开发函数进阶:可迭代的&迭代器&生成器

    一,可迭代的&可迭代对象 1.一个一个的取值就是可迭代的   iterable#str list tuple set dict#可迭代的 ——对应的标志 __iter__ 2.判断一个变量是不 ...

  10. linux输入子系统概念介绍

    在此文章之前,我们讲解的都是简单的字符驱动,涉及的内容有字符驱动的框架.自动创建设备节点.linux中断.poll机制.异步通知.同步互斥.非阻塞.定时器去抖动. 上一节文章链接:http://blo ...