




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Struts1Struts11Struts1和Servlet的关系1创建第一个Struts1项目1例子1:3总结重点:struts1的工作流程(基于MVC模式的)7一普通的Servlet的工作流程7二Structs1的工作流程(和上面的对比记忆)8Struts标签9Bean标签9html标签10logic标签(逻辑标记)12i18n(国际化)13Struts1Struts1和Servlet的关系实体 - VOJsp+Javabean业务逻辑-daoJsp+Servlet+Javabean接收数据ActionForm跳转ActionForward控制ActionServletActionForm和VO的区别:一样的内容,不一样的作用ActionForm只接收前台表单传来的数据VO是conga后台提取的数据向前台传递创建第一个Struts1项目新建一个web项目,选择1.4即可右键-MyEclipse-Add Struts Capacity-Struts控制文件的路径TLD(标签)1)2):显示信息3):逻辑标签struts-config.xml 担任Controller的是ActionServlet,所有的客户端请求都通过它来完成转发,必须在web.xml中配置: 注意:1)设定config参数的作用是设定struts-config.xml(包括了所有的Struts的相关请求转发及一些资源设定)的文档来源2)Servlet-mapping将所有以*.do结尾的请求将给ActionServlet来处理例子1:1) index.jsp 用户名:密码: 2) struts-config.xml3) UserFormpublic class UserForm extends ActionFormprivate String username;private String pwd;public String getUsername() return username;public void setUsername(String username) this.username = username;public String getPwd() return pwd;public void setPwd(String pwd) this.pwd = pwd;4) UserActionpublic class UserAction extends Action public ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)throws Exception /1.得到表单中方的数据UserForm userform = (UserForm) form;String username = userform.getUsername();String pwd = userform.getPwd();/2.往后台传数据System.out.println(username+=+pwd);boolean flag = UserDao.getInstance().findByUser(username, pwd);if(flag)return mapping.findForward(success);elsereturn mapping.findForward(error);5) UserDao/单例模式public class UserDao private static UserDao instance = new UserDao();private UserDao()public static UserDao getInstance()return instance;public boolean findByUser(String username,String pwd)return false;6)连接数据库(DBConnection 和UserDao)public boolean findByUser(String username,String pwd)boolean flag = false;DBConnection db = new DBConnection();String sql = select username,password from users where username=? and password=?;try Connection conn = db.connection();PreparedStatement pst = conn.prepareStatement(sql);pst.setString(1, username);pst.setString(2, pwd);ResultSet rs = pst.executeQuery();if(rs.next()flag = true; catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();return flag;7)获取信息:在页面上可以使用EL表达式8)在UserForm中新加入两种方法:/和表单中按钮的作用是一样的public void reset(ActionMapping mapping, HttpServletRequest request) System.out.println(reset);/验证框架public ActionErrors validate(ActionMapping mapping,HttpServletRequest request) System.out.println(验证框架);return super.validate(mapping, request);顺序:先清空,再放值,再验证9)动态获取表单的数据struts-config.xml将原来的form-bean去掉将UserAction改为:public class UserAction extends Action public ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)throws Exception /1.得到表单中方的数据DynaActionForm userForm = (DynaActionForm) form;System.out.println(userForm.get(username)+*+userForm.get(pwd);String username = (String) userForm.get(username);String pwd = (String) userForm.get(pwd);/2.往后台传数据boolean flag = UserDao.getInstance().findByUser(username, pwd);if(flag)request.setAttribute(username, username);return mapping.findForward(success);elsereturn mapping.findForward(error);总结重点:struts1的工作流程(基于MVC模式的)一普通的Servlet的工作流程1.web客户端发送一个request到tomcat2.tomcat接受请求,3.new HttpServletRequest对象4.new HttpServletResponse 对象5.发送doGet/doPost到相应的servlet6.servlet截取到相应的URL7.根据URL找到相应(文件/数据)8.调用相应的业务逻辑就是调用相应的Dao9.对数据的操作10.返回给Dao一个结果11.将Dao返回的结果返回到相应的servlet12.servlet会根据返回的结果找到跳转的页面13.在tomcat会根据结果生成页面14.将页面返回给web客户端二Structs1的工作流程(和上面的对比记忆)Web客户端ActionServlet1.requestStruts-config.xml文件Action业务逻辑控制器Model 业务逻辑Jsp1 web客户端发送一个request到tomcat2 tomcat接受请求3 new HttpServletRequest对象4 new HttpServletResponse对象5 发送doGet/doPodt方法到相应的ActionServlet6 ActionServlet会读取struts-config.xml文件7 截取url信息8 根据url的配置信息,取得数据(从struts中的Action标签的内容放到ActionMapping当中)9 New ActionForm对象(作用:会收集表单数据,进行存取)10 ActionServlet会取得表单数据11 New Action12 会执行Actiion中的execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)13 从ActionForm中取得数据14 调用相应的模型层15 返回数据搭配Action16 通过ActionForward返回到ActionServlet17 通过forward到视图层(jsp)生成jsp18 返回response到web客户端Struts标签Bean标签标签头在哪找到:struts包下的打开即写成1) BeanActionpublic class BeanAction extends Actionpublic ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)throws Exception request.setAttribute(hello, 测试一下);request.setAttribute(hello1, 测试一下);return mapping.findForward(show);2) struts-config.xml3) success.jsp 结果:其他标签:复制标记显示Bean属性标记 标记 注意:filter为true是不支持html代码html标签(只要是html就可以改成struts1的代码)和相同说明:生成的结果取决于Struts应用程序所位于的服务器的locale。如果你将应用程序部署到一个不同locale的服务器,你不需要改变代码,Locale会自动调整 User Name: Password: 说明:html:form 相当于form html:text 相当于 html:submit 相当于提交按钮 focus 是光标1) BeanActionpublic class BeanAction extends Actionpublic ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)throws Exception UserForm user = (UserForm) form;user.setUsername(堂吉诃德);user.setPwd(123);request.setAttribute(user,user );return mapping.findForward(show);2) struts-config.xml3) success.jsp 用户名:密 码: 结果:其他标签:标记 :(property: 元素名称 ;size: 显示的字数 ;value: 元素初值 ;redisplay: 是否显示ActionForm的值)标记标记 标记 标记 标记标记标记 标记 标签 :(forward属性:链接到一个global forward上;action属性:链接到一个action mapping上;href属性:这个链接会转发给控制器,由控制器做决定;page属性:一个相对的链接)标签 标记 logic标签(逻辑标记)1) BeanActionpublic class BeanAction extends Actionpublic ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)throws Exception request.setAttribute(hello,null);List list = new ArrayList();request.setAttribute(list, list);String str = ;request.setAttribute(str, str);return mapping.findForward(show);2) success.jsp为空不为空为空不为空为空不为空结果:关于取出list内容的标签用法1) BeanActionpublic class BeanAction extends Actionpublic ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)throws Exception List list = new ArrayList();for(int i=0;i=10;i+)UserForm user = new UserForm();user.setUsername(username+i);user.setPwd(pwd+i);list.add(user);request.setAttribute(list, list);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025江苏省规划设计院社招考前自测高频考点模拟试题含答案详解
- 2025安徽宿州萧县中医院面向应届毕业生校园招聘10人模拟试卷附答案详解
- 2025江苏常州经济开发区社会保障和卫生健康局下属事业单位招聘卫技人员14人考前自测高频考点模拟试题及答案详解(考点梳理)
- 2025金华市天禾实业有限公司招聘2人考前自测高频考点模拟试题完整参考答案详解
- 2025年福建省龙岩金叶复烤有限责任公司招聘5人考前自测高频考点模拟试题及答案详解(各地真题)
- 2025年交通银行春季招聘考前自测高频考点模拟试题带答案详解
- 2025湖南岳阳市平江县中医医院公开招聘急诊科护士模拟试卷附答案详解(典型题)
- 2025广西柳州市柳江中学参加广西师范大学研究生毕业生春季专场双选会11人模拟试卷及1套参考答案详解
- 2025年河北沧州任丘园区产业发展集团有限公司招聘工作人员10名模拟试卷及答案详解(必刷)
- 2025年大连金普新区卫生系统招聘事业编制工作人员164人模拟试卷及答案详解(全优)
- 《人工智能导论》(第2版)高职全套教学课件
- (高清版)AQ 1075-2009 煤矿低浓度瓦斯往复式内燃机驱动的交流发电机组通 用技术条件
- 中国食物成分表2018年(标准版)第6版
- 疑问句(课件)六年下册英语人教PEP版
- 介绍家乡恩施
- 视力残疾康复服务规范
- HG T 3690-2022 工业用钢骨架聚乙烯塑料复合管
- 财务报表分析方法与技巧
- 医院医保科绩效考核标准
- 《直播营销与运营》PPT商品选择与规划
- 贵阳区域分析
评论
0/150
提交评论