自学到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类

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页面

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