本文示例使用2.3版本的Struts2和MySQL数据库进行测试,实现简单的用户登录验证
一、新建Web项目struts2_01,导入相应的jar包
官网地址:http://struts.apache.org/download.cgi#struts252(开始可能打不开网址,建议多点击几次)
下载后解压,将其中struts2-blank项目所用的jar包导入;还要导入MySQL的jdbc驱动包
二:配置web.xml文件
配置一个struts的过滤器
<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>
三、建表、建包、编写各java类及jsp页面
请参考 JavaWeb实现MVC设计模式(实例解析)
有修改的地方:
1.将com.bo包的名字改为com.service,将其中的UserBo名称改为UserService,删除com.control包,新建com.action包,在com.action下编写UserAction.java,代码如下:
public class UserAction {
private String username;
private String password;
public void setUsername(String username) {
this.username = username;
}
public void setPassword(String password) {
this.password = password;
}
public String login(){
UserService userService=new UserService();
boolean validate=userService.checkUser(username, password);
//返回结果给控制器
if(validate){
return "success";
}else{
return "fail";
}
}
}
2、本例的jsp页面的目录布局如下:
在配置struts.xml文件时要注意与自己的jsp目录相匹配
四、配置struts.xml文件
1.在src目录下新建一个xml文件并命名为struts.xml
2.配置文件:
<?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.enable.DynamicMethodInvocation" value="true" />
<package name="struts2_01" extends="struts-default">
<action name="UserAction" class="com.action.UserAction">
<result name="success" >/WEB-INF/jsp/loginSuccess.jsp</result>
<result name="fail" >login.jsp</result>
</action>
</package>
</struts>
过程简介:
用户发送一个请求后,请求将被FilterDispatcher,即我们所配置的过滤器处理,Filter将根据struts.xml 文件所配置的映射关系,将请求转给对应的Action;在获取了Action的返回结果后,又根据struts.xml 文件所配置的映射关系,将符合要求的jsp返回给用户