zoukankan      html  css  js  c++  java
  • spirngMVC的搭建

    1 springMVC的搭建肯定是需要用到一系列的jar包的,那么第一步就是去spring官网下载对应版本的jar包 可以通过 http://www.cnblogs.com/imentors/p/4991522.html 下载对应的jar包

    2. spring浏览器访问数据的过程:

        (浏览器) http--dispatcherServlet--handlerMapping--controller--返回modelAndView--Model(实体类 也就是在jsp中展示的内容)--view(jsp)--http(浏览器)

    3.
       DispatcherServlet接口:Spring提供的前端控制器,所有的请求都有经过它来统一分发。在DispatcherServlet将请求分发给Spring Controller之前,需要借助于Spring提供的HandlerMapping定位到具体的Controller。

       HandlerMapping接口:能够完成客户请求到Controller映射

       Controller接口:需要为并发用户处理上述请求,因此实现Controller接口时,必须保证线程安全并且可重用。Controller将处理用户请求 (也就是后台逻辑,通过jsp传过来的参数从数据库获取数据返回给jsp)

    4. 
      项目目录    resource是 直接项目右击--new--Source Folder

     我们要把jar包导入到项目中/WEB-INF/lib下    spring开头jar包都能在第一步中找到,但我们还需要commons-loggingjar包 否则会报Caused by: java.lang.NoClassDefFoundError: Lorg/apache/commons/logging/Log;
       同时为了能看到项目的详细信息,我们要加上log4j.jar包,打印日志, 还要加上jstl.jar包 如果不加那么当从后台到jsp的时候会报错

    5.
    首先在web.xml中配置DispatcherServlet

      <servlet>
        <servlet-name>spring</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!-- 去加载指导的配置文件 如果没有就去加载/WEB-INF/applicationContext.xml配置文件  classpath:就可以读取resource下的资源文件-->
        <init-param>
                <param-name>contextConfigLocation</param-name>
                <param-value>classpath:spring-mvc.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
      </servlet>

     <!--浏览器--http请求--tomcat容器--减去url的上下文路径作为servlet的映射url

    例:localhost:8080/test/login  上下文是localhost:8080/test 所以servlet的映射url就是 /login 然后通过servlet-name去找到上面的DispatcherServlet --handlerMapping--controller(对应的后台方法) -->

     <servlet-mapping>
        <servlet-name>spring</servlet-name>
        <url-pattern>/</url-pattern>
      </servlet-mapping>
     
     <!-- 我们登陆时的首页 localhost:8080/demo/--> 一定要在项目名后面加‘/’ 因为我们在  <servlet-mapping>中配置的url-pattern是'/'  会自动找到login.jsp页面
      <welcome-file-list>
        <welcome-file>/login.jsp</welcome-file>
      </welcome-file-list>

    <!--日志配置 -->
    <context-param>
      <param-name>log4jConfigLocation</param-name>
      <param-value>
        classpath:log4j.properties
      </param-value>
      </context-param>
    <listener>
      <listener-class>

        org.springframework.web.util.Log4jConfigListener                     -->这个jar如下图

      </listener-class>
    </listener>

     

    spring 配置文件  spring-mvc.xml

    <?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:mvc="http://www.springframework.org/schema/mvc"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:aop="http://www.springframework.org/schema/aop"
    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/aop
    http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
    http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">

     <!--相当于注册了DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter两个bean,配置一些messageconverter。即解决了@Controller注解的使用前提配置。 --> 

     <mvc:annotation-driven/>

    <!-- 自动扫描且是实现bean的自动注入 -->
    <context:component-scan base-package="com.springmvc" />

    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver" >
      <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property>
      <property name="prefix" value="/WEB-INF/views/"></property>
      <property name="suffix" value=".jsp"></property>
    </bean>

    <!-- 下面这段话的意思是我们可以通过${} 来获取classpath:dbconfig.properties中的值  下面mysqlDataSource用到了-->
    <context:property-placeholder ignore-unresolvable="true" location="classpath:dbconfig.properties"/>

    <!--

    这里使用的是阿里巴巴的数据库连接jar包 包的名字是druid .jar  -->
    <bean id="mysqlDataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
      <property name="driverClassName"> <value>${db.dirverClass}</value> </property>
      <property name="url" > <value>${db.url}</value> </property>
      <property name="username" > <value>${db.username}</value> </property>
      <property name="password" > <value>${db.password}</value> </property>
    </bean>

    </beans>

    log4j.properties  这个直接复制就行(开始学习没必要那么精细,如有需要可以去学习每个参数的含义)

    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern= %d %p [%c] - <%m>%n

    #logfile configure
    log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.logfile.File=${webapp.root}/WEB-INF/logs/ssm.log
    #log4j.appender.logfile.File=/WEB-INF/logs/ssm.log
    #u65E5u5FD7u6587u4EF6u7684u8DEFu5F84u548Cu540Du79F0
    #log4j.appender.R.File=./../logs/ssm.log
    log4j.appender.logfile.MaxFileSize=10M
    log4j.appender.logfile.MaxBackupIndex=100
    log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
    log4j.appender.logfile.layout.ConversionPattern= %d %p [%c] - <%m>%n

    #debug log for spring
    log4j.logger.org.springframework=DEBUG

    # debug log for ibatis
    log4j.logger.java.sql.Connection=DEBUG
    log4j.logger.java.sql.Statement=DEBUG
    log4j.logger.java.sql.PreparedStatement=DEBUG

    这样 spring的基本配置就完毕了     下面是一个测试   就是从前台页面发送一个请求到后台controller 然后再回到另一个jsp 

    1). 我们webContent 路径下直接创建一个login.jsp 直接写一个form

    <form action="/login" method="post">
      <br />姓名: <input type="text" name="userName"> <br />

      <br />密码: <input type="text" name="password"> <br />

           <input type="submit" value="登录">

    </form>

    2) 这个里面有3个字段  name,age,teacher   那么创建一个model类   里面加4个字段

     

    private String userName;
    private String password;

    3) 当点击提交的时候会在后台的controller中寻找 bean(自动注入的) 为   /login 的controller

    所以我们要写一个方法 在LoginController中

      然后再springmvc 中配置的 

    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver" >
      <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property>
      <property name="prefix" value="/WEB-INF/views/"></property>
      <property name="suffix" value=".jsp"></property>
    </bean>

    我们在views目录下 创建两个jsp success.jsp和test.jsp

    然后启动服务  http://localhost:8080//SpringMVC/       这个后面一定要加上/ 否则会404  因为在上面web.xml中配置的

    后台dubug 发现走到了后台 而且User中也获取到了 前台传递的值

    最后会跳转到success.jsp中

     

    springmvc的基本配置 就完了

  • 相关阅读:
    mongodb添加延时节点
    AFNetworking 遇到错误 Code=-1016 "Request failed: unacceptable content-type: text/plain"
    使用cocoa捕获dock栏中的“退出”事件,解决qt开发的应用程序退出异常的问题
    【Grails 代理Proxy设置】部署Grails遇到Error Resolve error obtaining dependencies:错误,及解决方法
    【转】MongoDB 3.0 正式版本即将发布,强力推荐
    求数组的一个最大子数组
    MergeSort 归并排序(java)
    java查询几个菜单下的所有下级菜单
    InsertionSort 直接插入排序(java)
    sublime3配置java开发环境
  • 原文地址:https://www.cnblogs.com/studyitskill/p/7449576.html
Copyright © 2011-2022 走看看