初识Struts
来源:互联网 发布:女孩子湿有多夸张知乎 编辑:程序博客网 时间:2024/06/06 16:51
感觉学习代码这个东西,就是不停的模仿,重复,模仿,重复,直到不用看别人的代码也可以写出项目了,就是出师的时候了,没事做做复习,复习一下平时学习的东西,以防忘记了。
最近老师带着我们认识了一下struts框架,说是当前最流行的框架,下面就来复习,复习。(学习项目下载链接:http://pan.baidu.com/s/1c0B6Tw8)
Struts的方便之处在于简单易懂,方便使用,特别在MVC模式下。
下面就进入复习的内容了:
首先在Oracle数据库中创建一个用户信息表(UserInfo):
create table user_info( userid varchar2(30) primary key, username varchar2(50) not null, passwd varchar2(30) default '123456' not null, priv varchar2(30) default 'common' not null check(priv in('director','common')), 权限 login_time timestamp default systimestamp not null, 登录时间 logout_time timestamp default systimestamp not null, 退出时间 login_host varchar2(30) default '127.0.0.1' not null 用户地址);
用我们老师的话说,创建表的约束条件越多越好。
创建一个jspreview项目,建立model包(com.edu.model),相应的创建一个UserInfo.Class,对应数据库中的表,这里就不贴代码了,链接上面有。接下来就是对应的Dao包(com.edu.dao)了,创建一个类UserInfoDao.Class,差不多就是一个实现类吧,就是对数据库的一些操作,增删查改等等。
public class UserInfoDao { // 用户添加 public Integer insertOne(UserInfo user){ String sql = "insert into user_info(userid,username,priv) values(?,?,?)"; Object[] params = new Object[]{user.getUserid(),user.getUsername(),user.getPriv()}; return DBHelper.executeUpdate(sql, params); } //用户登录 public UserInfo getLoginUser(UserInfo user){ String sql = "update user_info set login_time=systimestamp,login_host=? where userid=? and passwd=?"; Object[] params = new Object[]{user.getLoginHost(),user.getUserid(),user.getPasswd()}; int ret = DBHelper.executeUpdate(sql, params); if (ret == 0) { return null; } sql = "select * from user_info where userid=? and passwd=?"; params = new Object[]{user.getUserid(),user.getPasswd()}; return DBHelper.getOne(sql, params, UserInfo.class); } //修改密码 public Integer updatePasswd(UserInfo user){ String sql = "update user_info set passwd=? where userid=?"; Object[] params = new Object[]{user.getPasswd(),user.getUserid()}; return DBHelper.executeUpdate(sql, params); } //退出登录 public Integer userLogout(UserInfo user){ String sql = "update user_info set logout_time=systimestamp where userid=?"; System.out.println(user); Object[] params = new Object[]{user.getUserid()}; return DBHelper.executeUpdate(sql, params); } //获得所有用户 public List<UserInfo> getAll(){ return DBHelper.getList("select * from user_info", UserInfo.class); }}
写完这个类最好创建一个Test包(com.edu.test),免得后面出错脑袋容易成浆糊,这里测试通过,至少说明对数据库的操作没有问题。如下:
public class UserInfoDaoTest { private UserInfoDao dao = new UserInfoDao(); @Test public void getAllTest() { System.out.println(dao.getAll()); }}
这里打Test标签,就可以使用JUnit Test测试啦!
注意!重点来了,要进行Struts的配置了:
1.web.xml的配置:
<!-- Struts2的全局过滤器 --> <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>
个人理解的意思就是那些页面要使用Struts来进行处理,我这里选的是全部(/*)。
2.在src目录下创建一个struts.xml的xml文件
<?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> <!-- 请求映射,以及结果映射 --> <!-- 配置所有指向/userinfo/xxx.action的请求 --> <package name="userinfo" namespace="/userinfo" extends="struts-default"> <action name="useradd" class="com.edu.action.UserInfoAction" method="userAdd"> <result name="success">/userinfo/addok.jsp</result> </action> </package></struts>
Action标签中,name是jsp那边指定的Action名称,class是要执行方法所在的类名(要求全名哦),method指的是方法名,千万不要敲错了。
还有就是导入架构包,应该不会出错了。
下面就进行测试了:
创建一个Action包(com.edu.action),创建一个LoginAction继承自ActionSupport:
public class UserInfoAction extends ActionSupport{ private UserInfo user; private UserInfoDao dao = new UserInfoDao(); // 用户添加 public String userAdd(){ dao.insertOne(user); return "success";// 这里的success会返回到struts.xml中的result标签上面 } public UserInfo getUser() { return user; } public void setUser(UserInfo user) { this.user = user; }}
页面上的代码就不详细解释了,注意一点不要写错标签中的Action就行了,还有就是页面上的标签信息会直接传到Action中,不用像Servlet中那样GetAttribute直接就从页面中传过来了,例如:用户名标签<tr><td>用户ID:</td><td><input type="text" name="user.userid"></td></tr>
只要这里的name能对应上,Action中的user就有值。
好了,复习就到这里吧,有什么错误希望大神指出来。
- 初识struts
- 初识struts
- 初识struts
- struts初识
- 初识Struts
- 初识struts
- Struts(1)初识Struts
- 初识Struts 2
- struts征程:1.初识struts2
- 初识J2EE框架(struts+hibernate+spring)
- struts 2学习进阶 初识struts2(一)
- 初识Struts,快速熟悉小练习
- 《深入浅出struts2》--第二章,初识struts
- Struts 2视频开发教程--第一讲,初识Struts 2
- Struts 2视频开发教程--第一讲,初识Struts 2
- json-struts使用教程(1)-初识json-struts
- 简介SSH框架、SSH框架之Struts的初识、Struts开发流程详解、Struts执行流程
- 初识Struts(九)-------动态验证框架validator
- 十进制转化为二进制
- shader 入门 《光栅化目的》
- linux 下php环境搭建
- Android数据库工具
- 习题3-28
- 初识Struts
- css学习基础之css sprite
- Linux中Nginx安装与配置(CentOS-6.5:nginx-1.5.0)
- Varnish介绍
- Struts2配置
- AbstractFactory Pattern(抽象工厂模式)
- mongodb学习笔记
- 服务器测试工具【Netperf、NetIQ Chariot、NetBench、ServerBench、FileBench、BenchMark Factory等】
- Android核心基础-3.Android 开发环境搭建