SpringMVC框架(一)
2024-09-12 10:27:03
SpringMVC最核心:DispatcherServlet
SpringMVC环境搭建:
结构:
过程:
1.导包
2.声明SpringMVC核心Servlet:org.springframework.web.servlet.DispatcherServlet
声明Spring配置文件的路径:
1.可以自己声明
2.默认值:/WEB-INF/springDispatcherServlet-servlet.xml
3.新建Spring配置文件
(注解方式)
1.扫描器:<context:component-scan base-package="com.maya"></context:component-scan>
2.配置视图解析器,设置前缀后缀
3.开启SpringMVC注解驱动:<mvc:annotation-driven></mvc:annotation-driven>
4.编写控制器类,声明方法
5.运行页面
代码:
web.xml:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>test_easyui2</display-name> <!-- The front controller of this Spring Web application, responsible for handling all application requests --> <servlet> <servlet-name>springDispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- 初始化参数,如果不写有默认值,/WEB-INF/springDispatcherServlet-servlet.xml --> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring-mvc.xml</param-value> </init-param> <!-- 值大于0时,启动服务器时加载,数字越小,优先级越高 --> <load-on-startup>1</load-on-startup> </servlet> <!-- Map all requests to the DispatcherServlet for handling --> <servlet-mapping> <servlet-name>springDispatcherServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
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:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd"> <!-- <bean id="/helloworld" class="com.maya.controller.HelloWorldController"></bean> spring2.5之前的配置方式 将SpringBean的名字作为映射路径的请求 <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean> 处理适配器,将请求映射给conntroller类 <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"></bean> 视图解析器 <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"></bean> --> <!-- 注解方式 --> <!-- 扫描器 --> <context:component-scan base-package="com.maya"></context:component-scan> <!-- 视图解析器 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/page/"></property> <property name="suffix" value=".jsp"></property> </bean> <!-- 开启springmvc注解驱动 --> <mvc:annotation-driven></mvc:annotation-driven> </beans>
两种处理方式类:
package com.maya.controller; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.Controller; //只能处理单一请求 public class HelloWorldController implements Controller { @Override public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception { ModelAndView mav=new ModelAndView(); mav.setViewName("page/success.jsp"); mav.addObject("message","测试,属性message"); //以上方法等同于request.setAttribute(arg0, arg1); return mav; } }
注解方式:
package com.maya.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; @Controller public class TestController { @RequestMapping("/testHelloWorld") public ModelAndView testHelloWorld(){ ModelAndView mav=new ModelAndView(); mav.addObject("msg", "测试属性msg"); mav.setViewName("success"); return mav; } }
jsp页面:
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Insert title here</title> </head> <body> <div> <span>spring 2.5 之前</span> <a href="helloworld">传送门</a> </div> <div> <span>基于注解</span> <a href="testHelloWorld">传送门2</a> </div> </body> </html>
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Insert title here</title> </head> <body> <h1>成功!!!</h1> ${message } ${msg } </body> </html>
常用注解:
@Controller 声明控制器类
@RequestMapping 声明映射的请求
@RequestParam 参数绑定
@PathVariable 绑定路径参数
@ResponseBody 将方法的返回值直接返回
@SessionAttribute 将指定的对象放到session
@ModelAttribute
最新文章
- 解决:ERROR: Cannot launch Jack server
- RealSense开发-搭建C#开发环境
- POJ 2001 字典树(入门题)
- How to compile pycrypto 2.4.1 (python 3.2.2 for Windows 7 x64)
- Purchase Document Open Interface(PDOI)
- web前端知识体系小结(转)
- PHP中的表单提交和获取
- OpenStack-Storage(6)
- Centos6.8实现SVN提交后自动更新目录
- 【个人阅读】M1/M2阶段总结
- greendao引起的NoClassDefFoundError异常解决
- python记录_day02 while循环 格式化 基本运算符
- 在没有go-pear.bat的php中安装pear
- Python 编程技巧
- 1.keras实现-->;使用预训练的卷积神经网络(VGG16)
- sublime text ubuntu
- DDD CQRS和Event Sourcing的案例:足球比赛
- 返回参数去掉xml格式,以纯json格式返回(转)
- C#获取农历的日期(转)
- spring 注入属性