spring web部署遇到的小问题

自学到spring web部署时,遇到两个看似很小,但折腾了我好几个小时的小问题。第一就是导入包的问题。刚开始我一口气导入了几十个包,写好配置文件后一发布,得,弹出个404.之后的几个小时又是检查配置,又是增加包的,还是没反应,额。在网上查资料后,决定换个战略,减包、删配置,从最基本的jsp初始状态一点点加包加配置。之后就有了重大发现,原来真有包是不能加的,一加进去就给你个404.这个就是 commons-attributes-compiler.jar。。好了弄好包后,额,发现不能跳转。。。再查,发现控制代码部分的Map没弄好,好,搞定完后,发布,成功!

总结:完成一个spring web最基本的跳转和显示文字所需要的包只要3个,再加个日志包总共就4个:

1.commons-logging.jar

2.log4j-1.2.15.jar

3.spring-webmvc.jar

4.spring.jar

顺便给出配置。

1.web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" 
    xmlns="http://java.sun.com/xml/ns/j2ee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>

 <servlet>
    <servlet-name>hello</servlet-name>
    <servlet-class>
        org.springframework.web.servlet.DispatcherServlet
    </servlet-class>
    <init-param>
       <param-name>contextConfigLocation</param-name>
       <param-value>/WEB-INF/dispatcherServlet-Servlet.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
 </servlet>
 <servlet-mapping>
    <servlet-name>hello</servlet-name>
    <url-pattern>*.do</url-pattern>
</servlet-mapping>

</web-app>

2.dispatcherServlet-Servlet.xml

代码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>
   <!-- 定义映射 -->
   <bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
       <property name="mappings">
          <props>
             <prop key="helloWorld.do">helloWorldAction</prop>
          </props>
       </property>
   </bean>
   <!-- 定义视图 -->
   <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass">
           <value>org.springframework.web.servlet.view.InternalResourceView</value>
        </property>
   </bean>
   <!-- 定义控制器 -->
   <bean id="helloWorldAction" class="cn.Spring.MVC.HelloWorldAction">
        <property name="helloWorld">
           <value>Helloworld,您好spring</value>
        </property>
        <property name="viewPage">
           <value>/hello.jsp</value>
        </property>
   </bean>
</beans>

3.HelloWorldAction  java类

java类
package cn.Spring.MVC;
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 HelloWorldAction implements Controller{
    private String helloWorld;
    private String viewPage;

    public String getHelloWorld() {
        return helloWorld;
    }

    public void setHelloWorld(String helloWorld) {
        this.helloWorld = helloWorld;
    }

    public String getViewPage() {
        return viewPage;
    }

    public void setViewPage(String viewPage) {
        this.viewPage = viewPage;
    }
    /**
     * 
     */
    public ModelAndView handleRequest(HttpServletRequest arg0,
            HttpServletResponse arg1) throws Exception {
        Map<String, String> model=new HashMap<String, String>();
        model.put("helloWorld", getHelloWorld());
        return new ModelAndView(getViewPage(),model);
    }

}

4.hello.jsp页面

jsp页面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<%
  String str=(String)request.getAttribute("helloWorld");
 %>
  <head>
  </head>  
  <body>
    <h1><%=str %>,你好</h1>
  </body>
</html>

 

 

posted @ 2013-04-03 13:10  深海巨坑  阅读(138)  评论(0编辑  收藏  举报