11 spring integrated spring mvc

spring mvc Profile

spring integrated spring mvc

  • pom.xml introduced dependence
<dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>4.3.17.RELEASE</version>
</dependency>
  • Configuring web.xml

       CharacterEncodingFilter configure the character set filters for solving Chinese coding problem

 <filter>
        <filter-name>encodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
        <init-param>
            <param-name>forceEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
</filter>
<filter-mapping>
        <filter-name>encodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
</filter-mapping>

       Configuration of Spring DispatcherServlet Servlet distributor all HTTP requests and responses of

<servlet>
        <servlet-name>springServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath*:/spring-mvc*.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
        <servlet-name>springServlet</servlet-name>
        <url-pattern>/</url-pattern>
</servlet-mapping>
  • Configuring spring mvc

       Create a 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">

    <description>Spring MVC Configuration</description>

    <!-- 加载配置属性文件 -->
    <context:property-placeholder ignore-unresolvable="true" location="classpath:myshop.properties"/>

    <!-- 使用 Annotation 自动注册 Bean,只扫描 @Controller -->
    <context:component-scan base-package="com.example.my.shop" use-default-filters="false">
        <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    </context:component-scan>

    <!-- 默认的注解映射的支持 -->
    <mvc:annotation-driven />

    <!-- 定义视图文件解析 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="${web.view.prefix}"/>
        <property name="suffix" value="${web.view.suffix}"/>
    </bean>

    <!-- 静态资源映射 -->
    <mvc:resources mapping="/static/**" location="/static/" cache-period="31536000"/>
</beans>
  • Creating myshop.properties    system configuration
#============================#
#==== Framework settings ====#
#============================#

# \u89c6\u56fe\u6587\u4ef6\u5b58\u653e\u8def\u5f84
web.view.prefix=/WEB-INF/views/
web.view.suffix=.jsp
  • Create a static resource static folder put assets into them
  • Creating WEB-INF / views folder jsp put into them
  • Remove duplicate scanning Spring configuration of the controller

       Modify spring-context.xml

 <context:annotation-config />
    <context:component-scan base-package="com.example.my.shop">
        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    </context:component-scan>

The first controller controller

@Controller
public class LoginController{

    private static final String COOKIE_USER_INFO="userInfo";
    @Autowired
    private UserService userService;


    @RequestMapping(value ={"","login"},method = RequestMethod.GET)
    private String login(HttpServletRequest req){
        String userInfo= CookieUtils.getCookieValue(req,COOKIE_USER_INFO);
        if(!StringUtils.isBlank(userInfo))
        {
            String[] userInfoArray=userInfo.split(":");
            String email=userInfoArray[0];
            String password =userInfoArray[1];
            req.setAttribute("email",email);
            req.setAttribute("password",password);
            req.setAttribute("isRemember",true);
        }
        return "login";
    }

    @RequestMapping(value="login",method = RequestMethod.POST)
    public String login(HttpServletRequest req, HttpServletResponse resp){

        String email=req.getParameter("email");
        String password = req.getParameter("password");
        User user=userService.login(email,password);

        //记住我
        Boolean isRemember=req.getParameter("isRemember")==null?false:true;

        //登录失败的处理
        if(user==null){
            req.setAttribute("message","用户名或密码错误");
            return "login";
        }
        //登录成功的处理
        else{
            //如果用户点击记住我
            if(isRemember==true)
            {
                CookieUtils.setCookie(req,resp,COOKIE_USER_INFO,String.format("%s:%s",email,password));
            }
            else {
                CookieUtils.deleteCookie(req,resp,COOKIE_USER_INFO);
            }
            return "redirect:/main";

        }

    }


}

Editor:

https://www.funtl.com/zh/spring-mvc/%E7%AC%AC%E4%B8%80%E4%B8%AA-Controller-%E6%8E%A7%E5%88%B6%E5%99%A8.html

Guess you like

Origin blog.csdn.net/shmily_syw/article/details/92062811