mvc訪問被拒絕
A. springMVC訪問靜態文件如json文件,只能以get方法訪問嗎為什麼我前台ajax訪問用的是post都被拒絕了
訪問當然用get啦,提交用post
要想POST 首先定義一下 @RequestMapping(value="/XXX", method = RequestMethod.POST)
因為默認就是get形式
B. 無法訪問springmvc項目的action連接
配置ViewResolver即可,可以配多個的
C. C# mvc項目開發碰到問題,訪問方法訪問不到
一:查看一下BaseController有沒有繼承Controller。
二:看一下你的路由配置(很有可能是這個造成的)
三:還有可能是你項目沒有生成一下:生成項目試試
D. MVC WebApi在調試開發下訪問正常,部署到伺服器訪問不到介面
1、伺服器是否正常啟動(查看日誌)
2、伺服器的IP+PORT是否可以訪問,查看埠是否被佔用
3、若服務正常啟動,埠也可以訪問,查看你的訪問路徑是否正確(部署後的上下文webcontent是否與調試中一致)
4、訪問不到有很多原因,要看你面對的具體問題去排查,比如報錯信息之類~
E. SpringMVC訪問不到靜態資源的幾種解決方法
第一種:在web.xml中配置名為default的servlet-mapping
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.css</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.gif</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.png</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.js</url-pattern>
</servlet-mapping>
第二種:在SpringMVC配置文件中添加<mvc:resource>標簽
<mvc:resources mapping="/js/**" location="/js/"/>
<mvc:resources mapping="/css/**" location="/css/"/>
<mvc:resources mapping="/img/**" location="/img/"/>
第三種:在SpringMVC配置文件中添加<mvc:default-servlet-handler/>標簽
<mvc:default-servlet-handler/>
第四種:修改SpringMVC的攔截路徑,我這里使用的是/,也就是說所有的鏈接的攔截,
可以修改成*.do或者*.action或者其他,這樣靜態資源就不會攔截了
<servlet-mapping>
<servlet-name>spring-mvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
F. 我SpringMVC為什麼不能訪問Controller
不能訪問jsp是你沒在default中配置。其它方法思路1 寫filter 提前對jsp後綴過濾轉發2 改寫DispatcherServlet的doDispatch方法(迫不得已) 你看看Spring的DispatcherServlet的源碼就會明白。doDispatch首先會調用getHandler找相應的controller, 如果找不到會拋異常, 一般jsp的文件也不會在controller中映射的, 是肯定找不到的。如果不改寫的話第一關都過不了。
G. MVC3 里添加一個靜態網頁為什麼訪問不到
你需要了解MVC的路由原理,當你發出請求時,MVC會到指定的Controller下查找對應的Action,如果找到對應Action,再根據Action返回指定的View。
你現在發生的這種情況,是只在文件夾中添加了靜態文件,但是對應的Controller中么有對應的Action。
注意:MVC 的Action返回是View只能是:.aspx、.ascx、.cshtml、.vbhtml中的一種。換句話說MVC默認路由不能返回html格式文件。
解決:你可以把文件放在除Views目錄下的其他位置(如根目錄下)就可以訪問了。
建議:你可以先查閱一下MVC的一些材料
H. springmvc工程啟動成功 什麼也訪問不了
在某些情況下,有可能你會有這種需求:在Spring/SpringMVC項目中,當Spring/SpringMVC啟動完成後,你需要執行一個方法來完成某些事件(比如創建網站地圖,比如從訂閱Redis伺服器等),這個時候,可以使用Tomcat/Servlet容器提供的事件回調機制來完成,但是這樣有個問題是:無法使用Spring提供的Annotation,解決方法是:
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.storezhang.web;
import com.storezhang.util.TimeUtils;
import com.storezhang.video.util.SiteMapUtils;
import java.util.Timer;
import java.util.TimerTask;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationListener;
import org.springframework.context.event.ContextRefreshedEvent;
import org.springframework.stereotype.Service;
/**
* 啟動監聽器
*
* @author Storezhang
*/
@Service
public class StartupListener implements ApplicationListener<ContextRefreshedEvent> {
@Autowired
private SiteMapUtils sites;
@Override
public void onApplicationEvent(ContextRefreshedEvent evt) {
if (evt.getApplicationContext().getParent() == null) {
createSitemap();
}
}
private void createSitemap() {
Timer timer = new Timer("createSitemap", true);
timer.schele(new TimerTask() {
@Override
public void run() {
System.out.println("--->Create sitemap...");
sites.createSiteMap();
System.out.println("--->Success create sitemap...");
}
}, 1 * TimeUtils.MIN);
}
}
後續研究:
applicationontext和使用MVC之後的webApplicationontext會兩次調用上面的方法,如何區分這個兩種容器呢?
但是這個時候,會存在一個問題,在web 項目中(spring mvc),系統會存在兩個容器,一個是root application context ,另一個就是我們自己的 projectName-servlet context(作為root application context的子容器)。
這種情況下,就會造成onApplicationEvent方法被執行兩次。為了避免上面提到的問題,我們可以只在root application context初始化完成後調用邏輯代碼,其他的容器的初始化完成,則不做任何處理,修改後代碼
如下:
@Override
public void onApplicationEvent(ContextRefreshedEvent event) {
if(event.getApplicationContext().getParent() == null){//root application context 沒有parent,他就是老大.
//需要執行的邏輯代碼,當spring容器初始化完成後就會執行該方法。
}
}
I. springmvc為什麼訪問不了
首先看你訪問的地址是什麼,另外伺服器是否預設了項目名 IP埠對嗎 你這問題需要更細節的描述才行
J. spring mvc 訪問什麼都是404
另附一下springMVC中的RequestMapping的一些用法:
對於各種註解而言,排第一的當然是「@Controller」,表明某類是一個controller。
「@RequestMapping」請求路徑映射,如果標注在某個controller的類級別上,則表明訪問此類路徑下的方法都要加上其配置的路徑;最常用是標注在方法上,表明哪個具體的方法來接受處理某次請求。