`
2277259257
  • 浏览: 518543 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

SpringMVC----应用

 
阅读更多

 

请求---->web.xml中的Spring MVC拦截器---->Spring MVC框架配置文件spring-mvc.xml---->具体的控制类

一、web.xml中注册Spring MVC框架的拦截器

<!--Servlet定义
  这里我们定义了请求分发Servlet,即:org.springframework.web.servlet.DispatcherServlet
  DispatcherServlet 是Spring MVC 中负责请求调度的核心引擎,所有的请求将由此Servlet 根据配置分发至各个逻辑处理单元。其内部同时也维护了一个ApplicationContext实例。-->

 <servlet>
  <servlet-name>spring-mvc</servlet-name>
  <servlet-class> org.springframework.web.servlet.DispatcherServlet </servlet-class>
  <init-param>
   <param-name>contextConfigLocation</param-name>
   <param-value>classpath:spring-mvc.xml</param-value>
  </init-param>
 </servlet>
 <!--配置一个请求后缀,凡是以html结尾的路径,都会被springmvc拦截-->
 <servlet-mapping>
  <servlet-name>spring-mvc</servlet-name>
  <url-pattern>*.do</url-pattern>
 </servlet-mapping>

 

二、创建classpath: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:p="http://www.springframework.org/schema/p"    
        xmlns:context="http://www.springframework.org/schema/context"    
   xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-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/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd  
       http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">   
     
      <context:annotation-config />  


       <!-- 把标记了@Controller注解的类转换为bean -->    
      <context:component-scan base-package="com.outsource.weixin.stuwx.controller" />   Spring MVC框架只应用于项目的某个模块 


      <!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 -->    
      <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />    
       
       <!-- 对模型视图名称的解析,即在模型视图名称添加前后缀 -->    
       <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"    
          p:prefix="/weixin/stuwx/jsp/"  />    
          
       <bean id="multipartResolver"    
          class="org.springframework.web.multipart.commons.CommonsMultipartResolver"    
          p:defaultEncoding="utf-8" />    
 </beans> 

 

三、创建Spring MVC的controller(类似Struts2的Action

package com.outsource.weixin.stuwx.controller;

@Controller                                                                   ----注解形式标注该类属于Spring MVC 的Controller层类似Struts2的Action
@RequestMapping(" /upwk.do")                                    ----请求该类的路径
public class UpLoadWeeklyContriller {
 @Autowired 
 @Qualifier("weeklyNotesService") //注释指定注入
 private WeeklyNotesService weeklyNotesService;
 @Autowired 
 @Qualifier("paramConfService") //注释指定注入
 private ParamConfService paramConfService ;
 @Autowired 
 @Qualifier("sysUserService") //注释指定注入
 private SysUserService sysUserService ;
 
 /** 任务管理层 */
 @Autowired 
 @Qualifier("topicManageService") //注释指定注入
 private TopicManageService topicManageService ;
 
 private WeeklyNotes weeklyNotes;
 private SysUser sysUser ;
 
 @SuppressWarnings("unchecked")
 @RequestMapping(params="createWeeklyNotes")    ----请求该方法的路径
 public ModelAndView  createWeeklyNotes(HttpServletRequest request,HttpServletResponse response){
  String redirectUrl=null;
  String url = null ;
  
  try {
   response.setContentType("application/json;charset=utf-8");----设置响应类型
   response.setCharacterEncoding("UTF-8");                          ----设置响应编码
   request.setCharacterEncoding("UTF-8");                             ----设置请求编码
   
   String info = null ;
   String openId = null;
   ModelAndView ma=new ModelAndView();
   
   // 周记内容
   String summaryWeek = request.getParameter("summaryWeek");
   openId = request.getParameter("openId");
   String weeklyCount = request.getParameter("weeklyCount");
   if(summaryWeek.equals("")){
    redirectUrl="redirect:/upwk.do?sendWeeklyNotes&openId="+openId+"&weeklyCount="+weeklyCount;
   }else{
    weeklyNotes = new WeeklyNotes();
    weeklyNotes.setSummaryWeek(summaryWeek);
    
    Map queryMap = new HashMap();
    queryMap.put("start", 0);
    queryMap.put("end", 100);
    /** 根据openId获得用户id sysUserId */
    sysUser = new SysUser();
    
    if(openId!=null ){
     sysUser.setOpenId(openId);
     sysUser = sysUserService.getUserIdByOpenId(sysUser);
    }
    if(sysUser.getSysUserId()!=null||!"".equals(sysUser.getSysUserId())){
     queryMap.put("userId", sysUser.getSysUserId());
    }
    
    weeklyNotes.setWeekUserId(sysUser.getSysUserId());// 用户id
    
    List<ParamConf> pc = paramConfService.getPlanNameList(queryMap);
    if(pc.size()>0){
     weeklyNotes.setPlanId(pc.get(0).getPlanId());
     weeklyNotes.setPlanStartDate(pc.get(0).getStartDate());
    }
    weeklyNotes.setWeekCount(Long.parseLong(weeklyCount));
    weeklyNotes.setWeekUserId(sysUser.getSysUserId());
    weeklyNotesService.insertWeeklyNotes(weeklyNotes);
    // 根据学生id获得指导老师id
    Map map = new HashMap();
    map.put("studentId", sysUser.getSysUserId());
    List guidelist = topicManageService.getGuideInfoByStudent(map);
    Long guidesId = null ;
    for(int i = 0; guidelist!= null && i < guidelist.size(); i++){
     Map tempMap = (HashMap)guidelist.get(i);
     guidesId = Long.parseLong(tempMap.get("IGUIDE_THR_ID").toString())  ;
    }
    if(guidesId!=null){
     // 创建任务
     topicManageService.createTaskByUser("/vsm/zul/weeklyNotes/teacherAuditWeeklyNotesWindow.zul", sysUser.getSysUserId() , guidesId, weeklyNotes.getWeeklyNotesId());
    }
    redirectUrl="redirect: /upwk.do?getPageWeeklyNotes&openId="+openId;----请求本类upwk.dogetPageWeeklyNotes方法并传递参数openId
   }
  } catch (Exception e) {
   e.printStackTrace();
  }
  
  return new ModelAndView(redirectUrl) ;  ---通过模型视图传递数据
 }

 

  /**
  * 周记查看列表
  */
 @SuppressWarnings("unchecked")
 @RequestMapping(params="getPageWeeklyNotes")  ----请求该方法的路径
 public String getPageWeeklyNotes(HttpServletRequest request,HttpServletResponse response){
  List<WeeklyNotes> list = null ;
  String redirectUrl=null;
  try {
   response.setContentType("application/json;charset=utf-8");
   response.setCharacterEncoding("UTF-8");
   request.setCharacterEncoding("UTF-8");
   
   String openId=request.getParameter("openId");
   Map queryMap = new HashMap();
   queryMap.put("start", "0");
   queryMap.put("end", "100");
   /** 根据openId获得用户id sysUserId */
   sysUser = new SysUser();
   if(openId!=null ){
    sysUser.setOpenId(openId);
    sysUser = sysUserService.getUserIdByOpenId(sysUser);
   }
   if(sysUser!=null){
    if(sysUser.getSysUserId()!=null||!"".equals(sysUser.getSysUserId())){
     queryMap.put("userId", sysUser.getSysUserId());
    }
   }
   
   list = weeklyNotesService.getWeeklyNotesPage(queryMap);
   System.out.println(list.size());
   request.setAttribute("list",list);
   
   redirectUrl= "viewWeekly.jsp?openId="+openId; ----请求viewWeekly.jsp页面并传递参数openId
  } catch (Exception e) {
   e.printStackTrace();
  }
  return redirectUrl; ---通过request传递数据
 }

 

 

 

分享到:
评论

相关推荐

    SpringMVC-Mybatis-Shiro-redis

    《SpringMVC-Mybatis-Shiro-Redis:构建安全高效的Web应用》 在现代Web开发中,构建一个高效且安全的后端系统是至关重要的。本文将深入探讨一个基于SpringMVC、Mybatis、Shiro和Redis的Web应用架构,这四个组件共同...

    SpringMVC-Mybatis-Shiro-redis-master

    **SpringMVC** 是Spring框架的一个模块,专门用于构建Web应用程序。它提供了模型-视图-控制器(MVC)架构模式,使得开发者可以将业务逻辑、数据展示和用户交互分离,提高代码的可维护性和可测试性。SpringMVC通过...

    SpringMVC-Activiti5.16-Shiro-EasyUI项目整合

    首先,SpringMVC作为Spring框架的一部分,是用于构建Web应用的模型-视图-控制器(MVC)架构。它提供了强大的依赖注入(DI)和面向切面编程(AOP)功能,使得开发者能够更专注于业务逻辑,而不是繁琐的底层代码。...

    swagger-springmvc-1.0.2

    这个版本的Swagger整合了SpringMVC框架,使得开发者能够更加便捷地在Spring应用中实现API的自动生成和管理。以下是关于Swagger SpringMVC 1.0.2的详细知识点: 1. **Swagger介绍**:Swagger是一个规范和完整的框架...

    SpringMVC-Activiti5.16-Shiro-EasyUI.zip

    这个压缩包文件“SpringMVC-Activiti5.16-Shiro-EasyUI.zip”显然包含了使用这些技术构建的一个完整或部分的应用系统。让我们详细探讨一下每个组件及其在实际开发中的应用。 **1. SpringMVC** SpringMVC是Spring...

    easyUI-springmvc-tree-demo

    EasyUI的Tree组件与SpringMVC的结合,为Web应用提供了强大且灵活的树形数据展示与操作功能。通过理解它们的工作原理,开发者可以轻松实现前后端的数据交互,提高应用程序的用户体验。在实际项目中,应根据具体需求对...

    springmvc-mybatis 整合druid多数据源配置读写实现读写分离,windows上mysql主从复制

    在IT行业中,数据库的读写分离是提升系统性能和稳定性的重要策略之一,特别是在高并发的Web应用中。SpringMVC和MyBatis是常见的Java Web开发框架,而Druid则是一个优秀的数据库连接池组件,提供了丰富的监控和扩展...

    springmvc-base-input-02.rar

    Spring MVC 是一个基于 Java 的轻量级 Web 开发框架,它是 Spring 框架的一部分,主要用于构建 MVC(Model-View-Controller)模式的 Web 应用程序。在 "springmvc-base-input-02" 这个项目中,我们很可能会看到如何...

    Spring-SpringMvc-Mybatis

    在Java开发领域,Spring、SpringMVC和Mybatis是三大核心框架,它们的组合应用能够构建出强大的企业级Web应用。本文将深入探讨这三个框架的集成配置以及权限管理的实现,帮助开发者提升对Java基本开发方法的理解。 ...

    maven-springmvc-mybatis-memcached

    【描述】"maven-springmvc-mybatis -memcached"描述了一个使用Maven构建工具、SpringMVC作为前端控制器、MyBatis作为持久层框架,并结合Memcached作为缓存服务的Web应用开发环境。这个项目旨在展示如何将这些组件...

    springmvc-high-other-05.rar

    《SpringMVC高级应用探索——其他重要特性》 在Java Web开发领域,SpringMVC作为Spring框架的一部分,因其强大的功能和灵活的配置,已经成为构建Web应用程序的首选框架之一。本资料"springmvc-high-other-05.rar...

    SpringMVC-Mybatis-Shiro-redis-0.2_baichengzhou.tar.gz

    在现代Web开发中,SpringMVC、Mybatis、Shiro以及Redis等技术是构建高效、安全、可扩展的Web应用的重要组件。本文将深入探讨这些技术的集成与应用,以"SpringMVC-Mybatis-Shiro-redis-0.2_baichengzhou"项目为例,...

    springmvc-helloworld

    SpringMVC 是 Spring 框架的一个模块,专为构建基于 Java 的 Web 应用程序提供模型-视图-控制器(MVC)架构。它简化了开发过程,提供了强大的依赖注入、数据验证、国际化等功能。本教程将通过 "springmvc-helloworld...

    springMVC-3.0-file-upload.rar_SpringMVC3.0-api _springmvc_spring

    "springMVC-3.0-file-upload.rar" 包含了一个示例,展示了如何在Spring MVC应用中集成文件上传功能,这个例子的描述表明它是基于注解驱动的,这意味着我们将使用如`@Controller`、`@RequestMapping`等注解来定义控制...

    springmvc-mongodb-maven结合

    在IT行业中,SpringMVC、MongoDB和Maven是三个非常关键的技术组件,它们分别用于构建Web应用程序、处理非关系型数据库以及管理项目的依赖。在这个项目"springmvc-mongodb-maven结合"中,开发者整合了这三个工具来...

    springMVC-Hibernate-Oracle-master.zip

    【标题】"springMVC-Hibernate-Oracle-master.zip"是一个包含使用Spring MVC、Hibernate和Oracle数据库进行Web应用程序开发的示例项目的压缩包。这个项目旨在为开发者提供一个基础的参考框架,帮助他们理解和实践这...

    springmvc-maven-webapp-helloworld 源码

    这个项目展示了如何在IntelliJ IDEA(一个流行的Java集成开发环境)中配置和运行一个简单的SpringMVC应用。它包括了以下关键组件: 1. **SpringMVC**:SpringMVC作为控制器,负责接收HTTP请求,调用业务逻辑,并将...

    springmvc-jackson-jar包集合

    在现代Web应用开发中,数据交换往往以JSON格式为主,尤其是在前后端分离的设计模式下。Spring MVC作为Java领域的主流MVC框架,提供了一种优雅的方式来处理HTTP请求和响应。而Jackson库则是Java世界中用于JSON序列化...

    SpringMVC-demo - examples

    `SpringMVC` 是 `Spring` 框架的一个模块,专门用于处理Web应用程序的请求-响应模型。它为开发者提供了强大的、灵活的机制来构建现代Web应用程序。在 `SpringMVC-demo - examples` 这个项目中,我们可以通过一系列...

    springmvc-without-webxml.rar

    描述中的重复内容 "springmvc-without-webxmlspringmvc-without-webxml" 看起来像是一个输入错误,我们主要关注 "springmvc-without-webxml" 这个短语,它再次强调了这是一个不依赖`web.xml`的Spring MVC应用。...

Global site tag (gtag.js) - Google Analytics