首页 > 编程语言 >javaWeb&springMVC

javaWeb&springMVC

时间:2023-11-06 17:48:11浏览次数:63  
标签:web javaWeb springMVC 路径 DispatcherServlet servlet 请求

Servlet

1:servlet定义

servlet是开发动态web的一门技术,通过servlet实现与用户的动态交互。

2:使用方式

(1)javaWeb中只需要继承HttpServlet接口,重写其中的doGet和doPost方法即可编写一个servlet;写好servlet程序后需要在web.xml文件中编写映射,相当于将我们缩写的servlet注册到web服务器中,这样当用户来访问时就能从web服务器中访问到对应的servlet;servlet映射需要先编写一个servlet,注册当前servlet对应我们所编写的哪个类,还需要编写一个servlet-mapping来匹配我们所注册的这个servlet的请求路径(请求路径可匹配多个,也可指定通用请求路径---明确指定的固有映射路径优先级高于通用请求路径)

<servlet>
    <servlet-name>自定义servlet的名字</servlet-name>
    <servlet-class>对应servlet的类路径</servlet-class>
</servlet>
<!--  一个servlet对应一个Mapping:映射-->
<servlet-mapping>
    <servlet-name>自定义servlet的名字</servlet-name>
    <!--    请求路径-->
    <url-pattern>/自定义请求路径</url-pattern>
</servlet-mapping>

(2)在javaWeb中,每编写一个servlet都需要去web.xml中进行注册,到springMVC阶段,DispatcherServlet简化了一一注册的操作。该阶段只需要在web.xml中注册一个通配的DispatcherServlet,并为其绑定一个spingMVC配置文件,将mapping路径设置为通配路径,之后每次有请求到web服务器都会经过DispatcherServlet。

此时,对于请求具体映射到哪个类进行处理的操作就转移到了DispatcherServlet绑定的spingMVC配置文件中。在配置文件中需要配置三个基础bean,如下所示,分别是,处理器映射器、处理器适配器、视图解析器。这三个bean完成了用户请求过来以后的请求路径匹配、映射、以及对后台返回数据进行解析。

大致流程是,处理器映射器首先需要先寻找是否有对应能处理用户请求的servlet,大家此时可能会好奇,那它怎么寻找呢?我们到目前位置并没有在任何位置声明每个servlet对应的请求路径!其实很简单,springMVC确实简化了一次又一次的servlet注册和mapping流程,但在配置文件中,需要以bean的形式配置每个controller类对应的请求路径,bean中只需指定id=“对应的请求路径”,class=“对应请求路径的controller类的路径”。对javaWeb熟悉的读者可能发现,之前javaWeb中每次匹配的都是一个继承了HttpServlet的servlet处理类,但此时确直接匹配的是controller类。没错!这就是javaWeb干的事情之一:将url直接映射到java类,而不需要继承HttpServlet类,在其中对请求进行处理。

当处理器映射器找到有处理该请求的java类时,通知DispatcherServlet,然后DispatcherServlet调用处理器适配器去处理调用对应的controller类去请求;

请求处理完成后会返回一个ModelAndView对象,该对象将请求处理后的数据进行了封装。此时又会发现,怎么多了一个之前没见过的请求返回模型???这就是JavaMVC干的第二件事!封装数据,将处理数据和操作页面进行了封装!既然多了一个封装对象,那返回后,要反馈给用户自然需要先对对象进行解析,再把结果展示给用户,此时该任务就交个了视图解析器负责。

以上就是springMVC阶段大致的请求处理流程,作者也是初学,记录一下~

<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>

<!--视图解析器:DispatcherServlet给他的ModelAndView-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="InternalResourceViewResolver">
    <!--前缀-->
    <property name="prefix" value="/WEB-INF/jsp/"/>
    <!--后缀-->
    <property name="suffix" value=".jsp"/>
</bean>

标签:web,javaWeb,springMVC,路径,DispatcherServlet,servlet,请求
From: https://www.cnblogs.com/zhang-xiao-bai-u/p/17813273.html

相关文章

  • SpringMVC 依赖
    <?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0ht......
  • 11、SpringMVC之文件下载和上传
    创建名为spring_mvc_file的新module,过程参考9.1节和9.5节11.1、文件下载11.1.1、创建图片目录并放置图片11.1.2、页面请求示例<ath:href="@{/test/down}">下载图片</a>11.1.3、控制器方法示例packageonline.liaojy.controller;importorg.springframework.http.Ht......
  • SpringMVC简介
    SpringMVC简介我们首先要了解MVC是什么MVC是一种软件架构的思想,将软件按照模型、视图、控制器来划分M:Model,模型层,指工程中的JavaBean,作用是处理数据JavaBean分为两类:一类称为实体类Bean:专门存储业务数据的,如Student、User等一类称为业务处理Bean:指Service或Dao对象,专门用......
  • Springmvc和mybatis和spring的整合
    一.springmvc工作原理springmvc常用的组件为SpingMVC的常用组件:1)DispatcherServlet是一种前端控制器,由框架提供。作用:统一处理请求和响应。除此之外还是整个流程控制的中心,由DispatcherServlet来调用其他组件,处理用户的请求2)HandlerMapping处理器映射器,由框架提供。作用:......
  • Springmvc的学习
    导入jar包编写配置文件(点击Namespaces添加context、mvc)springmvc.xml<?xmlversion="1.0"encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ......
  • 学习:javaweb-servlet
    1.在Idea中配置maven仓库,需要在idea中的setting设置maven的路径参数,包括maven的setting.xml和本地仓库的路径2.新建一个maven模板的javaweb项目,查看maven的配置setting.xml是否配置成功,成功的话可以下载模板所需要的一依赖包。3.查看projectStructure中的Modules项目中是否生成......
  • 10、SpringMVC之处理Ajax请求
    创建名为spring_mvc_ajax的新module,过程参考9.1节和9.5节10.1、SpringMVC处理Ajax请求10.1.1、页面请求示例<inputtype="button"value="测试SpringMVC处理Ajax请求"onclick="testAjax()"><scripttype="text/javascript">functiontestA......
  • javaweb--resultMap
    resultMap可以灵活的实现数据库列名和java类中的属性名的映射 1、定义<resultMap>标签2、在<select>标签中,使用resultMap属性替换resultType属性 ......
  • javaweb--Mapper代理开发
     1、使Mapper接口和SQL映射文件放置在同一文件夹下,可以在resources文件夹下新建一个和SQL映射文件相同的文件夹(例如:com/avb/Mapper)不能用.分割文件夹,用/ 2、把SQL映射表里的namespace属性为Mapper接口的全限定名 3、在Mapper中定义方法,方法名是SQL映射文件中sql语句的id,并......
  • javaweb--MyBatis
    持久层框架,用于简化JDBC开发负责将数据保存到数据库的那一层代码JavaEE三层架构:表现层、业务层、持久层免除了几乎所有JDBC代码及设置参数和获取结果集的工作。1、导入查询user表中所有的数据createDATABASEmybatis;usemybatis;droptableifexiststb_user;createtable......