第三十八天学习java

本文详细介绍了如何在项目中整合SpringMVC,包括导包、web.xml配置、servlet映射、字符编码设置、spring-mvc.xml配置,以及参数接收与页面跳转的方法。同时概述了Controller的作用及其在MVC架构中的地位。
摘要由CSDN通过智能技术生成

总结

SpringMVC

使用springMVC步骤

  • 导包

    • 之前的spring基础包要导进来(四个核心包、日志包、还有springmvc2个包、servlet包、aop包和test包)

    • spring-webmvc-4.1.2.RELEASE.jar			--	SpringMVC核心包
      spring-web-4.1.2.RELEASE.jar 			--	Spring对Web项目项目的支持
      
  • 在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_3_1.xsd"
        version="3.1"
        metadata-complete="false">
        
        </web-app>
      
    • 配置核心控制器

      <!-- 配置核心控制器 -->
      	<servlet>
      		<servlet-name>dispatcherServlet</servlet-name>
      		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
      		<!-- tomcat对springmvc进行管理 -->
      		<init-param>
      			<param-name>contextConfigLocation</param-name>
      			<param-value>classpath:spring-mvc.xml</param-value>
      		</init-param>
      		<!-- 设置加载核心控制器在访问之前加载 1-3都有使用了-->
      		<load-on-startup>4</load-on-startup>
      	</servlet>
      
      	<servlet-mapping>
      		<servlet-name>dispatcherServlet</servlet-name>
      		<!-- 对所有进行拦截 -->
      		<url-pattern>/</url-pattern>
      	</servlet-mapping>
      
    • 添加过滤器对编码进行设置

      <!-- 添加过滤器对编码进行设置 -->
      	<filter>
      		<filter-name>filter</filter-name>
      		<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
      		<init-param>
      		<!-- 这个地方的encoding是指定的,不能改 -->
      			<param-name>encoding</param-name>
      			<param-value>utf-8</param-value>
      		</init-param>
      	</filter>
      	<filter-mapping>
      		<filter-name>filter</filter-name>
      		<!-- 对所有进行过滤 -->
      		<url-pattern>/*</url-pattern>
      	</filter-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: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
    http://www.springframework.org/schema/mvc/spring-mvc.xsd
    " >
    <!-- 释放静态资源 -->
    	<mvc:default-servlet-handler/>
    <!-- 扫描指定的包 -->
    	<context:component-scan base-package="cn.itsource"></context:component-scan>
    	<!-- 开启注解 -->
    	<mvc:annotation-driven></mvc:annotation-driven>
    	
    	<!-- 视图解析器 -->
    	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    		<property name="prefix" value="/jsp/"></property>
    		<property name="suffix" value=".jsp"></property>
    	</bean>
    </beans>
    

通过springMVC接收参数的方式

  • //把当前类交给spring管理
    @Controller
    @RequestMapping("/login")//可以通过这个访问这个类
    public class GetParam {
    

    类中的方法

    • 通过HttpServletRequest接收参数

      	@RequestMapping("/form1")
      	public void form1(HttpServletRequest request){
      
    • 通过普通参数接收,但是参数要对应

      	@RequestMapping("/form2")
      	public void form2(String name, String pwd){
      
    • 通过实体类接收参数

      	@RequestMapping("/form3")
      	public void form3(User user){
      
    • 获取地址中传入的id

      @RequestMapping("/form4/{id}")
      	public void form4(@PathVariable("id") long id){
      

springMVC设置参数并页面跳转

  • 通过HttpServletRequest存值跳转(设置了视图解析,所以是model2)

    	@RequestMapping("/form5")
    	public String form5(HttpServletRequest request){
    		request.setAttribute("message5", "采菊东篱下,悠然见南山");
    		return "model2";
    	}
    
  • 通过Model存值跳转

    @RequestMapping("/form6")
    	public String form6(Model model){
    		model.addAttribute("message6", "山气日夕佳,飞鸟相与还");
    		return "model2";
    	}
    
  • 通过ModelAndView存值跳转

    @RequestMapping("/form7")
    	public ModelAndView form7(ModelAndView model){
    		model.addObject("message7", "此中有真意,欲辨已忘言。");
    		model.setViewName("model2");
    		return model;
    	}
    

跳过视图解析器的方法

  • 请求转发

    "forward:/emp/list.jsp"
    
  • 重定向

    "redirect:http://www.baidu.com"
    

其他

  • Controller的作用是把当前的类交给Spring管理
  • 和他有相同效果的有Component(通用)、Repository(持久层)、Service(业务层)、Controller(控制层)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值