转自:http://blog.csdn.net/blue_jjw/article/details/8752466

一、新建Dynamic Web Project

一个web工程最基本的,只看3个地方,在根目录下(这个目录一般习惯叫WebContent或WebRoot)有 :
1.WebRoot/WEB-INF/web.xml  启动引导文件
2.WebRoot/WEB-INF/classes/  编译的class文件,会根据package建立子路径 
3.WebRoot/WEB-INF/lib/      jar包 (注意,lib下不可以再建子目录)
这就是一般比较常用的web工程的结构. 有了这三个结构, 然后把WebRoot的绝对路径告诉tomcat这样的web容器,就可以启动了(当然里面要有相应的东西才行)。
因此虽然我们一般项目的结构是: projectname/src, projectname/WebRoot 但实际上src里的.java源代码是tomcat完全不关心的,它的解析是从WebRoot开始的, .class才是它认识的.

参考:搭建简单web项目: spring3.0基础配置(1)

二、添加Spring的依赖包

其中commons-logging-1.1.1.jar是spring日志依赖jar包,jstl-api-1.2.jar与jstl-impl-1.2.jar是Oracle官方的JSTL接口与实现,如果选Apche的也可以。

在打war包时,将这些依赖包拷贝到WebContent/WEB-INF/lib下:

三、配置web.xml

WebContent/WEB-INF/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" id="WebApp_ID" version="2.5">  <display-name>ContentManagementSystem</display-name>  <!-- 添加spring3控制器, DispatcherServletDispatcherServlet是Spring MVC 的入口  所有进入Spring Web的 Request都经过 DispatcherServlet   -->  <servlet>   <servlet-name>LoadBalanceAlg</servlet-name>   <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>   <load-on-startup>1</load-on-startup>   </servlet>     <!-- 配置spring3的映射规则 -->   <servlet-mapping>   <servlet-name>LoadBalanceAlg</servlet-name>   <url-pattern>*.htm</url-pattern>   </servlet-mapping>  <!-- 配置log4j -->  <!-- spring log4j configuration -->  <context-param>            <param-name>webAppRootKey</param-name>             <param-value>LBAProject</param-value>        </context-param>      <!-- 由Spring加载的log4j配置文件的位置 -->  <context-param>  <param-name>log4jConfigLocation</param-name>  <param-value>/WEB-INF/classes/log4j.conf</param-value>  </context-param>  <!-- Spring刷新log4j配置文件的间隔,单位为millisecond -->  <context-param>  <param-name>log4jRefreshIntercal</param-name>  <param-value>60000</param-value>  </context-param>     <!-- Web项目Spring加载log4j的监听 -->  <listener>  <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>  </listener>    <!-- 默认跳转到根目录下的页面 -->  <welcome-file-list>  <welcome-file>index.htm</welcome-file>  </welcome-file-list>   <!-- session timeout setup, 10 mins -->  <session-config>  <session-timeout>10</session-timeout>  </session-config>   </web-app>

加载DispatcherServlet时Spring会尝试读取配置文件,默认的配置文件位于web.xml相同的路径下,文件名与注册的Servlet名有关:Servlet注册名跟上"-servlet.xml"。 
例如:上面的Servlet注册名为 LoadBalanceAlg,那么默认的配置文件名为:LoadBalanceAlg-servlet.xml。

当然 也可以明确配置文件,需要在注册servlet时设定初始化参数 :

<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>   <!-- 配置文件名 -->
</param-value>
</init-param>

参考:Spring mvc的配置

四、Spring配置文件

文件名需与web.xml中的<servlet-name></servlet-name>中的名字一致

<?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:context="http://www.springframework.org/schema/context"  xsi:schemaLocation="    http://www.springframework.org/schema/beans    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd    http://www.springframework.org/schema/context    http://www.springframework.org/schema/context/spring-context-3.0.xsd"  >   <!-- 开启spring MVC注解功能,完成请求和注解POJO的映射 -->  <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"/>   <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>   <!-- 默认扫描的包路径 -->   <context:component-scan base-package="cn.ac.dsp.controller"/>   <context:component-scan base-package="cn.ac.dsp.service"/>   <!-- 模型视图名称的解析,即模型前后添加前后缀 -->    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">   <property name="viewClass"><value>org.springframework.web.servlet.view.JstlView</value></property>   <property name="prefix"><value>/WEB-INF/jsp/</value></property>   <property name="suffix"><value>.jsp</value></property>   </bean>
</beans>

五、log4j的配置

第一步:导入jar包

第二步:在web.xml中的配置:

