一个普通的的web应用文件结构如下:
1. 最上层是应用名,区分大小写,在浏览器输入应用名的时候,必须与应用名的大小一样,例如:localhost:8080/HelloWorld
2. 在应用下,放有很多文件,其中WEB-INF文件夹为必须有的,其余的文件包括一些页面文件,或者样式文件,例如*.jsp,*.css文件等
3. WEB-INF里面放有2个文件夹,lib和classes,和一个文件,web.xml,lib是放一些类库文件,classes是放.class文件,web.xml文件内,编写一些配置内容
按照以上的文件结构编写后,会得出一个普通的web应用,如果想使用struts框架,只需要做一下的几个步骤
1. 把struts2框架的类库放到WEB-INF/lib下
2. 在web.xml文件中,添加struts2的核心过滤器Filter
3. 在WEB-INF/classes下添加struts.xml配置文件
下面看看具体实行
我们先来写一个Action类,action类相当于MVC的控制器control,当用户发出请求信息到服务器时,struts2的机制,拦截器filter就会根据配置访问相应的action,struts2与struts1的区别是后者比较紧耦合,action类都要继承Action这个类,就是说,依赖servlet api,这样的话,这个类除了能在servlet api使用,而不能在其它不带这个框架的地方使用这个类,在struts2的action类里面,不需要继承Action这个类
public class NewHelloWorld { private String userName; private String userPassword; public String getUserName() { return userName; } public String getUserPassword() { return userPassword; } public void setUserName(String userName) { this.userName = userName; } public void setUserPassword(String userPassword) { this.userPassword = userPassword; } public String execute() throws Exception { if (userName.equals("peter") && userPassword.equals("123456")) { return "success"; } else { return "error"; } } }
现在有了Action类,但是用户请求的信息,struts2是无法知道它是如何处理的,必须配置这个类,与对应的请求地址对应,这样的映射配置在WEB-INF/classes/struts.xml里面