请求---->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.do的getPageWeeklyNotes方法并传递参数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:构建安全高效的Web应用》 在现代Web开发中,构建一个高效且安全的后端系统是至关重要的。本文将深入探讨一个基于SpringMVC、Mybatis、Shiro和Redis的Web应用架构,这四个组件共同...
**SpringMVC** 是Spring框架的一个模块,专门用于构建Web应用程序。它提供了模型-视图-控制器(MVC)架构模式,使得开发者可以将业务逻辑、数据展示和用户交互分离,提高代码的可维护性和可测试性。SpringMVC通过...
首先,SpringMVC作为Spring框架的一部分,是用于构建Web应用的模型-视图-控制器(MVC)架构。它提供了强大的依赖注入(DI)和面向切面编程(AOP)功能,使得开发者能够更专注于业务逻辑,而不是繁琐的底层代码。...
这个版本的Swagger整合了SpringMVC框架,使得开发者能够更加便捷地在Spring应用中实现API的自动生成和管理。以下是关于Swagger SpringMVC 1.0.2的详细知识点: 1. **Swagger介绍**:Swagger是一个规范和完整的框架...
这个压缩包文件“SpringMVC-Activiti5.16-Shiro-EasyUI.zip”显然包含了使用这些技术构建的一个完整或部分的应用系统。让我们详细探讨一下每个组件及其在实际开发中的应用。 **1. SpringMVC** SpringMVC是Spring...
EasyUI的Tree组件与SpringMVC的结合,为Web应用提供了强大且灵活的树形数据展示与操作功能。通过理解它们的工作原理,开发者可以轻松实现前后端的数据交互,提高应用程序的用户体验。在实际项目中,应根据具体需求对...
在IT行业中,数据库的读写分离是提升系统性能和稳定性的重要策略之一,特别是在高并发的Web应用中。SpringMVC和MyBatis是常见的Java Web开发框架,而Druid则是一个优秀的数据库连接池组件,提供了丰富的监控和扩展...
Spring MVC 是一个基于 Java 的轻量级 Web 开发框架,它是 Spring 框架的一部分,主要用于构建 MVC(Model-View-Controller)模式的 Web 应用程序。在 "springmvc-base-input-02" 这个项目中,我们很可能会看到如何...
在Java开发领域,Spring、SpringMVC和Mybatis是三大核心框架,它们的组合应用能够构建出强大的企业级Web应用。本文将深入探讨这三个框架的集成配置以及权限管理的实现,帮助开发者提升对Java基本开发方法的理解。 ...
【描述】"maven-springmvc-mybatis -memcached"描述了一个使用Maven构建工具、SpringMVC作为前端控制器、MyBatis作为持久层框架,并结合Memcached作为缓存服务的Web应用开发环境。这个项目旨在展示如何将这些组件...
《SpringMVC高级应用探索——其他重要特性》 在Java Web开发领域,SpringMVC作为Spring框架的一部分,因其强大的功能和灵活的配置,已经成为构建Web应用程序的首选框架之一。本资料"springmvc-high-other-05.rar...
在现代Web开发中,SpringMVC、Mybatis、Shiro以及Redis等技术是构建高效、安全、可扩展的Web应用的重要组件。本文将深入探讨这些技术的集成与应用,以"SpringMVC-Mybatis-Shiro-redis-0.2_baichengzhou"项目为例,...
SpringMVC 是 Spring 框架的一个模块,专为构建基于 Java 的 Web 应用程序提供模型-视图-控制器(MVC)架构。它简化了开发过程,提供了强大的依赖注入、数据验证、国际化等功能。本教程将通过 "springmvc-helloworld...
"springMVC-3.0-file-upload.rar" 包含了一个示例,展示了如何在Spring MVC应用中集成文件上传功能,这个例子的描述表明它是基于注解驱动的,这意味着我们将使用如`@Controller`、`@RequestMapping`等注解来定义控制...
在IT行业中,SpringMVC、MongoDB和Maven是三个非常关键的技术组件,它们分别用于构建Web应用程序、处理非关系型数据库以及管理项目的依赖。在这个项目"springmvc-mongodb-maven结合"中,开发者整合了这三个工具来...
【标题】"springMVC-Hibernate-Oracle-master.zip"是一个包含使用Spring MVC、Hibernate和Oracle数据库进行Web应用程序开发的示例项目的压缩包。这个项目旨在为开发者提供一个基础的参考框架,帮助他们理解和实践这...
这个项目展示了如何在IntelliJ IDEA(一个流行的Java集成开发环境)中配置和运行一个简单的SpringMVC应用。它包括了以下关键组件: 1. **SpringMVC**:SpringMVC作为控制器,负责接收HTTP请求,调用业务逻辑,并将...
在现代Web应用开发中,数据交换往往以JSON格式为主,尤其是在前后端分离的设计模式下。Spring MVC作为Java领域的主流MVC框架,提供了一种优雅的方式来处理HTTP请求和响应。而Jackson库则是Java世界中用于JSON序列化...
`SpringMVC` 是 `Spring` 框架的一个模块,专门用于处理Web应用程序的请求-响应模型。它为开发者提供了强大的、灵活的机制来构建现代Web应用程序。在 `SpringMVC-demo - examples` 这个项目中,我们可以通过一系列...
描述中的重复内容 "springmvc-without-webxmlspringmvc-without-webxml" 看起来像是一个输入错误,我们主要关注 "springmvc-without-webxml" 这个短语,它再次强调了这是一个不依赖`web.xml`的Spring MVC应用。...