spring+mybatis

DisableUrlSessionFilter.java
package com.sf.hkbw.context.filter;

import java.io.IOException;

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

public class DisableUrlSessionFilter implements Filter {
	
	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
		if (!(request instanceof HttpServletRequest)) {
			chain.doFilter(request, response);
			return;
		}

		HttpServletRequest httpRequest = (HttpServletRequest) request;
		HttpServletResponse httpResponse = (HttpServletResponse) response;

		if (httpRequest.isRequestedSessionIdFromURL()) {
			HttpSession session = httpRequest.getSession();
			if (session != null) {
				session.invalidate();
			}
		}
		
		// wrap response to remove URL encoding
		HttpServletResponseWrapper wrappedResponse = new HttpServletResponseWrapper(httpResponse) {
			
			@Override
			public String encodeRedirectUrl(String url) {
				return url;
			}

			public String encodeRedirectURL(String url) {
				return url;
			}

			public String encodeUrl(String url) {
				return url;
			}

			public String encodeURL(String url) {
				return url;
			}
		};
		chain.doFilter(request, wrappedResponse);
	}

	public void init(FilterConfig config) throws ServletException {
		
	}

	public void destroy() {
		
	}
}

LoginInterceptor.java

package com.sf.hkbw.context.interceptor;

import java.net.URLEncoder;
import java.util.List;

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import com.sf.hkbw.entity.Address;
import com.sf.hkbw.entity.ResultVO;
import com.sf.hkbw.utils.Constants;
import com.sf.hkbw.utils.CookieUtil;
import com.sf.hkbw.utils.LbsUtil;
import com.sf.hkbw.utils.StringUtils;


/**
 * 拦截器
 * @author 674045
 *
 */
public class LoginInterceptor implements HandlerInterceptor {


    /**
     * 不需要登录的url(完整)
     */
    private List<String> excludeUris;
    /**
     * 不需要登录的url(开头)
     */
    private List<String> excludeStartsUris;
    
    public List<String> getExcludeUris() {
		return excludeUris;
	}

	public void setExcludeUris(List<String> excludeUris) {
		this.excludeUris = excludeUris;
	}

	public List<String> getExcludeStartsUris() {
		return excludeStartsUris;
	}

	public void setExcludeStartsUris(List<String> excludeStartsUris) {
		this.excludeStartsUris = excludeStartsUris;
	}

	public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3) throws Exception {
    }

    public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3) throws Exception {
    }

    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object arg2) throws Exception {
//        request.setCharacterEncoding("UTF-8");
//        response.setCharacterEncoding("UTF-8");
//        response.setContentType("text/html;charset=UTF-8");
//        String url = request.getRequestURI();
//        if (excludeUris.contains(url)) {
//            return true;
//        }
//        for (String startsUrl : excludeStartsUris) {
//            if (url.startsWith(startsUrl)) {
//                return true;
//            }
//        }
//        if(request.getCookies()!=null){
//        	 return true;
//        }
//        
//        String postIp =LbsUtil.getIpAddr(request);
//        /**
//         * 通过IP判断用户地址
//         */
//        ResultVO addressOfIp = LbsUtil.getAddress("ip=220.198.192.12", "utf-8");	
//        if(addressOfIp !=null){
//	        Address address = addressOfIp.getData();
//	        if(StringUtils.isBlank(address.getCity())){
//	        	redirectUrl(request,response,url);
//	    		return false;
//	        }else{	        	 
//	    		CookieUtil.setCookie(request, response,Constants.CITY ,URLEncoder.encode(address.getCity(), "utf-8"));
//	    		CookieUtil.setCookie(request, response,Constants.CITY_ID ,address.getCity_id());  
//	        	return true;
//	        }  
//        }else{
//        	redirectUrl(request,response,url);
//    		return false;
//        }
    	return true;
        
    }

