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

Myth丶恋晨 2022-09-18 07:54 350阅读 0赞
  1. 这学期开始学习框架了,老师讲的很快,东西基本都靠自己摸索。写了几个简单的struts2的小项目,对它简单的应用已经有一定了解了。

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

  1. 最近看了一些好的例子,学习了里面的分层结构,对于数据访问层和业务逻辑层都将接口和实现类分开了。
  2. 越来越觉得接口是个好东西了,虽然设计接口很难,这是后话哈。
  3. 下面进入正题:

/*@version 1.0*/

  1. 本版本demo的功能就是简单的登录操作,成功则进入欢迎页面,失败则返回登录页面。
  2. 这个登录功能会不断增加新的功能,希望以后能做成一个登录模版。

工程建构:

  1. ![SouthEast][]

简单流程:

1、建数据库

  1. demo用到的表就一张user表:\[id , username, password\]

2、工程创建

  1. 新建一个web工程,将struts2的核心架包拷入WEB-INF下的lib文件夹,修改web.xml中的配置信息,在src文件夹下创建struts.xml文件,这个文件可以在struts2blank这个 Sample中看到。
  2. <filter>
  3. <filter-name>struts2</filter-name>
  4. <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  5. </filter>
  6. <filter-mapping>
  7. <filter-name>struts2</filter-name>
  8. <url-pattern>/*</url-pattern>
  9. </filter-mapping>
  10. <welcome-file-list>
  11. <welcome-file>/WEB-INF/jsp/login.jsp</welcome-file>
  12. </welcome-file-list>

其中welcome-file-list是用于设置默认的主页

3、创建几个jsp页面

  1. 这个里面要用到struts2的标签,当然此处用到的是最简单的。
  2. <div>
  3. <center>
  4. <h1>欢迎登录</h1>
  5. <s:form action="login" method="post" >
  6. <s:textfield name="user.username" label="用户名"></s:textfield>
  7. <s:password name="user.password" label="密 码"></s:password>
  8. <tr>
  9. <td><s:submit value="登录" theme="simple"></s:submit></td>
  10. <td><s:reset value="重填" theme="simple"></s:reset></td>
  11. </tr>
  12. </s:form>
  13. </center>
  14. </div>

同时要声明使用struts2的标签:

  1. <%@ taglib prefix="s" uri="/struts-tags" %>

欢迎界面的主要代码:

  1. <font size="4">欢迎你:</font>
  2. <font size="5"> ${currentUser.username }</font>

4、建包分层写代码

  1. 一般我的顺序是 数据库连接工具类->bean->dao->daoImpl->service->serviceImpl->action->struts.xml中配置。
  2. 完成工作的主要就daoImpl类和action类。

daoImp类:

  1. /*数据访问层的实现类*/
  2. public class UserDaoImpl implements UserDao{
  3. private static String findString = "select * from user where username=? and password=?";
  4. public User find(User user) throws Exception{
  5. User result = null;
  6. Connection conn = null;
  7. PreparedStatement pstm = null;
  8. ResultSet rs = null;
  9. try {
  10. conn = DBUtil.getConnection();
  11. pstm = conn.prepareStatement(findString);
  12. pstm.setString(1, user.getUsername());
  13. pstm.setString(2, user.getPassword());
  14. rs = pstm.executeQuery();
  15. if(rs.next()){
  16. result = new User();
  17. result.setId(rs.getInt(1));
  18. result.setUsername(rs.getString(2));
  19. result.setPassword(rs.getString(3));
  20. }
  21. } catch (Exception e) {
  22. throw e;
  23. }finally{
  24. DBUtil.closeResultSet(rs);
  25. DBUtil.closePreparedStatement(pstm);
  26. DBUtil.closeConnection(conn);
  27. }
  28. return result;
  29. }
  30. }

action类:

  1. public class UserAction extends ActionSupport implements SessionAware{
  2. private User user;
  3. private UserService userService;
  4. //创建一个session,用于保存当前登录用户信息
  5. private Map<String, Object> session;
  6. public UserAction() {
  7. this.userService = new UserServiceImpl();
  8. }
  9. public String execute() throws Exception{
  10. return INPUT;
  11. }
  12. public String login() throws Exception{
  13. user = userService.login(user);
  14. if(user != null){
  15. //查询到结果则将user存入session中
  16. session.put("currentUser", user);
  17. return SUCCESS;
  18. }else{
  19. return INPUT;
  20. }
  21. }
  22. ......
  23. }
  24. demo就简单介绍到这吧,刚学的同学可以学着自己实践一下,巧能补拙,我们一起加油吧。

$demo下载地址:WebDemo1_1 #CSDN@CSU-Max

发表评论

表情:
评论列表 (有 0 条评论,350人围观)

还没有评论,来说两句吧...

相关阅读