整合Spring+SpringMVC+Hibernate时,启动正常,可以打开登录页面,但是进行登录时,无法进入controller层,而且不报错,只输出三行日志。
DispatcherServlet with name 'springMVC' processing POST request for [/SSH/user/login.do]
No mapping found for HTTP request with URI [/SSH/user/login.do] in DispatcherServlet with name 'springMVC'
Successfully completed request
意思大概是找不到路径,但应该不是路径的问题,如果路径有问题,页面上message会显示有问题的路径,而不是什么都没有。
HTTP Status 404 -
type Status report
message
description The requested resource is not available.
Apache Tomcat/7.0.82
spring-context.xml配置是这样的
<context:component-scan base-package="service,dao,entity,controller"/>
<!-- 配置数据源 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" >
<property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver" />
<property name="url" value="jdbc:sqlserver://localhost:1433;database=user_role" />
<property name="username" value="sa"/>
<property name="password" value="123456"/>
</bean>
<!-- 配置SessionFactory -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop> <!--指定数据库方言-->
<prop key="hibernate.hbm2ddl.auto">update</prop> <!--hibernate根据实体自动生成数据库表-->
<prop key="hibernate.show_sql">true</prop> <!--在控制台显示执行的数据库操作语句-->
<prop key="hibernate.format_sql">true</prop> <!--在控制台显示执行的数据库操作语句(格式)-->
</props>
</property>
<property name="annotatedClasses">
<list>
<value>entity</value>
</list>
</property>
</bean>
<!-- <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<bean id="userDao" class ="dao.UserDao">
<property name="sessionFactory" ref="sessionFactory" />
<property name="hibernateTemplate" ref="hibernateTemplate" />
</bean> -->
<!-- 开启注解事务 -->
<tx:annotation-driven transaction-manager="transactionManager"/>
<!-- 事物管理器配置 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<!-- 配置事务,使用代理的方式 -->
<bean id="transactionProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" abstract="true">
<property name="transactionManager" ref="transactionManager"></property>
<property name="transactionAttributes">
<props>
<prop key="add*">PROPAGATION_REQUIRED,-Exception</prop>
<prop key="modify*">PROPAGATION_REQUIRED,-myException</prop>
<prop key="del*">PROPAGATION_REQUIRED</prop>
<prop key="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
spring-mvc.xml配置
<!-- 开启注解 -->
<mvc:annotation-driven />
<!-- 注解扫描包 -->
<context:component-scan base-package="controller" />
<!-- 静态资源(js/image)的访问 -->
<mvc:resources location="/js/" mapping="/js/**"/>
<!-- 定义视图解析器 -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/jsp/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
web配置
<display-name>SSH</display-name>
login.jsp
<!-- 加载所有的配置文件 -->
contextConfigLocation
classpath*:config/spring-context.xml
<!-- 配置Spring监听 -->
org.springframework.web.context.ContextLoaderListener
<!-- 防止Spring内存溢出监听器 -->
org.springframework.web.util.IntrospectorCleanupListener
<!-- 配置SpringMVC -->
springMVC
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath*:config/spring-mvc.xml
1
springMVC
/
<!-- 配置字符集 -->
encodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
UTF-8
forceEncoding
true
encodingFilter
/*
<!-- 如果OpenSession加了*号,启动时会报错,找不到名为sessionFactory的bean -->
<!-- 配置Session -->
openSession
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
sessionFactoryBeanName
sessionFactory
</init-param>
openSession
/