上海南建设培训执业中心网站,php做网站用框架,网站制作.,火脉推广平台2019独角兽企业重金招聘Python工程师标准 1、Struts2 1.1、了解Struts2 Struts2是基于MVC设计模式的Java Web框架技术之一#xff0c;按照MVC设计思想把Java Web应用程序分为#xff1a; 控制器层#xff0c;包括核心控制器FilterDispatcher和业务控制器Actio… 2019独角兽企业重金招聘Python工程师标准 1、Struts2 1.1、了解Struts2 Struts2是基于MVC设计模式的Java Web框架技术之一按照MVC设计思想把Java Web应用程序分为 控制器层包括核心控制器FilterDispatcher和业务控制器Action 模型层包括业务逻辑组件和数据库访问组件 视图层包括HTML、JSP、Struts2的标签等 Struts2标签库分为3大类 UI标签包含表单标签非表单标签、非UI标签包含数据标签控制标签、Ajax标签 内容繁多用到的时候再查吧。 1.2、搭建环境 在web项目右键Project CapabiltiesAdd Struts Capabilities即可配置好Struts2环境。 {其中在匹配模式的单选按钮组中选择/*意为全部匹配对应web.xml中 filter-mappingfilter-namestruts2/filter-nameurl-pattern/*/url-pattern/filter-mapping } 1.3、测试 参考http://www.cnblogs.com/wchhuangya/archive/2011/03/21/1968877.html直接从五、struts2实例--简单的登录例子开始即可顺利完成 其中处理器映射struts.xml package namestruts2 namespace/ extendsstruts-defaultaction namelogin classorg.jason.actions.LoginAction methodexecuteresult namesuccess/welcome.jsp/resultresult namelogin/login.jsp/result/action/package 主要属性说明package-name用于区别不同的package必须是唯一的、可用的变量名用于其它package来继承 package--namespace用于减少重复代码和struts1比较是调用action时输入路径的组成部分 package--extends用于继承其它package以使用里面的过滤器等东东 action元素中name属性表示请求映射的地址class属性表示请求的Action处理类如果将class名字写错误写成com.jason.actions.LoginAction了会报错如下 严重: Exception starting filter struts2
java.lang.ClassNotFoundException: 出现此错误之后系统提示是过滤器加载的问题想到web.xml中 filter-namestruts2/filter-namefilter-classorg.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter/filter-class 可能有问题但运行环境是自动生成的故排除此错误仔细观察发现action中class写错了。 若盲目修改生成的参数只会徒增烦恼。 2、Spring 2.1、了解Spring Spring是一个轻量级控制反转IoC和面向切面AOP的容器框架 2.2、搭建Spring环境 参考Myeclipse10下搭建SSH框架(图解)Struts2.1Spring3.0Hibernate3.3 之后会发现其实在MyEclipse10下搭建三个框架都挺简单的。 概括其流程 a、新建web项目ssh b、添加Spring。MyEclipse→Project Capabilities→Add Spring Capabilities c、version选择3.0之后选择5个包按图选择相应的包Spring 3.0 AOPSpring 3.0 CoreSpring 3.0 Persistence CoreSpring 3.0 Persistence JDBCSpring 3.0 WebJAR Library Installation里选择Copy到lib目录(避免发布到Tomcat出问题)。 d、自动生成applicationContext.xml 2.3、测试 2.3.1、在applicationContext.xml中添加Bean配置 !-- 添加bean配置 --bean idHelloWorld classcom.demo.spring.test.HelloWorldproperty namemessagevalueJasons World/value/property/bean 2.3.2、新建Bean类HelloWorld.java和测试类Test.java package com.demo.spring.test;
public class HelloWorld {protected String message;public String getMessage() {return message;}public void setMessage(String message) {this.message message;}public String execute(String str) {return Hello getMessage()\tstr:str;}
} package com.demo.spring.test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
public class Test {public static void main(String[] args) {ApplicationContext ctx new FileSystemXmlApplicationContext(src/applicationContext.xml);HelloWorld hello (HelloWorld) ctx.getBean(HelloWorld);System.out.println(hello.execute(test));System.out.println(hello.getMessage());hello.setMessage(set message);System.out.println(hello.getMessage());}
} 输出结果则表明环境已经支持Spring了 Hello Jasons World str:testJasons Worldset message 3、Hibernate 3.1、了解Hibernate 更好的教程 http://blog.csdn.net/mazhaojuan/article/category/1756651 {四星5篇系列教程包含概念、实践、测试不足之处在于一些可以自动生成的代码还要自己写} 在MyEclipse中快速搭建hibernate应用 {五星其中d.创建实体类及该实体类的映射文件使用MyEclipse自动生成简便清晰} 3.2、搭建环境 参考上文五星教程即可其中创建SessionFactory这个SessionFactory其实是Hibernate提供的一个用于管理Session的类他可以确保在每个独立的线程中Session是唯一的。2.2中教程没创建SessionFactory应该不恰当 该过程自动创建在此指定factory的位置com.demo.hibernate默认名称为HibernateSessionFactory.java 【如果是在上节Spring基础上搭建Hibernate在一步步next的过程中最好选择新建一个独立的xml2.2中选择将Hibernate的配置添加到Spring生成的applicationContext.xml中这会导致测试故障难找默认名hibernate.cfg.xml】 hibernate.cfg.xml详解 !--选择使用的方言 --property namedialectorg.hibernate.dialect.MySQLDialect/property!-- 连接字符串 --property nameconnection.urljdbc:mysql://localhost:3306/page0803/property!-- 连接数据库的用户名本数据库密码为空 --property nameconnection.usernameroot/property!-- 数据库驱动 --property nameconnection.driver_classcom.mysql.jdbc.Driver/propertyproperty namemyeclipse.connection.profileSSH/property!-- 映射文件 --mapping resourcecom/demo/entity/Students.hbm.xml/ 自动生成的hibernate.cfg.xml中会包含映射文件省去很多麻烦如果没有映射文件运行时会报错 Students is not mapped [from Students] 3.3、测试 3.3.1、数据库 使用page0803的students表http://my.oschina.net/SnifferApache/blog/297572#OSC_h3_20 3.3.2、Test.java 按照3.1五星中操作自动生成持久化类Students.java和映射文件Students.hbm.xml Test.java package com.demo.entity;
import java.util.Iterator;
import java.util.List;
import org.hibernate.Session;
import org.hibernate.Transaction;
import com.demo.hibernate.HibernateSessionFactory;
public class Test {Session session null;Transaction tx null;//SuppressWarnings(rawtypes)public static void main(String[] args) {Test th new Test();List cl th.getAllStudents();if (cl ! null) {Iterator it cl.iterator();while (it.hasNext()) {Students stu (Students) it.next();System.out.println(ID: stu.getStuId() name: stu.getStuName() address: stu.getAddress() Phone: stu.getStuPhone());}}}//SuppressWarnings(rawtypes)public List getAllStudents() {session HibernateSessionFactory.getSession();List stulist null;try {tx session.beginTransaction();stulist session.createQuery(from Students).list();return stulist;} catch (Exception ex) {System.err.println(ex.getMessage());return null;} finally {HibernateSessionFactory.closeSession();}}
} 运行结果 ID:1name:杨华林address:长沙Phone:13787825190ID:2name:李明清address:天津Phone:13787525190ID:3name:李小华address:大连Phone:13788451190ID:4name:郑小明address:苏州Phone:13787052188ID:5name:杨一新address:西安Phone:13787851190ID:6name:王新任address:广州Phone:13787056460ID:7name:谢小华address:深圳Phone:13787075550ID:8name:王建明address:厦门Phone:13788853690ID:9name:秦一生address:北京Phone:13788689236ID:10name:田翠林address:杭州Phone:13787655150ID:11name:陈小明address:广州Phone:13787623668 4、实现一个SSH项目挖坑待填 挖坑待填 转载于:https://my.oschina.net/SnifferApache/blog/305691