SHH+maven+SVN+Oracle+tomcat8.0之struts
来源:互联网 发布:怎样开通手机淘宝 编辑:程序博客网 时间:2024/06/08 03:16
struts原理:
在一个servlet中实现多个功能
分层次:
dao层增删改查操作
Biz层调用dao层的操作完成需求
action层调用Biz层完成某种操作
本例采用MVC的开发模式
M-Model javaBean以及对javabean的操作
V—View视图,jsp/Html
C-control,Servlet
servlet的作用:
请求数据封装数据
调用service处理业务逻辑
跳转
struts的原理是采用mvc的开发模式把ervlet的业务逻辑抽取出来,并利用配置文件进行全局控制,实现一个servlet对多个action的操作。
struts.xml:
<?xml version="1.0" encoding="UTF-8"?><package> <action name="login" class="framwork.action.LoginAction" method="excute"> <result name="loginSuccess">/success.jsp</result> <result name="loginFail">/fail.jsp</result> </action> <action name="register" class="framwork.action.RegisterAction" method="execute"> <result name="">/success.jsp</result> </action></package>
解析xml文件的帮助类actionManager
这里写代码片
实体层:把配置文件设置成两个javabean对象
public class Result { public String resultName; public String resultPage; ...public class ActionMapping { public String actionName; public String actionClass; public String actionMethod; ...
servlet层:调用action层的方法,获取该方法返回值,跳转到指定页面
//第一步:获取那个Uri String reqUri=req.getRequestURI(); //第二步:取出那个login出来 String actionName = reqUri.substring(reqUri.lastIndexOf("/")+1,reqUri.indexOf(".action")); //第三步:通过名字吧ActionMapping找到 ActionMapping actionMapping = manager.getActionMapping(actionName); //第四步:通过ActionMapping找到类 String actionClassName=actionMapping.getActionClass(); //第五步:通过类的名字 通过反射创建对象 Class clazz=null; String returnValue=null; try { //通过类的全路径获取类的字节码对象 clazz=Class.forName(actionClassName); //通过字节码对象创建类的对象 Object obj=clazz.newInstance(); //第六步:获取方法的名称 String methodName=actionMapping.getActionMethod(); //第七步:通过类的对象获取里面的方法 Method method = clazz.getMethod(methodName,HttpServletRequest.class,HttpServletResponse.class); //第八步:调用方法给我返回数据 returnValue=(String) method.invoke(obj, req,resp); } catch (Exception e) { e.printStackTrace(); } //第九步:通过返回值找到ActionMapping中对应的那个页面 Result result = actionMapping.getResult().get(returnValue); //第十步:通过result找到这个页面 进行跳转 String resultPage = result.getResultPage(); System.out.println(resultPage); //第十一步:跳转 resp.sendRedirect(req.getContextPath()+resultPage);
action层:请求数据,获取传入值,调用biz层
//1、请求数据 request.getParameter(""); //2、set数据 User user = new User(); //3、访问数据库 try { //登陆成功 userBiz.login(user); return "loginSuccess"; } catch (Exception e) { //登录失败 return "loginFail"; }
Biz层:
public interface UserBiz { User login(User user); boolean register(User user);}
dao层:对数据库进行增删改查的操作
public interface IUserDao { User findUserExitsOfNot(User user); boolean saveUser(User user);}
结论:使用struts框架,可以不用每个action斗创建一个servlet,编写的代码量变少了。
0 0
- SHH+maven+SVN+Oracle+tomcat8.0之struts
- myeclipse集成jdk、tomcat8、maven、svn
- coder初入职场必备:Eclipse+Tomcat8+MAVEN+SVN 工作环境搭建
- jdk1.8+tomcat8+eclipse+maven+svn安装配置环境
- shh
- shh
- shh
- Maven之使用SVN版本号
- maven javaee7 tomcat8 jsp+servlet
- centos7 tomcat8部署maven 项目
- maven deploy tomcat8(tomcat7)
- Maven Tomcat8+ 实现自动化部署
- shh环境配置——Spring与struts整合
- Maven使用tomcat8-maven-plugin插件
- Maven使用tomcat8-maven-plugin插件
- Maven使用tomcat8-maven-plugin插件
- IT人—SHH开山之作
- maven struts
- Activiti获取某个流程实例的FormKey
- Java学习笔记_001_数据类型与运算符
- 同步图计算:GraphLite的安装和使用
- Activiti获取某个流程实例已经审批的节点记录
- Lua学习:表和数组
- SHH+maven+SVN+Oracle+tomcat8.0之struts
- Originlab8 特殊字符的输入
- Js中字符串转Json与Json对象转字符串
- ZOJ 3956 Course Selection System
- 深入学习:Windows下Git入门教程(下)
- lr使用出现的问题和解决
- Js实现类继承和闭包私有成员并调用
- 创建守护进程的深入分析
- PHP ServerPush (推送) 技术的探讨