<!-- 配置log4j -->
<!-- spring log4j configuration -->
<context-param>            <param-name>webAppRootKey</param-name>             <param-value>LBAProject</param-value>
</context-param>
<!-- 由Spring加载的log4j配置文件的位置 -->  <context-param>  <param-name>log4jConfigLocation</param-name>  <param-value>/WEB-INF/classes/log4j.conf</param-value>  </context-param>  <!-- Spring刷新log4j配置文件的间隔,单位为millisecond -->  <context-param>  <param-name>log4jRefreshIntercal</param-name>  <param-value>60000</param-value>  </context-param>     <!-- Web项目Spring加载log4j的监听 -->  <listener>  <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>  </listener>

其中webAppRootKey表示Web项目根目录的绝对路径,如果不配置webAppRootKey参数,则webAppRootKey 就是缺省的"webapp.root",最好设置,以免项目之间的名称冲突。然后,log4j配置文件中就可以用${LBAProject}表示Web项目目录的绝对路径,如果不设置webAppRootKey,可用${webapp.root}表示Web项目目录的绝对路径。

注意:

1、log4j的配置文件的文件名不能为"log4j.properties",而要改为别的名字,要不然报异常:
log4j:ERROR setFile(null,true) call failed. 
java.io.FileNotFoundException: \WEB-INF\log\abc.log (系统找不到指定的路径。)

原因是log4j.properties与tomcat的log4j重名,改个名字就好了.因为在tomcat启动是默认去找log4j.properties,但此时Listener还没有起来,tomcat就要往\WEB-INF\log\abc.log 写日志就找不到了.

2、${webapp.root}表示工程目录,可以把它加入到log4j配置文件中输入路径的前面,如:
log4j.appender.appender_demo.File = ${webapp.root}/WEB-INF/log/abc.log

3.该配置文件一定要放在src目录下,使其自动生成到/WEB-INF/classes/目录下.否则,spring报异常:
log4j:WARN No appenders could be found for logger (...).
log4j:WARN Please initialize the log4j system properly.

第三步:在src下创建配置文件log4j.conf
log4j.conf:

log4j.rootLogger = INFO, stdout, A1, A2  ##log message to console
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss.SSS} %5p [%t] %c:%l - %m%n  ##log message to file
log4j.appender.A1.Threshold = INFO
log4j.appender.A1 = org.apache.log4j.DailyRollingFileAppender
log4j.appender.A1.File = ${LBAProject}/WEB-INF/log/LBA-info.log
log4j.appender.A1.DatePattern = '-'yyyy-MM-dd'.log'
log4j.appender.A1.layout = org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss.SSS} %5p [%t] %c:%l - %m%n  ##log warn/error to file
log4j.appender.A2.Threshold = WARN
log4j.appender.A2 = org.apache.log4j.DailyRollingFileAppender
log4j.appender.A2.File = ${LBAProject}/WEB-INF/log/LBA-error.log
log4j.appender.A2.DatePattern = '-'yyyy-MM-dd'.log'
log4j.appender.A2.layout = org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss,SSS} %5p [%t] %c:%l - %m%n

参考:log4j注意的问题

Spring中配置log4j问题

搭建简单web项目:spring3.0基本配置(2)

在Spring的项目中配置Log4j存放日志文件到指定目录下

六、前后台代码

