请求---->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传递数据
}
相关推荐
spring_3.0_应用springmvc_构造RESTful_URL_详细讲解
1. 内附整理的详细的 dubbo-springmvc-zookpper集成配置详解 2. dubbo-admin 服务管理后台的 war 应用
云借阅图书管理系统:全部源码打包。含有数据库sql文件,简单报告书介绍,通过课设验收。 架构: 持久对象层(持久层或持久化层):该层由若干持久化类(实体类)组成。 数据访问层(DAO层):该层由若干DAO接口和...
springmvc框架能用到的一些jar包,集中整理在一起,能用到的话就再好不过,有缺的话还要各位在实际应用中自己补充了
为Spring 3.x企业应用开发实战[完整版+书签].pdf一书第二章的例子新自实践了一下。
本项目是基于springmvc+hibernate4的框架。
Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的SpringMVC框架或集成其他MVC开发框架,如Struts1(现在一般不用),...
springmvc-tomcat-spike Spike找出使用嵌入式Tomcat运行Spring MVC应用程序所需的条件,该应用程序仅使用代码和注释(没有XML文件)进行配置。 启动后,您应该可以访问并查看“ Hello World”。 可以使用PORT环境...
springmvc+spirng 集成配置(含源码)。解压可直接部署到tomcat等服务运行
Base4J应用于SpringMVC,Mybatis,Redis缓存,Dubbo,ActiveMQ,面向模块分布式基础SpringSession统一管理session,Druid数据库连接等等
Spring是一个开放源代码的设计层面框架,他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用。Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson创建。简单...
第一个Spring-SpringMVC-Mybatis项目记录 基本功能点有: 分页 数据校验jquery初步验证+ JSR303初步验证 阿贾克斯 Rest风格的URI,即使用HTTP协议请求方式的动词,来表示对资源的操作 技术点: 基础框架-ssm...
模板 - 嵌入式 Jetty/SpringMVC/JSP 应用程序概括这是一个独立的基于 Spring 的 Java 应用程序,它嵌入了 Jetty 并使用 SpringMVC 作为其 Web 层。 Spring Security 用于身份验证。 它是一个模板,用于演示将 Jetty ...
基于SSM技术实现的学生成绩管理的增删查改,web前端设有增删查改页面,数据库设有学生信息表、学生成绩表和管理员表,管理员登陆系统,内设级联查询和模糊查询,我的博客中有对整体框架的描述以及数据库的建立,欢迎...
音乐商城是一个在线平台,用于销售音乐作品...移动应用开发:包括iOS开发(使用Swift或Objective-C)和Android开发(使用Java或Kotlin)等。 大数据技术:包括Hadoop、Spark、Hive等用于处理和分析大规模数据集的技术。
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程,spring boot 给予html
如果插件用作构建的一部分,应用程序的代码将始终与 RAML 文档一致。 该插件旨在在已使用参数名称信息编译的 Java 8 代码上运行。 示例项目 包含使用装饰器模式的 SpringMVC 服务器实现以及基于 RestTemplate 的 ...
它是一个管理联系人的演示应用程序。 本示例中使用了以下功能: Spring MVC Portlet 动作和渲染映射依赖注入(使用@Inject) 表单绑定表单验证(Hibernate Validator)入门第 1 步:安装先决条件:安装(EXO_TOMCAT...
SpringMVC-DEVMEDIA的首次应用
使用 Java、Jetty、SpringMVC、Spock、Swagger 和 Heroku 进行 API 开发的模板项目 该项目的目的是为独立的 Java 应用程序提供模板: 用于 HTTP 支持的嵌入式码头容器, SpringMVC 用于轻松开发 REST API, ...