SpringMVC 简单的开始

SpringMVC简单的开始

利用Spring模板配置写一个web项目。

1.核心配置文件(模板代码)

复制代码
<?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>
<!--        关联一个springmvc的配置文件-->
        <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>
    
<!--  /  匹配所有请求,不包括.jsp-->
<!--  /* 匹配所有请求,包括.jsp  -->
    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>
复制代码

 

2.spring配置文件

复制代码
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
                        http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
    <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
<!--    视图解析器-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="InternalResourceViewResolver">
<!--        前缀-->
        <property name="prefix" value="/WEB-INF/jsp/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
    <bean id="/h1" class="com.lian.HelloServlet"/>
</beans>
复制代码
 

3.写Servlet类HelloController

复制代码
public class HelloController implements Controller {
    @Override
    public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
        // ModelAndView模型和视图
        ModelAndView mv=new ModelAndView();
        //封装对象,放在 ModelAndView中
        mv.addObject("msg","HelloSpringMVC!!");
        //封装要跳转的视图,放在 ModelAndView中
        mv.setViewName("hello");///WEB-INF/jsp/hello.jsp
        return mv;
    }
}
复制代码

写这个例子的时候要跳转到 /h1 页面时候报404错误

查看了project Structure发现是项目的lib包没进来

 要保证项目需要的包都导入了

 执行原理分析:

1.用户发送请求request,被DispatcherServlet拦截,DispatcherServlet是前置控制器,DispatcherServlet通过关联一个springmvc的配置文件来处理请求;

2.在配置文件springmvc中加载处理器映射器BeanNameUrlHandlerMapping,这个处理器会自动适配拥有id的bean标签,执行结果返回给DispatcherServlet

3.DispatcherServlet加载处理器适配器SimpleControllerHandlerAdapter,这个适配器会找到bean标签的class属性对应的方法类所在位置,这个例子中是class=“com.lian.HelloController”,这个方法类就是我们说的Controller,里面是我们日常写的业务逻辑,将业务处理结果一步步返回,最终回到DispatcherServlet

4.DispatcherServlet调用视图解析器InternalResourceViewResolver,解析器将Controller里面要返回的jis文件的名字拿到,然后拼接成jsp页面的完整路径,解析器执行结束会返回一个view(是InternalResourceView类的实例)给DispatcherServlet

5.DispatcherServlet将拿到的view响应给前端页面

 

原理图:

 

posted on   醒醒起来  阅读(7)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示