开发基于springMVC的web应用

本文详细介绍使用Spring MVC框架及注解开发Web应用的过程,包括配置DispatcherServlet、编写控制器类、处理请求参数以及向页面传递数据等核心步骤。

使用注解来开发基于springMVCweb应用

编程步骤:

Step1:导包

Step2:添加spring的配置文件
step3:配置DispatcherServlet(他是一个Servlet,所以在web.xml如下配置)

<servlet>

<servlet-name>springmvc</servlet-name>

<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

<init-param>

<param-name>contextConfigLocation</param-name>

<param-value>classpath:springmvc.xml</param-value>

</init-param>

<load-on-startup>1</load-on-startup>

</servlet>

 

<servlet-mapping>

<servlet-name>springmvc</servlet-name>

<url-pattern>*.do</url-pattern>

</servlet-mapping>

Step4:写controller

/*

 * 如何写一个处理器

 * 1:不用实现一个Controller接口

 * 2:可以在处理器类当中,添加多个方法

 * 每个方法处理一组类型的请求

 * 3:方法名不做要求,返回类型可以是ModelAndView

 * 也可以是String类型(只有视图名)

 * 4:使用@Controller注解,将该处理器纳入容器进行管理

 * 5:使用@RequestMapping,告诉前端控制器(DispatcherServlet

 * 请求路径与处理器的方法的对应关系(spring不用配置HandlerMapping了)

 * */

@Controller

public class HellController{

 

@RequestMapping("/hello.do")

public String hello(){

System.out.println("hello()");

return "hello";

}

}

 

Step5:写JSP文件

Step6:配置spring.xml文件如下

<!-- 配置组件扫描 -->

<context:component-scan base-package="controller"></context:component-scan>

<!-- 配置MVC注解扫描 -->

<mvc:annotation-driven></mvc:annotation-driven>

<!-- 配置视图解析器 -->

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">

<property name="prefix" value="/WEB-INF/"></property>

<property name="suffix" value=".jsp"></property>

</bean>

 

 

读取请求参数

Jsp 页面:

 

(1)第一种方式:通过请求对象(request)来读取:

@RequestMapping("/login.do")

public String login1(HttpServletRequest request){

System.out.println("login1()");

String adminCode=request.getParameter("adminCode");

String pwd=request.getParameter("pwd");

 

request对象作为方法的参数传入即可


2)第二种方式:使用@RequestParam注解

//读取请求参数的第二种方式,

使用@RequestParam添加到方法的形参前面

当传入的参数和实际参数不一致时,使用@RequestParam注解

