==========spring+struts2+spring_jdbc=======================
<!-- 所有的应用型jar包都要添加一份到lib目录下 -->
1) 创建web工程
Struts2在Eclipse中工作环境的搭建和创建web工程:
①:如果是重新创建的工作环境,则在本地硬盘创建一个工作文件夹;
②:启动Eclipse选择你创建的工作文件夹(当然可以直接转工作环境File-->switch Workspace-->选择需要的工作
环境)点击确定;
③:进入Eclipse后创建工程,一般为动态Web工程;
④:设置字符编码(在菜单栏点击Window-->preferences-->General-->Content Type
-->点击右边的Text查看其下面的每个的字符编码类型,如果不是UTF-8类型的则改
成UTF-8--->点击右下角的Update);
⑤:添加Tomcate服务器,和第④步一样点击preferences-->Server-->Runtime Environments
-->点击右上角的Add-->选择所需的服务器-->Finish-->点击OK即可;
⑥:添加jar包,鼠标选中工程,单击右键,点击Build Path-->Add Library-->Server Runtime
-->Next-->选中左边服务器-->Next;
仍然点击Add Library-->User Library-->Next-->User Library...-->New...-->输入要创建
的jar包名-->ok-->Add External JARs...-->选择需要加入的jar包;
⑦:将加入jar包的jar文件同时复制到工程的lib目录下面;这样基本配置就完成;
2)搭建好struts2的环境
1)加入相关的jar包:struts2的 min包
struts2jar
2)web.xml中加入struts2的filter
⑨:配置工程目录下的lib下面的web.xml文件内容:
如果是3.1版本的,在</web-app></web-app>中添加如下代码:
<!-- 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>
/*表示所有的以/结尾的文件路径都会响应;
整个环境搭建搞定!!
3)空的struts.xml文件
⑧:在配置Struts2时,还需要加入struts.xml文件,文件添加成功后,双击打开如果里面没有配置,
需要配置;
struts.xml的内容配置,1.打开已有的(官网下载的struts-2.3.29-all或者其他版本都行)struts-2.3.29-all
支持包,找到apps文件夹里面的文件是war格式,打开的话可以转换成zip等普通压缩文件,打开文件在WEB-INF
目录下找到src文件夹打开java文件,复制struts.xml文件到工程的src目录下,根据需要更改里面的内容,更改
内容如下:
<struts>
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="false" />
<constant name="struts.action.extension" value = "action" />
<package name="default" namespace="/" extends="struts-default">
<action name="login" class="loginAction">
<result>/success.jsp</result>
<result name="error">/login.jsp</result>
</action>
</package>
</struts>
3)加入spring环境
1)加入spring相关的jar包及依赖包:
spring_jar+apache
2)在web.xml文件中配置
1)配置spring的Listener
<!-- 配置spring侦听器 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
2) 配置Spring的配置文件在什么地方?名字是什么?
<!--说明配置spring的配置文件的地方和名字 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext*.xml;classpath*:applicationContext*.xml</param-value>
</context-param>
3)spring的配置文件(applicationContext.xml):
<?xml version="1.0" encoding="UTF-8"?>
<!-- xmlns定义了一个默认的命名空间(package) -->
<!-- 加一个命名空间context -->
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<!-- 配置数据库联接池 -->
<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="root"/>
<property name="password" value="${password}"/>
</bean>
<context:property-placeholder location="classpath:db.properties"/>
与上面对应的配置的属性文件(db.properties):
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis
username=root
password=123
<bean id="loginAction" class="com.zr.web.LoginAction">
<property name="userService" ref="userService"></property>
</bean>
<bean id="userService" class="com.zr.service.UserService">
<property name="userDaoImpl" ref="userDaoImpl"></property>
</bean>
<bean id="userDaoImpl" class="com.zr.dao.UserDaoImpl"></bean>
</beans>
4)测试:获得WebApplicationContext对象
public String execute(){
//进行CURD时要获得对应类(bean)的对象<----获得Spring(IOC)容器[WebApplicationContext]对象,让其帮助创建bean的对象<----获得ServletContext对象(以获得容器对象)
//获得ServletContext对象有两种方法:1,通过ServletActionContext.getServletContext()获得;2,实现指定接口,由Struts框架运行时注入
ServletContext sc = ServletActionContext.getServletContext();
//获得Spring容器中的WebApplicationContext的对象
WebApplicationContext wac = WebApplicationContextUtils.getWebApplicationContext(sc);
System.err.println(wac);
//测试代码
//获得bean对象(LoginAction)
LoginAction action = wac.getBean(LoginAction.class);
System.out.println("如获得LoginAction对象:"+action);
4)集成spring+struts2
1)加jar包(在struts-2.3.29-all中的lib目录下):
struts2-spring-plugin-2.3.29.jar
2)集成:struts.xml
<action name="XXX" class="bean的id"/>
如:
<action name="login" class="loginAction">
<result>/success.jsp</result>
<result name="error">/login.jsp</result>
</action>
5) spring jdbc实现DAO
使用DBCP ==> DataSource ==> Connection
Spring中配置联接数据库的DataSource
1) JDBC驱动程序
mysql:mysql-connector-java-5.1.7(连接的位MySQL数据库)
2)配置DataSource,测试代码
获得DataSource对象
//测试
//获得DataSource对象从而获得Connection(数据库连接方法)对象
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
DataSource ds = (DataSource) ac.getBean("dataSource");
System.out.println(ds);
基于JDBC的UserDao代码的实现
UserDao ====> JdbcTemplate
两个方法:
6)spring+struts2+mybatis
集成:spring+mybatis
1)spring环境: jar包+相关的jar包
spring_jar+apachejar
配置文件
数据库:mysql JDBC驱动
mysql:mysql-connector-java-5.1.7(连接的位MySQL数据库)
2)mybatis环境
加相关的jar包,加与spring集成的jar包
mybatis_jar包
mybatis-springjar包
1)SqlSessionFactory:
<!-- 配置SqlSessionFactory -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 注入:数据源 -->
<property name="dataSource" ref="dataSource"/>
<!-- mybatis配置文件 -->
<property name="configLocation" value="classpath:conf.xml"/>
</bean>
2)配置获得DAO接口对象
<!-- 做接口映射 -->
<bean id="iUserDao" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="mapperInterface" value="com.zr.dao.IUserDao"></property>
<property name="sqlSessionFactory" ref="sqlSessionFactory"></property>
</bean>
Dao接口,+ Mapper文件
测试方法