jsp的action是什么文件
这个只是一个后缀 不是一个文件 一个虚拟的地址 在web.xml中有配置
<servlet>
<servlet-name>SpringMVC</servlet-name>
<servlet-class&.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>SpringMVC</servlet-name>
<url-pattern>*.action</url-pattern>
</servlet-mapping>
看到啦吗 表示拦截以.action为后缀的所有请求
这是springmvc 的一个拦截器的配置
web.xml中<context-param>的<param-name>是固定的吗?是在哪里定义的?
谢谢,也许你没明白我的意思,举个例子比如:
<param-name>log4jConfigLocation</param-name>中的log4jConfigLocation,
<param-name>contextConfigLocation</param-name>中的contextConfigLocation,
<param-name>webAppRootKey</param-name>中的webAppRootKey,
这3个名字是在哪里定义的,为什么我搜索整个工程都找不到,为什么改个名就不行了。
看了你的追问。
有可能是你引的了第三方类库。
应该是你所做的项目中有人将一些通用的东西,做成了jar供你们使用。
这样你在工程目录有可能搜不到。
如果你用的是eclipse做开发,将搜索的范围扩大些,(即搜索的文件类型是*.*)
看看能不能搜到。
springmvc return 是什么意思
用 spring mvc 轻松进行应用程序开发
配置 spring mvc
要开始构建示例应用程序,请配置 spring mvc 的 dispatcherservlet。
请在 web.xml 文件中注册所有配置。
清单 1 显示了如何配置 samplebankingservlet。
清单 1. 配置 spring mvc dispatcherservlet
<servlet>
<servlet-name>samplebankingservlet</servlet-name>
<servlet-class>
.springframework.we.servlet.dispatcherservlet
<servlet-class>
<load-on-startup>1<load-on-startup>
<servlet>
dispatcherservlet 从一个 xml 文件装入 spring 应用程序上下文,xml 文件的名称是 servlet 的名称后面加上 -servlet 。
在这个示例中,dispatcherservlet 会从 samplebankingservlet-servlet.xml 文件装入应用程序上下文。
配置应用程序的 url
下一步是配置想让 samplebankingservlet 处理的 url。
同样,还是要在 web.xml 中注册所有这些信息。
清单 2. 配置想要处理的 url
<servlet-mapping>
<servlet-name> samplebankingservlet<servlet-name>
<url-pattern>*.jsp</url-pattern>
</servlet-mapping>
装入配置文件
下面,装入配置文件。
为了做到这点,请为 servlet 2.3 规范注册 contextloaderlistener 或为 servlet 2.2 及以下的容器注册 contextloaderservlet。
为了保障后向兼容性,请用 contextloaderservlet。
在启动 web 应用程序时,contextloaderservlet 会装入 spring 配置文件。
清单 3 注册了 contextloaderservlet。
清单 3. 注册 contextloaderservlet
<servlet>
<servlet-name>context>servlet-name>
<servlet-class>
.springframework.web.context.contextloaderservlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
contextconfiglocation 参数定义了要装入的 spring 配置文件,如下面的 servlet 上下文所示。
<context-param>
<param-value>contextconfiglocation</param-value>
<param-value>/web-inf/samplebanking-services.xml</param-value>
</context-param>
samplebanking-services.xml 文件代表示例银行应用程序服务的配置和 bean 配置。
如果想装入多个配置文件,可以在 <param-value> 标记中用逗号作分隔符。
更详细参考:/spring/36585.html
怎么查看springmvc 的beanj是否注入
如何取得Spring管理的bean (请用第3种方法):
1、servlet方式加载时,
【web.xml】
Xml代码
springMVC
<.springframework.web.servlet.DispatcherServlet
contExtConfigLocation
classpath*:/springMVC.xml
1
spring容器放在ServletContext中的.springframework.web.servlet.FrameworkServlet.CONTEXT.springMVC
注意后面的springMVC,是你的servlet-name配置的值,注意适时修改。
Java代码
ServletContext sc=略
WebApplicationContext attr = (WebApplicationContext)sc.getAttribute(.springframework.web.servlet.FrameworkServlet.CONTEXT.springMVC");
2、listener方式加载时:
【web.xml】
Xml代码
contextConfigLocation
/WEB-INF/applicationContext
<.springframework.web.context.ContextLoaderListener
【jsp/servlet】可以这样取得
Java代码
ServletContext context = getServletContext();
WebApplicationContext applicationContext = WebApplicationContextUtils .getWebApplicationContext(context);
3、通用的方法来了,神器啊,前的 1、2两种方法并不通用,可以抛弃了。
在配置文件中加入:
Xml代码
Java代码
.springframework.context.ApplicationContext;
.springframework.context.ApplicationContextAware;
/**
* 以静态变量保存Spring ApplicationContext, 可在任何代码任何地方任何时候中取出ApplicaitonContext.
*
*/
public class SpringContextHolder implements ApplicationContextAware {
private static ApplicationContext applicationContext;
/**
* 实现ApplicationContextAware接口的context注入函数, 将其存入静态变量.
*/
public void setApplicationContext(ApplicationContext applicationContext) {
SpringContextHolder.applicationContext = applicationContext; // NOSONAR
}
/**
* 取得存储在静态变量中的ApplicationContext.
*/
public static ApplicationContext getApplicationContext() {
checkApplicationContext();
return applicationContext;
}
/**
* 从静态变量ApplicationContext中取得Bean, 自动转型为所赋值对象的类型.
*/
@SuppressWarnings("unchecked")
public static
T getBean(String name) {
checkApplicationContext();
return (T) applicationContext.getBean(name);
}
/**
* 从静态变量ApplicationContext中取得Bean, 自动转型为所赋值对象的类型.
*/
@SuppressWarnings("unchecked")
public static T getBean(Class clazz) {
checkApplicationContext();
return (T) applicationContext.getBeansOfType(clazz);
}
/**
* 清除applicationContext静态变量.
*/
public static void cleanApplicationContext() {
applicationContext = null;
}
private static void checkApplicationContext() {
if (applicationContext == null) {
throw new IllegalStateException("applicaitonContext未注入,请在applicationContext.xml中定义SpringContextHolder");
}
}
}java 项目里面的classpath到底是指的到哪一级目录?
web项目的类路径,就可以理解为classes下面。
因为无论这些配置文件你放在哪,编译之后如果没有特殊情况的话都直接在classes下面。
jar包的话虽然放在lib文件夹里,但实际上那些类你可以直接引用的。
饮用的过程中,比.test.ABC,就可以直接这么写,仿佛也在classes下面一样。
请问spring mvc <param-name>contextConfigLocation</param-name>里的
contextConfigLocation 你点进去前面的DispatcherServlet的源码,你就会发现他是这个类的一个属性.
classpath:只会到你的class路径中查找找文件;
classpath*:不仅包含class路径,还包括jar文件中(class路径)进行查找.