struts2+ibatis+spring

配置的东西一成不变:所以总结一下:

(1)jdbc.properties

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/database

jdbc.username=root
jdbc.password=root

hibernate.dialect=org.hibernate.dialect.MySQLDialect
hibernate.show_sql=true
hibernate.autoReconnect=true
hibernate.jdbc.batch_size=50

jdbc.max_size=2
jdbc.min_size=1
jdbc.maxActive=1000

 

(2)sqlMapClient.xml

<sqlMapConfig>

 <properties resource="jdbc.properties"/>
 
 <settings cacheModelsEnabled="true"
  lazyLoadingEnabled="true"
  errorTracingEnabled="true"
  maxRequests="32"
  maxSessions="10"
  maxTransactions="5"
  useStatementNamespaces="false" />

<sqlMap resource="com/entity/User.xml"/>
 </sqlMapConfig>

 

<3>User.xml

<sqlMap namespace="User">

 <typeAlias alias="User" type=".User"/>

 <insert id="insertUser" parameterClass="User">
  insert into t_user(username,password) values ( #username#,#password# ) 
 </insert>

 
 <select id="selectUser" resultClass="User" >
  select * from t_user where username=#username#
 </select>
 

 <update id="alterUser" parameterClass="User">
  update t_user set password=#password#
  where username=#username#
  </update>
 

</sqlMap>

 

(4)<struts.xml>

 <package name="mofan" namespace="/touch" extends="struts-default"> 
 
     <!-- 登录页面 -->    
      <action name="login" class="loginAction"  method="execute">
          <result name="input">/jsp/login.jsp</result>
          <result name="success">/log_succ.jsp</result>
      </action>

</package>

 

(5)struts.properties

struts.enable.DynamicMethodInvocation=false
struts.ui.theme=simple
struts.action.extension=action,do
struts.objectFactory = spring
struts.serve.static=false

struts.custom.i18n.resources=mess

struts.multipart.parser=jakarta

struts.multipart.maxSize=1204857600

 

(6)applicationContext.xml

<!-- 配置database link 信息 -->
 <bean id="propertyConfigurer"
       class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
     <property name="location">
        <value>classpath:/jdbc.properties</value>
     </property>
 </bean>
 
 <!-- 注入所有的spring配置文件  -->
 <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
  <property name="driverClassName">
   <value>${jdbc.driverClassName}</value>
  </property>
  <property name="url">
   <value>${jdbc.url}</value>
  </property>
  <property name="username">
   <value>${jdbc.username}</value>
  </property>
  <property name="password">
   <value>${jdbc.password}</value>
  </property>
 </bean>

     
 <bean id="dataSource2" class="org.logicalcobwebs.proxool.ProxoolDataSource">
  <property name="driver">
   <value>${jdbc.driverClassName}</value>
  </property>
  <property name="driverUrl">
   <value>${jdbc.url}</value>
  </property>
  <property name="user">
   <value>${jdbc.username}</value>
  </property>
  <property name="password">
   <value>${jdbc.password}</value>
  </property>
  <property name="alias">
   <value>MyPool</value>
  </property>
      <!-- 最少保持的空闲连接数 (默认5个)-->
  <property name="prototypeCount">
   <value>5</value>
  </property>
      <!-- 最大连接数-->
  <property name="maximumConnectionCount">
   <value>300</value>
  </property>
      <!-- 最小连接数-->
  <property name="minimumConnectionCount">
   <value>10</value>
  </property>
      <!-- 自动重新链接 -->
  <property name="houseKeepingTestSql">
   <value>select CURRENT_DATE</value>
  </property>
      <!-- 如果为true,那么每个被执行的SQL语句将会在执行期被log记录 -->
  <property name="trace">
   <value>true</value>
  </property>
      <!-- 详细信息设置 -->
  <property name="verbose">
   <value>true</value>
  </property>
 </bean>
 <bean id="dataSourceFacade" class="org.logicalcobwebs.proxool.ProxoolFacade"
  destroy-method="shutdown" />
 <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
  <property name="dataSource">
   <ref bean="dataSource" />
  </property>
 </bean> 
 
 <import resource="classpath:com/***/**/spring-*.xml" />
 
 <!-- 读取ibatis配置文件 -->
 <bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
  <property name="configLocation">
   <value>classpath:SqlMapConfig.xml</value>
  </property>
  <property name="dataSource" ref="dataSource" />
 </bean>
 
 <bean id="sqlMapClientTemplate"
      class="org.springframework.orm.ibatis.SqlMapClientTemplate">
      <property name="sqlMapClient">
         <ref bean="sqlMapClient" />
      </property>
  </bean>
 <!-- Transaction manager for a single JDBC DataSource -->
 <!-- 事务管理器 -->
 <bean id="transactionManager"
  class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
  <property name="dataSource">
   <ref local="dataSource" />
  </property>
 </bean>
 <bean id="baseServiceproxyBean"
  class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"
  lazy-init="true">
  <property name="transactionManager">
   <ref local="transactionManager" />
  </property>
  <property name="transactionAttributes">
   <props>
    <prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
    <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
    <prop key="load*">PROPAGATION_REQUIRED,readOnly</prop>
    <prop key="create*">PROPAGATION_REQUIRED,-BusinessException</prop>
    <prop key="delete*">PROPAGATION_REQUIRED,-BusinessException</prop>
    <prop key="update*">PROPAGATION_REQUIRED,-BusinessException</prop>
    <prop key="start*">PROPAGATION_REQUIRED,-BusinessException</prop>
    <prop key="cancel*">PROPAGATION_REQUIRED,-BusinessException</prop>
    <prop key="stop*">PROPAGATION_REQUIRED,-BusinessException</prop>
    <prop key="save*">PROPAGATION_REQUIRED,-BusinessException</prop>
    <prop key="add*">PROPAGATION_REQUIRED,-BusinessException</prop>
    <prop key="update*">PROPAGATION_REQUIRED,-BusinessException</prop>
    <prop key="remove*">PROPAGATION_REQUIRED,-BusinessException</prop>
   </props>
  </property>
  <!--<property name="sqlMapClient">
   <ref local="sqlMapClient" />
  </property>
    --></bean>
 
</beans>

 

 

(7)web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
 xmlns="http://java.sun.com/xml/ns/javaee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
 http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
 
 
 <display-name>index</display-name>
    <context-param>
  <description></description>
  <param-name>contextConfigLocation</param-name>
  <param-value>
   /WEB-INF/classes/applicationContext.xml
   /WEB-INF/classes/applicationContext-bean.xml
  </param-value>
 </context-param>

 <filter>
  <filter-name>struts2</filter-name>
     <filter-class>
   org.apache.struts2.dispatcher.FilterDispatcher
  </filter-class>

  
 </filter>
 
 <!-- 字符转码 --><!-- <param-value>UTF-8</param-value> -->
 <filter>
  <filter-name>codeFilter</filter-name>
  <filter-class>
   com.ibspring.core.common.filter.EncodingFilter
  </filter-class>
  <init-param>
   <param-name>encoding</param-name>
   <param-value>GBK</param-value>
  </init-param>
 </filter>
 <filter>
  <filter-name>SessionFilter</filter-name>
  <filter-class>com.trutspring.core.common.filter.SessionFilter</filter-class>
 </filter>
  
  
 <filter> 
        <filter-name>onlineFilter</filter-name> 
        <filter-class>OnlineFilter</filter-class> 
    </filter> 
       
 
 <filter-mapping>
  <filter-name>codeFilter</filter-name>
  <url-pattern>/*</url-pattern>
 </filter-mapping>
 <filter-mapping>
  <filter-name>SessionFilter</filter-name>
  <url-pattern>/*</url-pattern>
 </filter-mapping>
 <filter-mapping>
  <filter-name>struts2</filter-name>
  <url-pattern>/*</url-pattern>
 </filter-mapping>
 
       
 <filter-mapping> 
        <filter-name>onlineFilter</filter-name> 
        <url-pattern>*.jsp</url-pattern> 
    </filter-mapping> 

    

 <listener>
  <description></description>
  <listener-class>
   org.springframework.web.context.ContextLoaderListener
  </listener-class>
 </listener>
<!--
 <listener>
  <listener-class>
   org.springframework.web.context.request.RequestContextListener
  </listener-class>
 </listener>
 --> 
 
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

(8)OnlineFilter.java

 

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class OnlineFilter extends HttpServlet implements Filter
{

 /**
  *
  */
 private static final long serialVersionUID = 1L;

 public void doFilter(ServletRequest request, ServletResponse response,
   FilterChain chain) throws IOException, ServletException
 {
  RequestDispatcher dispatcher = request
    .getRequestDispatcher("/jsp/login.jsp");// 这里设置如果没有登陆将要转发到的页面
  HttpServletRequest req = (HttpServletRequest) request;
  HttpServletResponse res = (HttpServletResponse) response;
  HttpSession session = req.getSession(true);

  // System.out.println(((HttpServletRequest) request).getRequestURI());
  // 从session里取的用户名信息
  String username = (String) session.getAttribute("username");// 这里获取session
                 // ,
                 // 为了检查session里有没有保存用户信息
                 // ,
                 // 没有的话回转发到登陆页面

  // 判断如果没有取到用户信息,就跳转到登陆页面
  if (username == null || "".equals(username))
  {
   // 跳转到登陆页面
   dispatcher.forward(request, response);
   // System.out.println("用户没有登陆,不允许操作");

   res.setHeader("Cache-Control", "no-store");
   res.setDateHeader("Expires", 0);
   res.setHeader("Pragma", "no-cache");
  }
  else
  {
   // 已经登陆,继续此次请求
   chain.doFilter(request, response);
   // System.out.println("用户已经登陆,允许操作");
  }

 }

 public void init(FilterConfig filterConfig) throws ServletException
 {
  // TODO Auto-generated method stub

 }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值