qidao123.com技术社区-IT企服评测·应用市场
标题:
SpringMVC
[打印本页]
作者:
勿忘初心做自己
时间:
2025-3-12 22:11
标题:
SpringMVC
SpringMVC
1. 初识SrpingMVC
ssm:spring+springmvc+mybatis
MVC三层架构
Spring:IOC 和 AOP
SpringMVC:SpringMVC的实行流程!
MVC:模型(dao,service),视图(jsp),控制器(Servlet)
pojo:实体类,如User
vo:视图层的对象实体类,如UserVo
dto:数据传输的时候的对象实体类,如UserDto
SpringMVC特点:
轻量级,简单易学
高效,基于哀求响应的MVC框架
与Spring兼容性好,无缝结合
约定优于设置
功能强大:RESTful,数据验证,格式化,当地化,主题等
简洁机动
Spring的web框架围绕DispatcherServlet设计。DispatcherServlet的作用是将哀求分发到不同的处理器。从Spring2.5开始,利用java5或以上版本的用户可以接纳注解的controller声明方式
快速入门:
在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-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
复制代码
新建一个设置文件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:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/aop
https://www.springframework.org/schema/aop/spring-aop.xsd">
<bean />
<bean />
<bean id="InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
</beans>
复制代码
写一个Controller类
public class HelloController implements Controller {
public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
//ModelAndView 模型和视图
ModelAndView mv = new ModelAndView();
// 封装对象,放在ModelAndView中
mv.addObject("msg","HelloSpringMVC!");
// 封装要跳转的视图,放在ModelAndView中
mv.setViewName("hello");
return mv;
}
}
复制代码
编辑设置文件spring-mvc.xml,将Controller类放入IOC中
[/code]
[*]编写jsp页面
[code]<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
${pageContext.request.getAttribute("msg")}
</body>
</html>
复制代码
大概遇到的问题:访问出现404,排查步调:
查看控制台输出,看一下是不是缺少了什么jar包
如果jar包存在,显示无法输出,就在IDEA项目结构中,添加lib依靠
重启tomcat,即可解决
2. SpringMVC实行原理
实际开发中,我们不会这么去做,我们一般通过注解来实现!!
3. 利用注解实现SpringMVC
在web.xml设置
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<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>/</url-pattern>
</servlet-mapping>
</web-app>
复制代码
在springmvc.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/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
https://www.springframework.org/schema/mvc/spring-mvc.xsd">
<context:component-scan base-package="cn.codewei.controller"/>
<mvc:default-servlet-handler/>
<mvc:annotation-driven/>
<bean >
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
</beans>
复制代码
在视图剖析器中我们把所有视图都存放在/WEB-INF/目录下,这样可以保证视图安全,由于这个目录下的文件,客户端不能直接访问
编写一个Controller类
@Controller //代表这个类会被springIOC托管,被这个注解的类中的所有方法,如果返回值是String,并且由具体的页面可以跳转,那么就会被视图解析器解析
@RequestMapping("/hello")
public class HelloController {
@RequestMapping("/controllerhello")
public String Controllerhello(Model model){
// 封装数据
model.addAttribute("msg","HelloSrpingMVC!");
return "hello"; // 被视图解析器处理
}
}
复制代码
SpringMVC必须设置的三大件:
处理器映射器,处理器适配器,视图剖析器
实现接口Controller定义控制器是较老的办法
缺点是:一个控制器只有一个方法,如果要多个方法则需要定义多个Controller
@Component 组件
@Service serivce层
@Controller controller层
@Repository dao层
复制代码
4. RestFul风格
RestFul就是一个资源定位及资源操纵的风格,不是标准也不是协议,只是一种风格
利用RestFul操纵资源:可以通过不同的哀求方式来实现不同的结果!
如下:哀求地址一样,但是功能大概不同
http://127.0.0.1/item/1
查询,GET
http://127.0.0.1/item
新增,POST
http://127.0.0.1/item
更新,PUT
http://127.0.0.1/item/1
删除,DELETE
原来的:
http://localhost:8080/add?a=2&b=3
RestFul:
http://http
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 qidao123.com技术社区-IT企服评测·应用市场 (https://dis.qidao123.com/)
Powered by Discuz! X3.4