struts2简单入门demo-struts2环境搭建
这学期开始学习框架了,老师讲的很快,东西基本都靠自己摸索。写了几个简单的struts2的小项目,对它简单的应用已经有一定了解了。
平时写的时候都很随便,没有很好的分层,一般就Action,Service,Dao,没有做到很好的解耦。
最近看了一些好的例子,学习了里面的分层结构,对于数据访问层和业务逻辑层都将接口和实现类分开了。
越来越觉得接口是个好东西了,虽然设计接口很难,这是后话哈。
下面进入正题:
/*@version 1.0*/
本版本demo的功能就是简单的登录操作,成功则进入欢迎页面,失败则返回登录页面。
这个登录功能会不断增加新的功能,希望以后能做成一个登录模版。
工程建构:
![SouthEast][]
简单流程:
1、建数据库
本demo用到的表就一张user表:\[id , username, password\]。
2、工程创建
新建一个web工程,将struts2的核心架包拷入WEB-INF下的lib文件夹,修改web.xml中的配置信息,在src文件夹下创建struts.xml文件,这个文件可以在struts2的blank这个 Sample中看到。
<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>
<welcome-file-list>
<welcome-file>/WEB-INF/jsp/login.jsp</welcome-file>
</welcome-file-list>
其中welcome-file-list是用于设置默认的主页
3、创建几个jsp页面
这个里面要用到struts2的标签,当然此处用到的是最简单的。
<div>
<center>
<h1>欢迎登录</h1>
<s:form action="login" method="post" >
<s:textfield name="user.username" label="用户名"></s:textfield>
<s:password name="user.password" label="密 码"></s:password>
<tr>
<td><s:submit value="登录" theme="simple"></s:submit></td>
<td><s:reset value="重填" theme="simple"></s:reset></td>
</tr>
</s:form>
</center>
</div>
同时要声明使用struts2的标签:
<%@ taglib prefix="s" uri="/struts-tags" %>
欢迎界面的主要代码:
<font size="4">欢迎你:</font>
<font size="5"> ${currentUser.username }</font>
4、建包分层写代码
一般我的顺序是 数据库连接工具类->bean->dao->daoImpl->service->serviceImpl->action->struts.xml中配置。
完成工作的主要就daoImpl类和action类。
daoImp类:
/*数据访问层的实现类*/
public class UserDaoImpl implements UserDao{
private static String findString = "select * from user where username=? and password=?";
public User find(User user) throws Exception{
User result = null;
Connection conn = null;
PreparedStatement pstm = null;
ResultSet rs = null;
try {
conn = DBUtil.getConnection();
pstm = conn.prepareStatement(findString);
pstm.setString(1, user.getUsername());
pstm.setString(2, user.getPassword());
rs = pstm.executeQuery();
if(rs.next()){
result = new User();
result.setId(rs.getInt(1));
result.setUsername(rs.getString(2));
result.setPassword(rs.getString(3));
}
} catch (Exception e) {
throw e;
}finally{
DBUtil.closeResultSet(rs);
DBUtil.closePreparedStatement(pstm);
DBUtil.closeConnection(conn);
}
return result;
}
}
action类:
public class UserAction extends ActionSupport implements SessionAware{
private User user;
private UserService userService;
//创建一个session,用于保存当前登录用户信息
private Map<String, Object> session;
public UserAction() {
this.userService = new UserServiceImpl();
}
public String execute() throws Exception{
return INPUT;
}
public String login() throws Exception{
user = userService.login(user);
if(user != null){
//查询到结果则将user存入session中
session.put("currentUser", user);
return SUCCESS;
}else{
return INPUT;
}
}
......
}
demo就简单介绍到这吧,刚学的同学可以学着自己实践一下,巧能补拙,我们一起加油吧。
$demo下载地址:WebDemo1_1 #CSDN@CSU-Max
还没有评论,来说两句吧...