//    private void redirectUrl(HttpServletRequest request,HttpServletResponse response, String url ) throws Exception{
//    	String param = request.getQueryString();
//		if (param == null) {
//			param = "";
//        } else {
//        	param = "?" + param;
//        }
//		String redirect_url = StringUtils.getEncoder(url + param);
//		response.sendRedirect("/ip/resetCity?url=" + redirect_url);
//    }
  
}

BaseController.java

package com.sf.hkbw.controller;

import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import net.sf.json.JSONObject;

import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;

import com.sf.hkbw.config.LogAppender;
import com.sf.hkbw.entity.AdminFunctions;
import com.sf.hkbw.entity.AdminUsers;
import com.sf.hkbw.entity.ErrorLog;
import com.sf.hkbw.entity.vo.ResultDTO;
import com.sf.hkbw.service.AdminFunctionsService;
import com.sf.hkbw.service.ErrorLogService;
import com.sf.hkbw.utils.CommonHelper;
import com.sf.hkbw.utils.PrimaryKeyGen;


/**
 * 
 * @author sfit0709
 *
 */
@Controller
public class BaseController {
	//日志对象
	protected final transient Logger log = Logger.getLogger(LogAppender.DEFAULT);
	protected HttpServletRequest request;
	protected HttpServletResponse response;
	protected HttpSession session;
	
	//菜单
	@Autowired private AdminFunctionsService adminFunctionsService;	
    //异常处理
	@Autowired private ErrorLogService errorLogService;
	
	@ModelAttribute
	public void setRequestAndResponse(HttpServletRequest request, HttpServletResponse response) {
		this.request = request;
		this.response = response;
		this.session = request.getSession(true);
	}
	