首先,在WEB-INF/jsp下新建一个jsp包,与上文中prefix的值相对应(LoadBalanceAlg-servlet.xml中配置了视图解析模块

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"  pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>DB Operation</title>
</head>
<body>  DB Operation Success!
</body>
</html>

在src下编写后台代码(在LoadBalanceAlg-servlet.xml配置的包中),如DBOperation.java:

package cn.ac.dsp.controller;  import java.util.List;  import org.apache.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;  import cn.ac.dsp.dao.ResourceDAO;
import cn.ac.dsp.entity.ResourceEntity;  @Controller
public class DBOperation {  private final static Logger log = Logger.getLogger(DBOperation.class);  @RequestMapping("/dbOperation.htm")  public String start(){  log.info("request for dbOperation");  List<ResourceEntity> resDAOList = ResourceDAO.getInstance().selectAll();  for(ResourceEntity re : resDAOList){  System.out.println(re.hashCode());  }  return "dbOperation";  }  /** * @param args */  public static void main(String[] args) {  DBOperation d = new DBOperation();  d.start();  }
}

七、测试

将Eclipse中的项目打成war包(注意要将依赖包拷贝到WEB-INF/lib下),放到tomcat的webapps下,启动tomcat。

浏览器中打开页面如下:


参考:spring3 mvc系列一:架构基本配置(注解版)

转载于:https://www.cnblogs.com/jqmtony/p/3713709.html

[Java,MVC] Eclipse下搭建Spring MVC相关推荐

  1. Eclipse下创建Spring MVC web程序--非maven版

    首先, 安装eclipse和tomcat, 这里我下载的是tomcat9.0版本64位免安装的:地址https://tomcat.apache.org/download-90.cgi 免安装的如何启动 ...

  2. 从零开始学java 框架_从零开始学 Java - 搭建 Spring MVC 框架

    如果创建一个 Spring 项目 Spring MVC 框架在 Java 的 Web 项目中应该是无人不知的吧,你不会搭建一个 Spring 框架?作为身为一个刚刚学习Java的我都会,如果你不会的话 ...

  3. 搭建Spring MVC 4开发环境八步走

    Spring MVC作为SpringFrameWork的产品,自诞生之日,就受到广泛开发者的关注,如今Spring MVC在Java中的发展可谓是蒸蒸日上,如今如果再有开发者说,不了解Spring M ...

  4. 搭建Spring MVC详解

    文章目录 一.Spring 二.component-scan 三.搭建Spring MVC(一) 四.搭建Servlet 五.搭建Spring MVC(二) 六.搭建Spring MVC(三) 一.S ...

  5. MAC OS X El CAPITAN 搭建SPRING MVC (1)- 目录、包名、创建web.xml

    一. 下载STS(Spring Tool Suite) 官方地址:http://spring.io/tools/sts 下载spring tool suite for mac 最新版本.这个IDE是很 ...

  6. java springmvc https_【Java Web开发学习】Spring MVC 使用HTTP信息转换器

    [Java Web开发学习]Spring MVC 使用HTTP信息转换器 @ResponseBody和@RequestBody是启用消息转换的一种简洁和强大方式 消息转换(message conver ...

  7. 【Java Web开发学习】Spring MVC 拦截器HandlerInterceptor

    [Java Web开发学习]Spring MVC 拦截器HandlerInterceptor 转载:https://www.cnblogs.com/yangchongxing/p/9324119.ht ...

  8. Java Spring MVC框架 VIII 之 Spring MVC拦截器

    Java Spring MVC框架 VIII 之 Spring MVC拦截器 Spring MVC拦截器 1.拦截器简介 拦截器是SpringMvc框架提供的功能 它可以在控制器方法运行之前或运行之后 ...

  9. Spring boot(6)---在Eclipse中搭建Spring boot 项目

    Spring boot入门:在Eclipse中搭建Spring boot 项目 Eclipse中的STS插件 打开Eclipse-Help-Eclipse Marketplace-popular 下载 ...

最新文章

  1. 锁优化:逃逸分析、自旋锁、锁消除、锁粗化、轻量级锁和偏向锁
  2. boost::math模块查找正态(高斯)尺度(标准差)的示例的测试程序
  3. 我的设计模式之旅(4)——生成器(建造者)模式Builder
  4. 【dfs】简单游戏(jzoj 2121)
  5. nginx内存池大小快内存_使用直接内存时可以更快
  6. HTTP--历史、组件系统
  7. ROS工作空间和程序包创建
  8. Hadoop报错 Failed to locate the winutils binary in the hadoop
  9. webpack插件配置(二)- HtmlWebpackPlugin
  10. MySQL查询GROUP BY日/月/年
  11. 【老骥伏枥-原创】制作黑威联通启动盘:进阶篇
  12. Unix/Linux环境C编程入门教程(14) Mandriva LinuxCCPP开发环境搭建
  13. 阿里、百度、腾讯招聘 Java 程序员的技术标准,你达到要求了吗?
  14. 学习笔记:中国大学MOOC《计算机程序设计C++》第3周单元测试
  15. 安卓html调色器,5个超棒的在线配色神器
  16. 支付宝微信在刷脸支付领域两强争霸
  17. pythonn 安装包 清华镜像_Python 清华镜像设置
  18. 嵌入式知识框架之六-接口与总线(SPI\I2C\ USB\PCI\PCI-E\SD\SDIO\以太网接口)
  19. Ctrix卸载ReceiverCleanupUtility.exe
  20. 解决ifconfig 只显示lo

热门文章

  1. 站着办公有助减轻体重
  2. 每个程序员都必须遵守的编程原则
  3. WEB服务在单点登录系统中的应用研究
  4. asp.net三层结构
  5. 如何更加进一步的找到相关的信息呢?
  6. what should you do if you want to have a high efficiency for communication
  7. SWIFT入门 Dictionary
  8. 多线程中使用UNITY变量导致线程执行断掉却又不报错的问题
  9. 发现一个骨灰级图形学大神的博客
  10. 使用JIRA搭建企业问题跟踪系统(转)