spring学习错误总结:spring配置applicationContext自动加载配置 之404 cannot find resource
2016-06-22 10:36
453 查看
第一步:新建web项目,在项目/MyEclipse/Add Spring Capabilities中选择spring3.0 ,
使用自己的jar包,去掉加载Myeclipse capabilites jar包前的勾,
在项目/Web-INF/lib中加载需要的Spring包,项目中使用3.1版本。
代码如下:
1.用户类user.java
2.把user对象注入到控制器Manager中
package com.mr.main;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;
import com.mr.user.User;
public class Manager extends AbstractController {
private User user;//注入User对象
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
protected ModelAndView handleRequestInternal(HttpServletRequest arg0,
HttpServletResponse arg1) throws Exception {
user.printInfo();//执行User中的信息打印方法
return null;
}
}
3.相应的Servlet,其中@WebServlet("/ManagerServlet")如果出现红线,需要加载Servlet-api的3版本。
package com.mr.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.mr.user.User;
/**
* Servlet implementation class ManagerServlet
*/
@WebServlet("/ManagerServlet")
public class ManagerServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public ManagerServlet() {
super();
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
ApplicationContext factory=new ClassPathXmlApplicationContext("applicationContext.xml"); //装载配置文件
User user = (User) factory.getBean("user"); //获取Bean
user.printInfo(); //输出JavaBean的属性值
}
}
4.applicationContext的配置,
<?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"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<!-- User Bean -->
<bean id="user" class="com.mr.user.User">
<property name="name">
<value>甜馨</value>
</property>
<property name="age">
<value>11</value>
</property>
<property name="sex">
<value>女</value>
</property>
</bean>
<!-- 注入JavaBean -->
<bean name="/main.do" class="com.mr.main.Manager">
<property name="user">
<ref local="user"/>
</property>
</bean>
</beans>
5.web.xml自动加载配置文件,
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <display-name>16.03 </display-name>
<!--设置自动加载配置文件 -->
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<welcome-file-list>
<welcome-file>ManagerServlet</welcome-file>
</welcome-file-list>
</web-app>
6.index.jsp页面,manager为项目名称
<%@ page language="java" contentType="text/html; charset=GBK"
pageEncoding="GBK"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="GBK">
<title>JavaBean的注入</title>
</head>
<body>
<a href="http://localhost:8080/manager/main.do">执行JavaBean的注入</a>
</body>
</html>运行结果:如果出现404,首先查找访问路径配置是否有错,
使用自己的jar包,去掉加载Myeclipse capabilites jar包前的勾,
在项目/Web-INF/lib中加载需要的Spring包,项目中使用3.1版本。
代码如下:
1.用户类user.java
</pre><pre name="code" class="java">package com.mr.user; public class User { private String name;//用户姓名 private Integer age;//年龄 private String sex;//性别 public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } //输出JavaBean的属性值方法 public void printInfo(){ System.out.println("用户姓名——"+name);//输出用户的姓名 System.out.println("用户年龄——"+age);//输出用户的年龄 System.out.println("用户性别——"+sex);//输出用户的性别 } }
2.把user对象注入到控制器Manager中
package com.mr.main;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;
import com.mr.user.User;
public class Manager extends AbstractController {
private User user;//注入User对象
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
protected ModelAndView handleRequestInternal(HttpServletRequest arg0,
HttpServletResponse arg1) throws Exception {
user.printInfo();//执行User中的信息打印方法
return null;
}
}
3.相应的Servlet,其中@WebServlet("/ManagerServlet")如果出现红线,需要加载Servlet-api的3版本。
package com.mr.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.mr.user.User;
/**
* Servlet implementation class ManagerServlet
*/
@WebServlet("/ManagerServlet")
public class ManagerServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public ManagerServlet() {
super();
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
ApplicationContext factory=new ClassPathXmlApplicationContext("applicationContext.xml"); //装载配置文件
User user = (User) factory.getBean("user"); //获取Bean
user.printInfo(); //输出JavaBean的属性值
}
}
4.applicationContext的配置,
<?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"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<!-- User Bean -->
<bean id="user" class="com.mr.user.User">
<property name="name">
<value>甜馨</value>
</property>
<property name="age">
<value>11</value>
</property>
<property name="sex">
<value>女</value>
</property>
</bean>
<!-- 注入JavaBean -->
<bean name="/main.do" class="com.mr.main.Manager">
<property name="user">
<ref local="user"/>
</property>
</bean>
</beans>
5.web.xml自动加载配置文件,
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <display-name>16.03 </display-name>
<!--设置自动加载配置文件 -->
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<welcome-file-list>
<welcome-file>ManagerServlet</welcome-file>
</welcome-file-list>
</web-app>
6.index.jsp页面,manager为项目名称
<%@ page language="java" contentType="text/html; charset=GBK"
pageEncoding="GBK"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="GBK">
<title>JavaBean的注入</title>
</head>
<body>
<a href="http://localhost:8080/manager/main.do">执行JavaBean的注入</a>
</body>
</html>运行结果:如果出现404,首先查找访问路径配置是否有错,
http://localhost:8080/manager/main.do
相关文章推荐
- 一个jar包里的网站
- 一个jar包里的网站之文件上传
- 一个jar包里的网站之返回对媒体类型
- Spring和ThreadLocal
- Spring Boot 开发微服务
- Spring AOP动态代理-切面
- Spring整合Quartz(JobDetailBean方式)
- Spring整合Quartz(JobDetailBean方式)
- 模拟Spring的简单实现
- Spring整合WebSocket应用示例(上)
- spring+html5实现安全传输随机数字密码键盘
- Spring中属性注入详解
- 监听器获取Spring配置文件的方法
- Java利用Sping框架编写RPC远程过程调用服务的教程
- springmvc 发送ajax出现中文乱码的解决方法汇总
- SpringMVC框架下JQuery传递并解析Json格式的数据是如何实现的
- 详解Java的MyBatis框架和Spring框架的整合运用
- struts2 spring整合fieldError问题
- spring的jdbctemplate的crud的基类dao