SpringMVC访问静态文件

最近在看SpringMVC的视频,做一下记录。

对于SpringMVC访问静态文件,

首先要配置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>springMVC1</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <!-- springMVC 入口 dispatcher -->
  <servlet>
  		<servlet-name>springMVC</servlet-name>
  		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  		<!-- 加载配置文件路径 -->
  		<init-param>
  			<param-name>contextConfigLocation</param-name>
  			<param-value>classpath*:config/spring-servlet.xml</param-value>
  		</init-param>
  		<!-- 何时启动  大于0的值表示容器启动时初始化此servlet,正值越小优先级越高-->
  		<load-on-startup>1</load-on-startup>
  </servlet>
  <!-- 拦截 -->
  <servlet-mapping>
  	<servlet-name>springMVC</servlet-name>
  	<url-pattern>/</url-pattern>
  </servlet-mapping>
</web-app>

其次,配置spring-servlet.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
 xmlns:context="http://www.springframework.org/schema/context"
 xmlns:p="http://www.springframework.org/schema/p"
 xmlns:mvc="http://www.springframework.org/schema/mvc"
 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-3.0.xsd
      http://www.springframework.org/schema/context
      http://www.springframework.org/schema/context/spring-context.xsd
      http://www.springframework.org/schema/mvc
      http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">

	<!-- 路径对应调用的Controller -->
	<bean name="/test/helloworld" class="com.tgb.web.controller.HelloWorldController"/>
	<!-- 视图解析 -->
      <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
      		<property name="prefix" value="/WEB-INF/jsp"></property>
      		<property name="suffix" value=".jsp"></property>
      </bean>

     <!-- 静态资源访问(不拦截此目录下的东西的访问) -->
	<mvc:resources location="/img/"  mapping="/img/**" />

     <!-- 同一个Controller多方法的配置 -->
     <bean name="/test/multi" class="com.tgb.web.controller.MultiController">
     	<property name="methodNameResolver">
     		<ref bean="paramMethodResolver"/>
     	</property>
     </bean>

     <bean id="paramMethodResolver" class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">
		<property name="paramName" value="action"></property>
	</bean>

     <bean name="/test/img" class="com.tgb.web.controller.StaticController">
     	<property name="methodNameResolver">
     		<ref bean="paramMethodResolver"/>
     	</property>
     </bean> 

</beans>

java代码:

package com.tgb.web.controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.multiaction.MultiActionController;

public class StaticController extends MultiActionController{

	public ModelAndView img(HttpServletRequest request,HttpServletResponse response){
		return new ModelAndView("/staticFile");
	}

	public ModelAndView add(HttpServletRequest request,HttpServletResponse response){
		System.out.println("--------------add---------");
		return new ModelAndView("/multi","method","add");
	}

	public ModelAndView update(HttpServletRequest request,HttpServletResponse response){

		System.out.println("--------------update---------");
		return new ModelAndView("/multi","method","update");
	}
}
package com.tgb.web.controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.multiaction.MultiActionController;

public class MultiController extends MultiActionController{

	public ModelAndView add(HttpServletRequest request,HttpServletResponse response){
		System.out.println("--------------add---------");
		return new ModelAndView("/multi","method","add");
	}

	public ModelAndView update(HttpServletRequest request,HttpServletResponse response){

		System.out.println("--------------update---------");
		return new ModelAndView("/multi","method","update");
	}
}
package com.tgb.web.controller;

import java.util.HashMap;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

public class HelloWorldController implements Controller{

	public ModelAndView handleRequest(HttpServletRequest arg0,
			HttpServletResponse arg1) throws Exception {
		// TODO Auto-generated method stub
		System.out.println("---------------is here-----------");
		String result = "I‘m coming!!";
		//return new ModelAndView("/welcome","result",result);//传递字符串参数

		Map<String,Object> map = new HashMap<String,Object>();
		map.put("1", "sdf");
		map.put("2", "234324");

		return new ModelAndView("/welcome","map",map);//传递map参数

	}

}

JSP页面代码

staticFile.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!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=UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h> 图片</h>
	<br/>
	<div>
		<img alt="图片" src="../img/a.png">
	</div>
</body>
</html>

multi.jsp界面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!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=UTF-8">
<title>Insert title here</title>
</head>
<body>
	多方法Controller
	<br/>
	此次方法${method }
</body>
</html>

welcome.jsp界面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!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=UTF-8">
<title>Insert title here</title>
</head>
<body>
	Spring MVC is coming to see you!!
	<br/>
	${result }
	<br/>
	取map值
	<div>

		<c:forEach items="${map }" var="m">

		${m.key } -----> ${m.value }

		</c:forEach>
	</div>

</body>
</html>

---------------------------------------------------------------------------------------------------------------------------

