日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

[Java,MVC] Eclipse下搭建Spring MVC

發布時間:2025/3/15 java 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [Java,MVC] Eclipse下搭建Spring MVC 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉自: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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。