springMVC学习,个人入门学习小结。

来源:互联网 发布:汽车销售网站源码 编辑:程序博客网 时间:2024/05/21 07:13

    刚入门springMvc,工作中有使用,但由于感触不深理解起来也困难,所以也算是找个机会学习并把所遇到的问题,记录便于查看。

有个问题已一直困扰两天,就是搭建好springMvc环境后也就是Holle word入门时,环境一直报错。

目前现状:

  1. jar文件已导入
    • spring框架支持包(spring-framework-3.1.1.RELEASE-with-docs.zip)   注:解压后,将dist下的jar全部引用。
    • spring框架所依赖的jar包(log4j包commons.logging-1.1.1.jar,jstl标签库依赖包jstl-1.1.2.jar和standard-1.1.2.jar)
    • 附上下载地址
    • 注:以上jar包,可根据实际情况提升包的版本。 
  2. web.xml文件的配置
    </pre><pre name="code" class="html"><?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">  <display-name>lishehespringMVC</display-name>  <welcome-file-list>    <welcome-file>index.jsp</welcome-file>  </welcome-file-list>    <servlet>      <servlet-name>chapter2</servlet-name>      <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  <!--启动顺序,表示一开始直接启动 -->    <load-on-startup>1</load-on-startup>  </servlet>  <servlet-mapping>      <servlet-name>chapter2</servlet-name>      <!-- 拦截,表示哪些请求让sprin -->    <url-pattern>/</url-pattern>  </servlet-mapping>   </web-app>

  3. servletxx-servlet.xml(SpringMVC配置文件)
    <?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"        xmlns:context="http://www.springframework.org/schema/context"        xmlns:mvc="http://www.springframework.org/schema/mvc"        xsi:schemaLocation="                http://www.springframework.org/schema/beans                http://www.springframework.org/schema/beans/spring-beans-3.0.xsd                http://www.springframework.org/schema/context                http://www.springframework.org/schema/context/spring-context-3.0.xsd               http://www.springframework.org/schema/mvc                http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">           <!-- HandlerMapping -->  <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>     <!-- HandlerAdapter -->  <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/><!-- 用于支持Servlet、JSP视图解析; --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>      <property name="prefix" value="/"/>      <property name="suffix" value=".jsp"/>  </bean><!-- bean,可以简单地将它理解为一个请求入口(输入/hello->跳到你给我对应的class上)  --><bean name="/hello" class="com.wulit.ripple.controller.HelloWorldController"/></beans>

  4. xxxxController(控制器,主要用于前台跟后台之间的交互)
    package com.wulit.ripple.controller;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 HelloWorldController implements   Controller {      public ModelAndView handleRequest(HttpServletRequest req, HttpServletResponse resp) throws Exception {             //1、收集参数、验证参数         //2、绑定参数到命令对象         //3、将命令对象传入业务对象进行业务处理         //4、选择下一个页面         ModelAndView mv = new ModelAndView();         //添加模型数据 可以是任意的POJO对象         mv.addObject("message", "Hello World!");         //设置逻辑视图名,视图解析器会根据该名字解析到具体的视图页面,       //例如:返回hello,再加上chapter2-servlet.xml配置的自动加上.jsp后缀  那就变成了返回hello.jsp       mv.setViewName("hello");         return mv;    } }  

  5. jsp页面
    <%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body>   欢迎进入第一次的我。   <br/>出现:${message}</body></html>

这里基本就算是springMVC这个框架的最基础最简单的配置了,其实也就这点点代码而已,我特么还出现了错误,并且困扰了一天多(由于刚接触),后来终于在网友的帮助下,解决了这个问题。。。。
  报错如下:
当看到这个问题后,立马想到request的支持jar文件包未导入,好吧,那我立马按照之前的习惯,将servlet-api.jar,jsp-servlet-api导入到项目中,当然结果没让人失望,包未引入问题解决。终于可以高高兴兴的运行了~~
但真正问题才刚刚开始,怎么运行不了呢? null指针? 500内部错误?... 感觉不科学呀,截图:
ok,你既然出现问题,那我就继续百度呗,找找原因在哪先。。。当然有人遇到过这种情况,说是servlet-api.jar与jsp-api.jar与tomcat中的jar文件冲突了,只要将项目中的去掉就好。 但是照做后,问题依然存在,那就是,本身项目lib下的servlet-api.jar与jsp-api.jar是因为request未引入报错,而现在又说是引起了冲突,突然我是一下子被这个搞蒙了。 不导入jar时tocmat至少还能正常运行(虽然报错未引入,但jsp还是可以跑起来的撒),一旦引入还直接整的整个项目报500....
而后经过了许久的煎熬,终于弄清楚事情真相所在
将原本导入到项目lib下的两个包,删除一个只留下servlet-api.jar,好了圆满完成。
原来,我们使用tomcat作为启动器的时候,项目会自动的去引用tomcat安装目录下的lib文件中的jar包,而如果我们再去自己引用一遍的话,那肯定就产生了冲突。而我们只需要导入servlet-api.jar包解决Controller包未引入的报错问题就可以了。

通过一位大神级别的博客而进行的学习,所以很多东西都基本是抄来的,哈哈! 地址:点击打开链接

然后,虽然感觉做了一些无谓的事情,但是还是有所收获的。

0 0
原创粉丝点击