细节注意点:

1、路径中action的作用和配置,即如何调用方法

2、静态文件放置的位置(注意img文件夹的位置和使用时的配置,不要放在WEB-INF文件夹下tomcat容器会给屏蔽掉)

此文件夹发布到tomcat后的位置

3、使用.do后缀拦截方式

SpringMVC访问静态文件

时间: 2024-10-05 23:56:59

SpringMVC访问静态文件的相关文章

SpringMVC对静态文件的3种访问方法

servlet在找页面时,走的是dispatcherServlet路线.找不到的时候会报404错误. 加上这个默认的servlet时候,servlet在找不到的时候会去找静态的内容. 访问到静态的文件,如jpg,js,css 如何你的DispatcherServlet拦截 *.do这样的URL,就不存在访问不到静态资源的问题.如果你的DispatcherServlet拦截“/”,拦截了所有的请求,同时对*.js,*.jpg的访问也就被拦截了. 目的:可以正常访问静态文件,不要找不到静态文件报40

转转转!SpringMVC访问静态资源的三种方式

如果你的DispatcherServlet拦截 *.do这样的URL,就不存在访问不到静态资源的问题.如果你的DispatcherServlet拦截"/",拦截了所有的请求,同时对*.js,*.jpg的访问也就被拦截了. 问题原因:罪魁祸首是web.xml下对spring的DispatcherServlet请求url映射的配置,原配置如下: <servlet> <servlet-name>spring</servlet-name> <servl

SpringMVC访问静态资源

转自:SpringMVC访问静态资源 在SpringMVC中常用的就是Controller与View.但是我们常常会需要访问静态资源,如html,js,css,image等. 默认的访问的URL都会被DispatcherServlet所拦截,但是我们希望静态资源可以直接访问.该肿么办呢? 在配置文件:web.xml可以看到: <!-- Processes application requests --> <servlet> <servlet-name>appServle

springMVC3学习(四)--访问静态文件如js,jpg,css

如果你的DispatcherServlet拦截的是*.do这样的URL,就不存在访问不到静态资源的问题 如果你的DispatcherServlet拦截了"/"所有的请求,那同时对*.js,*.jpg的访问也就被拦截了. 我们在进行springMVC开发时,必定会在jsp页面引入js.img和css等文件. 大多数人会将这些分类存放在WebRoot文件下新建的文件夹下面. 同时,会在web.xml文件中配置拦截所有请求.这样就造成了页面无法访问到js.img和css文件夹中的文件了 方法

【SpringMVC】SpringMVC访问静态资源

林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 本文要以一个例子来说明SpringMVC访问静态资源 <mvc:resources 的使用方法:<!--对静态资源文件的访问--> <mvc:resources mapping="/images/**" location="/images/" /> /images /**映射到 ResourceHttpRequestHandler

当配置 DispatcherServlet拦截“/”,SpringMVC访问静态资源的三种方式

如何你的DispatcherServlet拦截 *.do这样的URL,就不存在访问不到静态资源的问题.如果你的DispatcherServlet拦截“/”,拦截了所有的请求,同时对*.js,*.jpg的访问也就被拦截了. 目的:可以正常访问静态文件,不要找不到静态文件报404. 方案一:激活Tomcat的defaultServlet来处理静态文件 <servlet-mapping> <servlet-name>default</servlet-name> <url

【转】SpringMVC访问静态资源的三种方式

如何你的DispatcherServlet拦截 *.do这样的URL,就不存在访问不到静态资源的问题.如果你的DispatcherServlet拦截“/”,拦截了所有的请求,同时对*.js,*.jpg的访问也就被拦截了. 目的:可以正常访问静态文件,不要找不到静态文件报404. 方案一:激活Tomcat的defaultServlet来处理静态文件 <servlet-mapping>     <servlet-name>default</servlet-name>    

SpringMVC访问静态资源的三种方式(转)

本文转自:http://www.iigrowing.cn/springmvc_fang_wen_jing_tai_zi_yuan_de_san_zhong_fang_shi.html 如何你的DispatcherServlet拦截 *.do这样的URL,就不存在访问不到静态资源的问题. 如果你的DispatcherServlet拦截“/”,拦截了所有的请求,同时对*.js,*.jpg的访问也就被拦截了. <!-- Processes application requests --> <s

VUE打包好的文件部署让beego实现静态文件访问,如何用根目录来访问静态文件?

最近的一个全栈项目,光伏云监控系统,后端使用beego框架,纯api,前端使用VUE2.0.项目地址:http://scada.ssechina.com:88/static 我把打包好的前端文件放到go的static目录, 然后main里面设置 beego.BConfig.WebConfig.StaticDir["/static"] = "static"只能用ip/static/login.html来访问 如果改成beego.BConfig.WebConfig.St