	public void writeJSON(String status, String message) {
		try {
			response.setContentType("text/html; charset=utf-8");
			if (null == status) status = "";
			if (null == message) message = "";
			Map<String, String> map = new HashMap<String, String>();
			map.put("status", status);
			map.put("message", message);
			response.getWriter().print(JSONObject.fromObject(map));
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	public void writeJSON(String status) {
		try {
			response.setContentType("text/html; charset=utf-8");
			if (null == status) status = "";
			Map<String, String> map = new HashMap<String, String>();
			map.put("status", status);
			response.getWriter().print(JSONObject.fromObject(map));
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	public void writeJSON(String status, String message, HttpServletResponse response) {
		try {
			response.setContentType("text/html; charset=utf-8");
			
			if (null == status) status = "";
			if (null == message) message = "";
			
			Map<String, String> map = new HashMap<String, String>();
			map.put("status", status);
			map.put("message", message);
			
			response.getWriter().print(JSONObject.fromObject(map));
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	public void writeJSON(Object status, Object message, HttpServletResponse response) {
		try {
			response.setContentType("text/html; charset=utf-8");
			
			if (null == status) status = "";
			if (null == message) message = "";
			
			Map<String, Object> map = new HashMap<String, Object>();
			map.put("status", status);
			map.put("message", message);
			
			response.getWriter().print(JSONObject.fromObject(map));
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	/**
	 * 输出到页�?
	 * @param str 输出参数
	 * @param charset 编码格式
	 */
	protected void writeAjaxResult(String str, String charset, HttpServletResponse response) {
		try {
			response.getOutputStream().write(str.getBytes(charset));
		} catch (Exception e) {
			log.error("ajax output exception", e);
		}
	}

	/**
	 * 输出到页�?默认编码格式UTF-8
	 * @param str 输出参数
	 */
	protected void writeAjaxResult(String str, HttpServletResponse response) {
		try {
			this.writeAjaxResult(str, "UTF-8", response);
		} catch (Exception e) {
			log.error("ajax output exception", e);
		}
	}
	
	public void responseResult(Object result, HttpServletResponse response){
		try {
			response.setContentType("text/html;charset=utf-8");
			response.getWriter().print(result);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	public void responseJson(Object obj, HttpServletResponse response){
		try {
			response.setContentType("application/json;charset=utf-8");
			response.getWriter().print(JSONObject.fromObject(obj));
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	public <T> void resultString (int status, String msg, Object data, HttpServletResponse response) {
		ResultDTO<T> result = setResultDTO(status, msg);
		result.setData(data);
		responseJson(result, response);
	}
	
	public <T> void resultList (int status, String msg, List<T> list, HttpServletResponse response) {
		ResultDTO<T> result = setResultDTO(status, msg);
		result.setList(list);
		responseJson(result, response);
	}
	
	public <T> void resultMap (int status, String msg, Map<String, Object> map, HttpServletResponse response) {
		ResultDTO<T> result = setResultDTO(status, msg);
		result.setMap(map);
		responseJson(result, response);
	}
	
	private <T> ResultDTO<T> setResultDTO(int status, String msg) {
		ResultDTO<T> result = new ResultDTO<T>();
		result.setStatus(status);
		result.setMsg(msg);
		return result;
	}
	
	public List<AdminFunctions> getBtns(AdminUsers adminUser,String url){
		System.out.println(url);
		Map<String, Object> params = new HashMap<String, Object>();
		params.put("userId", adminUser.getId());
		params.put("jspUrl", url);
		return adminFunctionsService.getJspButtonList(params);	
	}
	
	/**
	 * TODO  记录抛出异常信息
	 * @author WangFei 681487
	 * @date   2015-2-6下午5:35:20
	 */
	
	
	/**
	 * TODO  记录异常信息
	 * @param adminUser
	 * @param className
	 * @param methodName
	 * @param serverIp
	 * @param ex
	 * @author WangFei 681487
	 * @date   2015-2-6下午5:45:13
	 */
	public void addErrorLog(AdminUsers adminUser,String className,String methodName,Exception ex){
		ErrorLog errorLog= new ErrorLog();
		errorLog.setId(PrimaryKeyGen.genPrimaryKey());
		errorLog.setClassName(className);
		errorLog.setMethodName(methodName);
		errorLog.setServerIp(CommonHelper.getServerId());
		errorLog.setStatus("0");
		errorLog.setLogText(ex.toString());
		errorLog.setCreateBy(adminUser.getUserName());
		errorLogService.addErrorLog(errorLog);
	}
}

applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:context="http://www.springframework.org/schema/context"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	xsi:schemaLocation="
	http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
	http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
	http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd
	http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
	http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
	http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">

	<!-- 启动Spring MVC的注解功能,完成请求和注解POJO -->
	<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
		<property name="messageConverters">
			<list>
				<bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" />
			</list>
		</property>
	</bean>
	
	<mvc:view-controller path="/" view-name="index"/>

	<!-- 对模型视图名称的解析,即在模型视图名称添加前后缀 -->
	<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
		<property name="prefix" value="/WEB-INF/views/" />
		<property name="suffix" value=".jsp" />
	</bean>
	
	<!-- 解决 @PathVariable 截取小数点的问题 -->
	<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">  
        <property name="useDefaultSuffixPattern" value="false" />  
    </bean> 

	<!-- 拦截所有请求 -->
	<mvc:interceptors>
		<mvc:interceptor>
			<mvc:mapping path="/**" />
			<bean class="com.sf.hkbw.context.interceptor.LoginInterceptor">
				<property name="excludeUris">
					<list>
					     <value>/login</value>
					</list>
				</property>
				<property name="excludeStartsUris">
					<list>
					    <value>/api/index</value>
					</list>
				</property>
			</bean>
		</mvc:interceptor>
	</mvc:interceptors>

	<!-- 支持上传文件 -->
	<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" p:defaultEncoding="utf-8">
		<property name="maxUploadSize">
			<value>10000000</value>
		</property>
		<property name="maxInMemorySize">
			<value>4096</value>
		</property>
	</bean>

	<bean class="com.sf.hkbw.utils.SpringContextUtils"></bean>
</beans>


jdbc.properties

#jdbc2 mysql wf127.0.0.1
#jdbc.driver=com.mysql.jdbc.Driver
#jdbc.url=jdbc:mysql://127.0.0.1:3306/oma
#jdbc.username=root
#jdbc.password=123456

#jdbc2 mysql 10.118.46.20
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://10.118.46.20:3306/OMA?useUnicode=true&characterEncoding=utf8
jdbc.username=mysql
jdbc.password=

jdbc.maxActive=100
jdbc.maxIdle=30
jdbc.maxWait=10000


log4j.properties:

log4j.logger.com.springframework=DEBUG
log4j.logger.com.ibatis=DEBUG  
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG  
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUG  
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG  
log4j.logger.java.sql.Connection=DEBUG  
log4j.logger.java.sql.Statement=DEBUG  
log4j.logger.java.sql.PreparedStatement=DEBUG  
log4j.logger.java.sql.ResultSet=DEBUG

log4j.rootLogger = INFO,default
log4j.additivity.org.apache=false

log4j.logger.register = INFO, register
log4j.logger.login = INFO, login
log4j.logger.role = INFO, role
log4j.logger.menu = INFO, menu
log4j.logger.api = INFO, api
log4j.logger.orders = INFO, orders
log4j.logger.adminuser = INFO, adminuser
log4j.logger.apiLog = INFO, apiLog
log4j.logger.propertyValueSet = INFO, propertyValueSet
log4j.logger.accountDetail = INFO, accountDetail

# ConsoleAppender DailyRollingFileAppender#
### set default appender ###
log4j.appender.default = org.apache.log4j.ConsoleAppender
log4j.appender.default.layout=org.apache.log4j.PatternLayout
log4j.appender.default.layout.ConversionPattern=[%-5p] [%c] [%d{yyyy-MM-dd HH:mm:ss,SSS}] [%t] [%l] - [%m]%n

### register ###
log4j.appender.register = org.apache.log4j.DailyRollingFileAppender
log4j.appender.register.file = /app/applogs/HBMS-OMA/register/register.log
log4j.appender.register.DatePattern='.'yyyy-MM-dd
log4j.appender.register.layout=org.apache.log4j.PatternLayout
log4j.appender.register.layout.ConversionPattern=[%-5p] [%c] [%d{yyyy-MM-dd HH:mm:ss,SSS}] [%t] [%l] - [%m]%n\

### login ###
log4j.appender.login = org.apache.log4j.DailyRollingFileAppender
log4j.appender.login.file = /app/applogs/HBMS-OMA/login/login.log
log4j.appender.login.DatePattern='.'yyyy-MM-dd
log4j.appender.login.layout=org.apache.log4j.PatternLayout
log4j.appender.login.layout.ConversionPattern=[%-5p] [%c] [%d{yyyy-MM-dd HH:mm:ss,SSS}] [%t] [%l] - [%m]%n\

WebContent/WEB-INF/spring-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:context="http://www.springframework.org/schema/context"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	xsi:schemaLocation="
	http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
	http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
	http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd
	http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
	http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
	http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
    
    <!-- 使用spring注解 -->
	<context:annotation-config />
	<context:component-scan base-package="com.sf.hkbw.controller" />
	<context:component-scan base-package="com.sf.hkbw.service" />
	
	<!-- LDAP domain user verify -->
	<bean id="contextSoureTarget" class="org.springframework.ldap.core.support.LdapContextSource">
		<property name="url" value="ldap://HQDC02.SF.COM/"></property>
		<property name="base" value="OU=SF-Express,DC=sf,DC=com"></property>
		<property name="referral" value="follow"></property>
		<!-- 域账号和密码设置(域账号格式为sf\******) 
		<property name="userDn" value="sf\member"/> 
		<property name="password" value="1qazxcvbnm,"/> -->
	</bean>

	<bean id="ldapAuthenticationBiz" class="com.sf.hkbw.service.LdapAuthenticationService">
		<property name="contextSource" ref="contextSoureTarget" />
		<property name="prefix" value="sf\" />
	</bean>
		
	<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
		<property name="locations" value="classpath:/*.properties" />
	</bean>

 	<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
		<property name="driverClassName" value="${jdbc.driver}" />
		<property name="url" value="${jdbc.url}" />
		<property name="username" value="${jdbc.username}" />
		<property name="password" value="${jdbc.password}" />
	</bean>

	<!-- 定义事物管理器 -->
	<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource" ref="dataSource" />
	</bean>

	<tx:annotation-driven proxy-target-class="true" transaction-manager="transactionManager" />

	<!-- 事物传播属性 -->
	<tx:advice id="txadvice" transaction-manager="transactionManager">
		<tx:attributes>
			<tx:method name="insert*" propagation="REQUIRED" />
			<tx:method name="create*" propagation="REQUIRED" />
			<tx:method name="save*" propagation="REQUIRED" />
			<tx:method name="add*" propagation="REQUIRED" />
			<tx:method name="update*" propagation="REQUIRED" />
			<tx:method name="modify*" propagation="REQUIRED" />
			<tx:method name="delete*" propagation="REQUIRED" />
			<tx:method name="remove*" propagation="REQUIRED" />
			<tx:method name="change*" propagation="REQUIRED" />
			<tx:method name="disposeOrderType" propagation="REQUIRED" />
		</tx:attributes>
	</tx:advice>

	<!-- 切入点 -->
	<aop:config>
		<aop:pointcut id="transactionPointcut" expression="execution(* com.sf.hkbw..*.service..*.*(..))" />
		<aop:advisor advice-ref="txadvice" pointcut-ref="transactionPointcut" />
	</aop:config>

	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="dataSource" ref="dataSource" />
	</bean>

	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
		<property name="basePackage" value="com.sf.hkbw.mapper" />
	</bean>
	
	<bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
	    <property name="corePoolSize" value="10"/>
	    <property name="maxPoolSize" value="50"/>
	</bean>
</beans>

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
  <filter>
    <filter-name>characterEncodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
      <param-name>encoding</param-name>
      <param-value>UTF-8</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>characterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
  <filter>
    <filter-name>jsessionid</filter-name>
    <filter-class>com.sf.hkbw.context.filter.DisableUrlSessionFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>jsessionid</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext.xml,WEB-INF/spring-servlet.xml</param-value>
  </context-param>
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  <listener>
    <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
  </listener>
  <servlet>
    <servlet-name>spring</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>spring</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.jpg</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.swf</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.JPG</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.png</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.gif</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.jpeg</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.js</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.css</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.xml</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.html</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.htm</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.exe</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.ico</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.properties</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.txt</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.pdf</url-pattern>
  </servlet-mapping>
  <error-page>
    <error-code>404</error-code>
    <location>/error/404.html</location>
  </error-page>
  <error-page>
    <error-code>500</error-code>
    <location>/error/500.html</location>
  </error-page>
  <welcome-file-list>
    <welcome-file>/index.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
    <servlet-name>VerifyCodeServlet</servlet-name>
    <servlet-class>com.sf.hkbw.utils.VerifyCodeServlet</servlet-class>
    <init-param>
      <param-name>num</param-name>
      <param-value>4</param-value>
    </init-param>
    <init-param>
      <param-name>content</param-name>
      <param-value>abcdefghijklmnpqrstuvwxyzABCDEFGHIJKLMNPQRSTUVWXYZ23456789</param-value>
    </init-param>
  </servlet>
  <servlet-mapping>
    <servlet-name>VerifyCodeServlet</servlet-name>
    <url-pattern>/security/random</url-pattern>
  </servlet-mapping>
  <resource-ref>
    <res-ref-name>omaDS</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
  </resource-ref>
  
<!-- 	<session-config>
	    <session-timeout>1</session-timeout>
	</session-config> -->  
	
</web-app>


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值