即使一样,也要使用@RequestParam注解(Java反射机制缺陷,形参的的信息可能读不出来

@RequestMapping("/login2.do")

public String login2(String adminCode,

@RequestParam("pwd") String password){}

(3)第三种方式:使用Javabean封装请求参数值(***

Step1:写一个Java类,
实现get/set方法

在有@controller注解的类的方法里传入实现了get/set方法的类型

在注解的类的方法里可以使用 .getXXX(bean属性)方法获取

AdminParam(一个实体类)

@RequestMapping("/login3.do")

public String login3(AdminParam ap){

System.out.println("login3()");

System.out.println("adminCode:"+ap.getAdminCode());

System.out.println("pwd:"+ap.getPwd());

return "index";

}

 

向页面传值

(1)将数据绑定到request,然后转发到某个JSP
spring默认使用转发

 

//向页面传值得第一种方式

@RequestMapping("/login4.do")

private String login4(AdminParam ap,

HttpServletRequest request) {

System.out.println("login4()");

String adminCode=ap.getAdminCode();

System.out.println(adminCode);

//将数据绑定到请求对象request,springmvc默认转发到index.jsp

request.setAttribute("adminCode", adminCode);

return  "index";

 

(2)使用ModelAndView

(将数据项封装到ModelAndView对象里面,然后将对象作为方法的返回值)

//向页面传值第二种方式,ModelAndView对象

@RequestMapping("/login5.do")

public ModelAndView login5(AdminParam ap){

System.out.println("login5()");

String adminCode=ap.getAdminCode();

System.out.println(adminCode);

Map<String, Object> data=new HashMap<String, Object>();

//相对于request.setAttribute("adminCode",adminCode)

data.put("adminCode", adminCode);

//构造ModelAndView对象

ModelAndView mav=new ModelAndView("index",data);

return mav;

 

(3)使用ModelMap(****)

(将该对象作为方法的参数,然后将数据绑定到该对象)

向页面传参第三种方式

//向页面传值的第三种方式

//使用ModelMap对象

//相对于request.setAttribute...

@RequestMapping("/login6.do")

public String login6(AdminParam ap,

ModelMap mm){

System.out.println("login6()");

String adminCode=ap.getAdminCode();

System.out.println(adminCode);

mm.addAttribute("adminCode", adminCode);

return "index";

}

 

使用session:(重定向情况下使用)

一般情况使用生命周期短的(request..)

 

 

 

 

 

重定向:返回值是一个String

如果方法的返回值时String

在重定向地址前添加“redirect”

Return “redirect:toIndex.do”

//重定向

@RequestMapping("/login8.do")

public String login8(){

System.out.println("login8()");

return "redirect:toIndex.do";

}

@RequestMapping("/toIndex.do")

public String toIndex(){

System.out.println("toIndex()");

return "index";

}
如果方法的返回值是ModelAndView

@RequestMapping("/toIndex.do")

public String toIndex(){

System.out.println("toIndex()");

return "index";

}

//重定向返回值是一个ModelAndView

@RequestMapping

public ModelAndView login9(){

System.out.println("login9()");

RedirectView rv=new RedirectView("toIndex.do");

return new ModelAndView(rv);

}

 

 

表单提交数据,记得添加name****

 

尽量不要在set/get 方法里面试图做判断,

可以在获取值后再加判断!(应该是与bean属性有关,猜的)

1.0.5 从web项目迁移成maven项目 1.0.6 增加菜单框架ext实现,类路径调整 1.0.7 增加http工具类,demo例子 1.0.8 socket工具类,权限组件,菜单组件,jdbc分页支持多种数据库,ant路径工具类,增加jquery easyUI 1.0.9 版本管理,服务根路径工具类,文件上传工具类 1.0.10 集成ueditor在线编辑器 1.0.11 地址联动 1.0.12 Excel工具类 Word工具类 Java NIO实现socket工具类 分布式session jdk升级到1.7 嵌入式redis服务(只支持linux) 1.0.13 修改默认的beanName生成策略,controller参数扩展 1.0.14 分布式session使用zookeeper 1.0.15 zookeeper工具类优化 增加工具类 1.0.16 页面html标志修改 httpclient中文支持 工具类增强(zip,reflect,thread) 1.0.17 ftp服务端和客户端工具类,配置文件maven和web项目路径统一 1.1.0 soapui工具类(web版本) properties等工具类 1.1.1 工具类数据校验 jsp自定义标签 Spring自定义注解 默认requestMapping 1.1.2 代码生成器 1.1.3 首页修改 dateformat.js 时间参数转换 SpringMVC配置文件集中 快递参数接口 1.1.4 des加解密字符串和文件 1.1.5 redis 加锁,redis升级成2.8.2 freemarker工具类 1.1.6 spring websocket 实现在线聊天 maven升级jdk1.8 jetty9.2.4 web升级jdk1.7 tomcat7 1.1.7(maven only) 包名修改 从此不再支持web版本,只支持maven版本 1.1.8 jquery 图片预览插件 图片滚动显示插件 1.1.9 jquery实现鼠标在按钮上显示窗口,离开窗口和按钮时消失 1.1.10 rabbitMQ集成 视频截图 图片缩略图旋转 集成Mybatis 使用数据库连接池druid dubbo使用
# demoWeb 一个基于SpringMVCweb框架 1.0.5 从web项目迁移成maven项目 1.0.6 增加菜单框架ext实现,类路径调整 1.0.7 增加http工具类,demo例子 1.0.8 socket工具类,权限组件,菜单组件,jdbc分页支持多种数据库,ant路径工具类,增加jquery easyUI 1.0.9 版本管理,服务根路径工具类,文件上传工具类 1.0.10 集成ueditor在线编辑器 1.0.11 地址联动 1.0.12 Excel工具类 Word工具类 Java NIO实现socket工具类 分布式session jdk升级到1.7 嵌入式redis服务(只支持linux) 1.0.13 修改默认的beanName生成策略,controller参数扩展 1.0.14 分布式session使用zookeeper 1.0.15 zookeeper工具类优化 增加工具类 1.0.16 页面html标志修改 httpclient中文支持 工具类增强(zip,reflect,thread) 1.0.17 ftp服务端和客户端工具类,配置文件maven和web项目路径统一 1.1.0 soapui工具类(web版本) properties等工具类 1.1.1 工具类数据校验 jsp自定义标签 Spring自定义注解 默认requestMapping 1.1.2 代码生成器 1.1.3 首页修改 dateformat.js 时间参数转换 SpringMVC配置文件集中 快递参数接口 1.1.4 des加解密字符串和文件 1.1.5 redis 加锁,redis升级成2.8.2 freemarker工具类 1.1.6 spring websocket 实现在线聊天 maven升级jdk1.8 jetty9.2.4 web升级jdk1.7 tomcat7 1.1.7(maven only) 包名修改 从此不再支持web版本,只支持maven版本 1.1.8 jquery 图片预览插件 图片滚动显示插件 1.1.9 jquery实现鼠标在按钮上显示窗口,离开窗口和按钮时消失 1.1.10 rabbitMQ集成 视频截图 图片缩略图旋转 集成Mybatis 使用数据库连接池druid dubbo使用 1.1.11 集成Spring Cache,FastJson Spring Cache增加redis缓存实现 Mybatis使用二级缓存,增加redis实现 增加reactJs 增加Mybatis插件pageHelper,Mapper 1.1.12 使用draft富文本编辑器 增加ant design 代码生成器功能增强
# demoWeb 一个基于SpringMVCweb框架 1.0.5 从web项目迁移成maven项目 1.0.6 增加菜单框架ext实现,类路径调整 1.0.7 增加http工具类,demo例子 1.0.8 socket工具类,权限组件,菜单组件,jdbc分页支持多种数据库,ant路径工具类,增加jquery easyUI 1.0.9 版本管理,服务根路径工具类,文件上传工具类 1.0.10 集成ueditor在线编辑器 1.0.11 地址联动 1.0.12 Excel工具类 Word工具类 Java NIO实现socket工具类 分布式session jdk升级到1.7 嵌入式redis服务(只支持linux) 1.0.13 修改默认的beanName生成策略,controller参数扩展 1.0.14 分布式session使用zookeeper 1.0.15 zookeeper工具类优化 增加工具类 1.0.16 页面html标志修改 httpclient中文支持 工具类增强(zip,reflect,thread) 1.0.17 ftp服务端和客户端工具类,配置文件maven和web项目路径统一 1.1.0 soapui工具类(web版本) properties等工具类 1.1.1 工具类数据校验 jsp自定义标签 Spring自定义注解 默认requestMapping 1.1.2 代码生成器 1.1.3 首页修改 dateformat.js 时间参数转换 SpringMVC配置文件集中 快递参数接口 1.1.4 des加解密字符串和文件 1.1.5 redis 加锁,redis升级成2.8.2 freemarker工具类 1.1.6 spring websocket 实现在线聊天 maven升级jdk1.8 jetty9.2.4 web升级jdk1.7 tomcat7 1.1.7(maven only) 包名修改 从此不再支持web版本,只支持maven版本 1.1.8 jquery 图片预览插件 图片滚动显示插件 1.1.9 jquery实现鼠标在按钮上显示窗口,离开窗口和按钮时消失 1.1.10 rabbitMQ集成 视频截图 图片缩略图旋转 集成Mybatis 使用数据库连接池druid dubbo使用 1.1.11 集成Spring Cache,FastJson Spring Cache增加redis缓存实现 Mybatis使用二级缓存,增加redis实现 增加reactJs 增加Mybatis插件pageHelper,Mapper 1.1.12 使用draft富文本编辑器 增加ant design 代码生成器功能增强
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值