`

刚接触 Spring MVC + Hibernate 开发必须知道的

阅读更多
注意所需的jar文件,这个是最重要的 写道


├─build
│ └─classes
│ │ log4j.properties
│ │
│ └─sese
│ └─blog
│ ├─model
│ │ │ User.hbm.xml
│ │ │ User.class
│ │ │ users.sql
│ │ │
│ │ └─dao
│ │ └─hibernate
│ │ UserDaoHibernate.class
│ │
│ ├─service
│ │ UserSerivce.class
│ │
│ └─controller
│ HomeController.class

├─src
│ │ log4j.properties
│ │
│ └─sese
│ └─blog
│ ├─controller
│ │ HomeController.java
│ │
│ ├─model
│ │ │ User.java
│ │ │ User.hbm.xml
│ │ │ users.sql
│ │ │
│ │ └─dao
│ │ └─hibernate
│ │ UserDaoHibernate.java
│ │
│ └─service
│ UserSerivce.java

└─WebContent
│ robots.txt

├─images
├─javascripts
│ │ application.js
│ │ jquery-1.2.6.js
│ │
│ └─__xu_init
├─META-INF
│ MANIFEST.MF

├─stylesheets
│ application.css

└─WEB-INF
│ web.xml
│ xu.app-servlet.xml
│ xu.app-data.xml

├─jsp
│ home.jsp
│ hibernate.jsp
│ taglibs.jsp

└─lib
junit-3.8.2.jar
mysql-connector-java-5.0.3-bin.jar
spring-webmvc.jar
spring.jar
servlet-api.jar
commons-dbcp.jar
commons-fileupload.jar
commons-logging.jar
commons-pool.jar
commons-collections.jar
dom4j-1.6.1.jar
hibernate3.jar
ehcache-1.5.0.jar
slf4j-api-1.5.0.jar
slf4j-log4j12-1.5.0.jar
log4j-1.2.15.jar
jta.jar
javassist-3.4.GA.jar
standard.jar
el-api.jar
jstl.jar

 

 

这样基本就没有问题了,这是我试过的最小的jar集合...

 

web.xml内容如下:

1. 将spring的配置文件分解成几部分来载入,关键是加粗处

2. 配置Spring MVC

3. 配置过滤器过滤字符集

 

 

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
	<display-name>xu.app</display-name>
	
	<!-- Context Configuration locations for Spring XML files -->    
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/xu.app-*.xml</param-value>
    </context-param>
    <listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
	
	
    <servlet>
        <servlet-name>xu.app</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
	
	<servlet-mapping>
        <servlet-name>xu.app</servlet-name>
        <url-pattern>*.xu</url-pattern>
    </servlet-mapping>
	
	<filter>
        <filter-name>encodingFilter</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>
        <init-param>
            <param-name>forceEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
	
	<filter-mapping>
        <filter-name>encodingFilter</filter-name>
        <url-pattern>*.xu</url-pattern>
    </filter-mapping>
    <filter-mapping>
        <filter-name>encodingFilter</filter-name>
        <url-pattern>*.jsp</url-pattern>
    </filter-mapping>
	
	<welcome-file-list>
		<welcome-file>home.xu</welcome-file>
	</welcome-file-list>
	
</web-app>

 

 

xu.app-data.xml 如下,注意配置数据源 和 hibernate的设置

1. hibernate配置文件存放处

 

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	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-2.0.xsd">
	
	
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost/sb?useUnicode=true&amp;characterEncoding=utf-8"/>
        <property name="username" value="root"/>
        <property name="password" value="root"/>
        <property name="maxActive" value="100"/>
        <property name="maxIdle" value="30"/>
        <property name="maxWait" value="1000"/>
        <property name="defaultAutoCommit" value="true"/>
        <property name="removeAbandoned" value="true"/>
        <property name="removeAbandonedTimeout" value="60"/>
    </bean>
	
	<!-- Hibernate SessionFactory -->
    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
    <!--    <property name="mappingResources">  -->
        <property name="mappingDirectoryLocations">
            <list>
                <value>classpath:/sese/blog/model</value>
            </list>
        </property>
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
            </props>
        </property>
    </bean>
	
	<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate" >
		<property name="sessionFactory" ref="sessionFactory"/>
	</bean>
	
	
	<!-- User Dao -->
	<bean id="userDao" class="sese.blog.model.dao.hibernate.UserDaoHibernate" >
		<property name="hibernateTemplate" ref="hibernateTemplate"/>
	</bean>
	
</beans>

 

 

JSP中文乱码的问题,不是TOMCAT的问题,很多人都以为是TOMCAT的问题,其实是你自己的问题

尤其是使用JSTL的时候...

1. JSTL的问题,使用新的标签引用: taglibs.jsp

旧的会出现问题,尤其是迭代的时候 写道
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>

2. JSP中文的问题:

   JSP实际上都要经过一次编译,编译成class文件,第一行是一个标识,告诉编译器我是UTF-8编码的文件,请把我编码成UTF-8编码,如果你不指定,很遗憾,编译器它不知道,就使用默认文件编码,比如windows上的....

 

或许会说 应该执行下面的那个taglibs.jsp啊,那个里面有啊,但我想告诉你,编译器它病不知道,所以它仅仅会将taglibs.jsp编译成UTF-8编码,其它未指定的都编译成系统缺省编码字符集的文件 

 

第一行不能省略,很多人喜欢将其放到通用文件,诸如taglibs.jsp中,以此来省略一些代码,其实是错误的 写道
<%@ page language="java" pageEncoding="UTF-8" contentType="text/html; charset=utf-8" %>
<%@ include file="taglibs.jsp" %>
<html>
<head>
<title>用户列表</title>
</head>
<body>

<c:forEach items="${users}" var="user">

<label>用户ID</label><c:out value="${user.id}"></c:out> <br/>
<label>用户名称</label><c:out value="${user.name}"></c:out> <br/>
<label>用户密码</label><c:out value="${user.password}"></c:out> <br/>
<hr/>

</c:forEach>


</body>
</html>

 

 

1
1
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics