@RequestMapping有如下作用

1.URL路径映射
在这里插入图片描述
2.窄化请求映射,起到统一管理url作用
例如以后会有很多的模块下面有很多的方法,那么可以使用这个让模块下的方法加上模块名字
例如该模块是用户模块,现在用户controller上加上模块名字,那么该controller下的所有方法的映射路径都要加上这个模块名字,例如上面的方法变成/user/finUserList.action
在这里插入图片描述
3.请求方法限定,规定某些方法必须为什么请求
在这里插入图片描述
如果请求的方法不是post就会出现如下错误
在这里插入图片描述
当然我们可以同时设置多个请求方法,例如
在这里插入图片描述
最后我们进行post提交时可能会出现中文乱码问题,这时去web.xml配置一下字符集即可(添加)

 <!--解决post提交乱码问题-->
    <filter>
        <filter-name>CharacterEncodingFilter</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>
    </filter>
    <filter-mapping>
        <filter-name>CharacterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

Controller返回值的选择

1.返回值为ModelAndView时,需要方法结束时,定义ModelAndView,将model和view分别进行设置。
在这里插入图片描述
2.返回String,一是代表逻辑视图名字,二是进行重定向或转发操作
逻辑视图
在这里插入图片描述
测试结果入下
在这里插入图片描述
重定向,上面的结果可以看到,有一个修改超链接,我们实现一个点击修改超链接走到一个编辑页面,然后在编辑页面点提交的时候重定向一遍findUserList.action方法(就会回到这个列表页面了)
1.编写一个到编辑页面的方法(根据id查询)
在这里插入图片描述
2.编写jsp页面
在这里插入图片描述
3.编写提交方法,实现重定向
在这里插入图片描述
效果如下(注意看地址栏)
在这里插入图片描述
点击修改后
在这里插入图片描述
点击提交后
在这里插入图片描述
转发
在这里插入图片描述
在这里插入图片描述
测试效果
在这里插入图片描述
所以就引出转发和重定向的区别
1.redirect重定向特点:浏览器地址栏中的url会变化。修改提交的request数据无法传到重定向的地址。因为重定向后重新进行request(request无法共享)

2.通过forward进行页面转发,浏览器地址栏url不变,request可以共享。

3.返回void,就可以理解成一个Servlet了
那么我们就可以在方法的形参上可以定义request和response,使用request或response指定响应结
果(就和Servlet一样啦):
1、使用request转向页面,如下:
request.getRequestDispatcher(“页面路径”).forward(request, response);

2、也可以通过response页面重定向:
response.sendRedirect(“url”)

3、也可以通过response指定响应结果,例如响应json数据如下:
response.setCharacterEncoding(“utf-8”);
response.setContentType(“application/json;charset=utf-8”);
response.getWriter().write(“json串”);

总结,@RequestMapping注解的使用要符合规范。然后Controller的返回值按需编写。之所以能够在方法的形参上接受参数,是和参数绑定有关的,后面补充参数绑定

Logo

助力广东及东莞地区开发者,代码托管、在线学习与竞赛、技术交流与分享、资源共享、职业发展,成为松山湖开发者首选的工作与学习平台

更多推荐