A界面
<form action="http://localhost:8081/cqpt/us...
<button type="submit">submit</button>
</form>
controller
@RequestMapping(value = "/forwordMain")
public String forwordMain(){
return "main";
}
B界面的js
$.ajax({
type: 'post',
contentType: 'application/text;charset=utf-8',
data: this.user,
url: '/user/menu',
success: function (data) {
if (data != '') {
console.log(data);
}
}
});
spring 配置文件
<?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:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<!--资源文件中的属性值可通过@Value加载到控制器中-->
<bean id="configProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="locations">
<list>
<value>classpath:properties/*.properties</value>
</list>
</property>
</bean>
<bean id="config" class="org.springframework.beans.factory.config.PreferencesPlaceholderConfigurer">
<property name="properties" ref="configProperties" />
</bean>
<!--扫描控制器 被@Controller注解的类 base-package: 扫描什么包下的类-->
<context:component-scan base-package="cqsoft.controller"/>
<!--自动处理 不应该是请求的 资源 如访问图片 引入 css javascript 等-->
<mvc:default-servlet-handler />
<!--<mvc:resources mapping="/resources/**/" location="/resources/"/>-->
<!--
注解驱动
会自动注册2个bean
DefaultAnnotationHandlerMapping 处理在类级别上的@RequestMapping注解
AnnotationMethodHandlerAdapter 处理方法级别上的@RequestMapping注解
-->
<mvc:annotation-driven>
<!--
处理表单请求的转换器
配置一个过多个HttpMessageConverter来转换 @RequestBody方法参数 和 @ResponseBody的方法返回值,优先加载默认的HttpMessageConverter.
-->
<!--
此段注释从 <mvc:message-converters> 源码摘录
Configures one or more HttpMessageConverter types to use for converting
@RequestBody method parameters and @ResponseBody method return values.
Using this configuration element is optional.
HttpMessageConverter registrations provided here will take precedence over HttpMessageConverter types registered
by default. Also see the register-defaults attribute if you want to turn off default registrations entirely.
-->
<mvc:message-converters>
<ref bean="jsonHttpMessageConverter"/>
<ref bean="stringHttpMessageConverter"></ref>
<ref bean="formHttpMessageConverter"/>
</mvc:message-converters>
</mvc:annotation-driven>
<!--
如果 controller 中使用 @RequestBody 注解function的参数 必须适用请求转换器类理请求
实现了HttpMessageConverter的接口类如下
ByteArrayHttpMessageConverter converts byte arrays.
StringHttpMessageConverter converts strings.
FormHttpMessageConverter converts form data to/from a MultiValueMap<String, String>.
SourceHttpMessageConverter converts to/from a javax.xml.transform.Sourc
-->
<!--
application/json : 将表单当做 json 字符串
如果设置请求头 'Content-Type': 'application/json' 必须启用 MappingJackson2HttpMessageConverter Bean
导入2个jar包:
Gradle 导入写法
com.fasterxml.jackson.core:jackson-core:2.5.2
com.fasterxml.jackson.core:jackson-databind:2.5.2
缺少一个一项配置,就会导致 网页出现http 415 错误
-->
<bean id="jsonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>application/json;charset=UTF-8</value>
</list>
</property>
</bean>
<!--处理 "text/plain" -->
<bean id="stringHttpMessageConverter" class="org.springframework.http.converter.StringHttpMessageConverter">
<constructor-arg value="UTF-8" index="0"></constructor-arg><!--
避免出现乱码 -->
<property name="supportedMediaTypes">
<list>
<value>text/plain;charset=UTF-8</value>
</list>
</property>
</bean>
<!--处理 application/x-www-form-urlencoded -->
<bean id="formHttpMessageConverter" class="org.springframework.http.converter.FormHttpMessageConverter"></bean>
<!--spring mvc 最常用的视图模式,可以通过前缀加后缀的方式直接定位到view -->
<!--InternalResourceViewResolver 继承自 UrlBasedViewResolver -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/view/"/>
<property name="suffix" value=".jsp"></property>
</bean>
<!-- 配置数据源 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<!-- 基础配置 -->
<property name="driverClass" value="${driverClassName}" />
<property name="jdbcUrl" value="${url}" />
<!-- 用户名和密码加密 -->
<property name="properties" ref="AccountDecrypt" />
<!-- 关键配置 -->
<!--初始化时获取三个连接,取值应在minPoolSize与maxPoolSize之间。Default: 3 -->
<property name="initialPoolSize" value="${initialPoolSize}" />
<!--连接池中保留的最小连接数。Default: 2 -->
<property name="minPoolSize" value="${minPoolSize}" />
<!--连接池中保留的最大连接数。Default: 15 -->
<property name="maxPoolSize" value="${maxPoolSize}" />
<!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 -->
<property name="acquireIncrement" value="${acquireIncrement}" />
<!-- 性能配置 -->
<!-- 控制数据源内加载的PreparedStatements数量。如果maxStatements与maxStatementsPerConnection均为0,则缓存被关闭。Default: 0 -->
<property name="maxStatements" value="${maxStatements}" />
<!--最大空闲时间,1800秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0 -->
<property name="maxIdleTime" value="${maxIdleTime}" />
<property name="idleConnectionTestPeriod" value="${idleConnectionTestPeriod}" />
<property name="acquireRetryAttempts" value="${acquireRetryAttempts}" />
<property name="breakAfterAcquireFailure" value="${breakAfterAcquireFailure}" />
<property name="testConnectionOnCheckout" value="${testConnectionOnCheckOut}" />
</bean>
<!-- 解密账号与密码 -->
<bean id="AccountDecrypt" class="cqsoft.util.AccountDecryptUtil">
<property name="properties">
<props>
<prop key="username">${username}</prop>
<prop key="password">${password}</prop>
</props>
</property>
</bean>
<!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<!-- 自动扫描mapping.xml文件 -->
<property name="mapperLocations" value="classpath:sqlmap/*.xml"></property>
</bean>
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg index="0" ref="sqlSessionFactory"/>
</bean>
<bean id="BaseDao" class="cqsoft.dao.base.BaseDao">
</bean>
<!--加载资源文件-->
<import resource="beans.xml"/>
<!--文件上传-->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!--maxUploadSize可上传多少字节 (53000000=50mb)-->
<property name="maxUploadSize" value="53000000" />
<property name="maxInMemorySize" value="4096" />
<property name="defaultEncoding" value="UTF-8"></property>
</bean>
</beans>
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<!--加载spring 核心的 servlet-->
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--此参数必须有 ,配合多 spring.xml是当前这种写法,还可以指定加载某个spring.xml-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value></param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<!--拦截所有请求,这样配置会把 访问图片,应用css js script 等都当做请求处理-->
<!--避免 css js script 等都当做请求处理 ,需要在spring配置文件中加入 <mvc:resources/> 或 mvc:default-servlet-handler 标签 -->
<url-pattern>/</url-pattern>
</servlet-mapping>
<!--多spring 配置文件-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/springContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!--字符编码过滤器-->
<filter>
<filter-name>springCharacterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>springCharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!--log4j配置-->
<servlet>
<description></description>
<display-name>InitLog4J</display-name>
<servlet-name>InitLog4J</servlet-name>
<servlet-class>cqsoft.servlets.InitLog4J</servlet-class>
<init-param>
<param-name>log4j</param-name>
<param-value>WEB-INF\classes\properties\log4j.properties</param-value>
</init-param>
<load-on-startup>3</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>InitLog4J</servlet-name>
<url-pattern>/InitLog4J</url-pattern>
</servlet-mapping>
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>classpath:properties/log4j.properties</param-value>
</context-param>
<!-- 首页 -->
<welcome-file-list>
<welcome-file>submit.jsp</welcome-file>
</welcome-file-list>
</web-app>