您的位置:首页 > 移动开发

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



</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


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息