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 Capabilties>Add Struts Capabilities,即可配置好Struts2环境。

{其中在匹配模式的单选按钮组中选择/*,意为全部匹配,对应web.xml中

<filter-mapping><filter-name>struts2</filter-name><url-pattern>/*</url-pattern></filter-mapping>

}

1.3、测试

参考(http://www.cnblogs.com/wchhuangya/archive/2011/03/21/1968877.html),直接从(五、struts2实例--简单的登录例子)开始即可顺利完成;

其中处理器映射struts.xml

<package name="struts2" namespace="/" extends="struts-default"><action name="login" class="org.jason.actions.LoginAction" method="execute"><result name="success">/welcome.jsp</result><result name="login">/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-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>

可能有问题,但运行环境是自动生成的,故排除此错误,仔细观察发现<action>中class写错了。

若盲目修改生成的参数只会徒增烦恼。

2、Spring

2.1、了解Spring

Spring是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架

2.2、搭建Spring环境

参考Myeclipse10下搭建SSH框架(图解)Struts2.1+Spring3.0+Hibernate3.3 之后会发现,其实在MyEclipse10下搭建三个框架都挺简单的。

概括其流程:

a、新建web项目ssh;

b、添加Spring。MyEclipse→Project Capabilities→Add Spring Capabilities;

c、version选择3.0之后,选择5个包(按图选择相应的包Spring 3.0 AOP,Spring 3.0 Core,Spring 3.0 Persistence Core,Spring 3.0 Persistence JDBC,Spring 3.0 Web;JAR Library Installation里选择Copy到lib目录(避免发布到Tomcat出问题)。 );

d、自动生成applicationContext.xml;

2.3、测试

2.3.1、在applicationContext.xml中添加Bean配置

<!-- 添加bean配置 --><bean id="HelloWorld" class="com.demo.spring.test.HelloWorld"><property name="message"><value>Jason's 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 Jason's World str:test
Jason's World
set 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的过程中最好选择新建一个独立的xml(2.2中选择将Hibernate的配置添加到Spring生成的applicationContext.xml中,这会导致测试故障难找),默认名hibernate.cfg.xml】;

hibernate.cfg.xml详解

        <!--选择使用的方言  --><property name="dialect">org.hibernate.dialect.MySQLDialect</property><!-- 连接字符串 --><property name="connection.url">jdbc:mysql://localhost:3306/page0803</property><!-- 连接数据库的用户名(本数据库密码为空) --><property name="connection.username">root</property><!-- 数据库驱动 --><property name="connection.driver_class">com.mysql.jdbc.Driver</property><property name="myeclipse.connection.profile">SSH</property><!-- 映射文件 --><mapping resource="com/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:13787825190
ID:2name:李明清address:天津Phone:13787525190
ID:3name:李小华address:大连Phone:13788451190
ID:4name:郑小明address:苏州Phone:13787052188
ID:5name:杨一新address:西安Phone:13787851190
ID:6name:王新任address:广州Phone:13787056460
ID:7name:谢小华address:深圳Phone:13787075550
ID:8name:王建明address:厦门Phone:13788853690
ID:9name:秦一生address:北京Phone:13788689236
ID:10name:田翠林address:杭州Phone:13787655150
ID:11name:陈小明address:广州Phone:13787623668

4、实现一个SSH项目(挖坑待填)

挖坑待填

转载于:https://my.oschina.net/SnifferApache/blog/305691

Java Web笔记之Struts2.1 +Hibernate3.3 +Spring3.0相关推荐

  1. JAVA Web Servlet中的异步处理 (1) -- Servlet3.0中的Async支持

    JAVA Web Servlet中的异步处理 (1) – Servlet3.0中的Async支持 每个请求来到Web容器,Web容器会为其分配一个线程来专门负责该请求,直到完成处理前,该执行线程都不会 ...

  2. Java web项目添加Struts2支持的步骤

    今天开始学习Struts2了,Struts2使用了MVC的设计模式,使Java web应用层次更分明,是非常流行的一种框架,下面我记录在Java web应用中添加Struts2支持的几个步骤: 一.在 ...

  3. Java Web笔记总结

    Tomcat Tomcat的下载及配置 tomcat官网地址 解压就可以使用了 启动tomcat 访问tomcat服务器 localhost:8080 Htpp 什么是http HTTP协议(Hype ...

  4. java学习笔记(12) —— Struts2 通过 xml /json 实现简单的业务处理

    XML 1.引入dom4j-2.0.0.jar 2.引入jquery-1.8.2.js 3.新建common.js getInfo = function(){$.post("getXmlAc ...

  5. Java Web笔记-by戏言

    1.servlet技术 1.什么是servlet javaEE规范,规范即接口,就像jdbc 运行在服务器上小程序,接收请求,并响应 web.xml配置servlet <servlet>& ...

  6. java web笔记

    2016年4月6日11:46:13 1.web编程 B/S架构 : 必须借助浏览器 C/S:不借助浏览器可以执行 Tomcat服务器 在你眼中的服务器:只要能对外提供服务的都是服务器 常见服务器 Ja ...

  7. 【尚硅谷 Java Web 笔记】表格的跨行跨列

    colspan 属性设置跨列 rowspan 属性设置跨行 <!DOCTYPE html><html lang="en"><head><m ...

  8. 【尚硅谷 Java Web 笔记】onload事件

    <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...

  9. struts2+hibernate3.3+spring3.0 实现零配置

    目前对于这三大框架整合开发有很多人有这不同的看法,我在这提供一个自己比较喜欢的设计方式: 下面以搭建一个用户管理实验做为说明: 第一步:创建数据库(只需要建立数据库名字就可以了) 第二步:在myecl ...

最新文章

  1. java8 环境变量设置
  2. oracle何时使用to_date函数
  3. 【Paddy】数据库监控系列(一) - 监控理念
  4. 通用httpclient生成方式
  5. 2009年中国贫富标准线
  6. run loop详解
  7. 负载均衡故障诊断:一个MSS值引发的疑案
  8. Hyperledger Besu(4)身份许可
  9. Silverlight在IIS中的配置
  10. UITableView 禁止下拉
  11. 动手造轮子:实现一个简单的依赖注入(一)
  12. 【HTML】使用css3和html给网站添加上春节灯笼特效
  13. 日志易:IT 运维分析及海量日志搜索的实践之路(上)
  14. 深入浅出 HTTP协议
  15. 资产配置方案(基金)
  16. 瞬变抑制二极管TVS原理简介
  17. Android学生信息管理系统
  18. 毕业论文使用Endnote技巧(设置引用格式为国标、参考文献排列顺序)
  19. c语言第一章,C语言修正版第一章
  20. 在Windows10操作系统中搭建ftp服务器

热门文章

  1. leetcode15 三数之和
  2. redis——Redis中的LRU算法改进
  3. 图的基本概念【数据结构】
  4. C++(STL):33---hash_set、hash_map、hash_multiset、hash_multimap源码剖析
  5. 大数据学习(09)--spark学习
  6. 职场实用和常用的十大心理学效应
  7. codeforces 282A-C语言解题报告
  8. java.sql.SQLException: ORA-00604: 递归 SQL 级别 1 出现错误
  9. 用户暴增下的收入降低,AWS面临尴尬
  10. 多线程原理分析面试题理解