注意所需的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
│
├─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&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" %>
<%@ 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>
<%@ 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>