您的位置:首页 > 编程语言 > Java开发

struts2简单入门demo-struts2环境搭建

2013-11-12 19:30 591 查看
        这学期开始学习框架了,老师讲的很快,东西基本都靠自己摸索。写了几个简单的struts2的小项目,对它简单的应用已经有一定了解了。

平时写的时候都很随便,没有很好的分层,一般就Action,Service,Dao,没有做到很好的解耦。

        最近看了一些好的例子,学习了里面的分层结构,对于数据访问层和业务逻辑层都将接口和实现类分开了。

       越来越觉得接口是个好东西了,虽然设计接口很难,这是后话哈。

       下面进入正题:

/*@version 1.0*/

       本版本demo的功能就是简单的登录操作,成功则进入欢迎页面,失败则返回登录页面。

       这个登录功能会不断增加新的功能,希望以后能做成一个登录模版。

工程建构:

                  


简单流程:

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

   
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息