struts2简单入门demo-struts2环境搭建 Myth丶恋晨 2022-09-18 07:54 176阅读 0赞 这学期开始学习框架了,老师讲的很快,东西基本都靠自己摸索。写了几个简单的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][WebDemo1_1] \#[CSDN@CSU-Max][CSDN_CSU-Max] [SouthEast]: /images/20220828/ea6d1157f4f746938c61ea841beb855e.png [WebDemo1_1]: http://pan.baidu.com/share/link?shareid=3069009782&uk=4011316916 [CSDN_CSU-Max]: http://blog.csdn.net/csu_max
还没有评论,来说两句吧...