栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

springMVC第一天

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

springMVC第一天

servlet 回顾

package com.sophy.servlet;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class HelloServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //取得参数
        String method=req.getParameter("method");
        if (method.equals("add")){
            req.getSession().setAttribute("msg","执行了add方法");
        }
        if (method.equals("delete")){
            req.getSession().setAttribute("msg","执行了delete方法");
        }
        //2.调用业务

        //3.视图转发或者重定向
        req.getRequestDispatcher("/WEB-INF/jsp/test.jsp").forward(req,resp);


    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }
}

web.xml



    
        hello
        com.sophy.servlet.HelloServlet
    
    
        hello
        /hello
    

什么都不传,报空指针异常
http://localhost:8080/demo01_servlet_war_exploded/hello
传参
http://localhost:8080/demo01_servlet_war_exploded/hello?method=add

搭建一个springMVC项目
首先:在我们的这个项目下右击项目,选择new一个module然后选择maven项目
点击next
然后输入项目的名称,修改GroupId,点击Finish
在建好的项目下的pom.xml文件中修改打包方式为 war

在pom.xml文件里面添加需要的依赖包


        
        
            org.springframework
            spring-webmvc
            5.3.1
        
        
        
            ch.qos.logback
            logback-classic
            1.2.3
        
        
            javax.servlet
            javax.servlet-api
            3.1.0
            provided
            
        
        
        
            org.thymeleaf
            thymeleaf-spring5
            3.0.12.RELEASE
        
    

如图所示将web.xml的路径改为自己的src下的webapp

如我的srcmainwebapp

配置我们的web.xml

    
    
        SpringMVC
        org.springframework.web.servlet.DispatcherServlet

        
            contextConfigLocation
            classpath:springMVC.xml
        
        
        1
    
    
        SpringMVC
        /
        
    

用户发起请求的时候,会经过
DispatcherServlet 找到它的映射器 HanderMapping
经过HandleExecution 返回到 DispatcherServlet 在经过 HandlerAdapter
有具体的 Controller 执行之后会有具体的model and niew
再返回 DispatcherServlet 经过视图解析器 ViewResolver
再返回具体的视图
View

HelloController

public class HelloController implements Controller {
    @Override
    public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
        ModelAndView vw = new ModelAndView();
        //业务代码
        String result="HelloController";
        vw.addObject("msg",result);

        //视图跳转
        vw.setViewName("test");

        return vw;
    }
}

test,jsp

${msg}

springmvc-servlet.xml




    
    
    

    
    
        
        
        
        
    
    




    
    
        springmvc
        org.springframework.web.servlet.DispatcherServlet
        
        
        
            contextConfigLocation
            classpath:springmvc-servlet.xml
        
        
        1
    
    

    

    springmvc
    /



注意:
1.导入的依赖要确定被打包进项目

看使用手动注册和使用注解的区别:

手动注册:

package com.sophy.controller;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HelloController implements Controller {
    @Override
    public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
        ModelAndView vw = new ModelAndView();
        //业务代码
        String result="HelloController";
        vw.addObject("msg",result);

        //视图跳转
        vw.setViewName("test");

        return vw;
    }
}

web.xml



    
    
        springmvc
        org.springframework.web.servlet.DispatcherServlet
        
        
            contextConfigLocation
            classpath:springmvc-servlet.xml
        
        
        1
    

    

    
        springmvc
        /
    

springmvc-servlet.xml



    
    
    
    

    
    
        
        
        
        
    
    
    
    

使用注解:

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class HelloController {

    //localhost:8080/hello/h1
    @RequestMapping("h1")
    public String hello(Model model){
        //封装数据
        model.addAttribute("msg","Hello,SpringMVCAnnotation!");
        return "hello";//会被视图解析器处理
    }
}

web.xml



  
  
    springmvc
    org.springframework.web.servlet.DispatcherServlet
    

    
      contextConfigLocation
      classpath:springmvc-servlet.xml
    
    
    1
  


  
  
    springmvc
    /
  

springmvc-servlet.xml



    
    
    
    

    
    
    
    
        
        
        
        
    

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/750104.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号