SpringMVC(三)——响应

SpringMVC响应

第一章:数据处理及跳转

1. 结果跳转方式

①.ModelAndView

设置ModelAndView对象 , 根据view的名称 , 和视图解析器跳到指定的页面 .

<!--配置视图解析器-->
<bean id="viewResolver" class="org.thymeleaf.spring4.view.ThymeleafViewResolver">
    <property name="order" value="1"/>
    <property name="characterEncoding" value="UTF-8"/>
    <property name="templateEngine" ref="templateEngine"/>
</bean>
<!-- templateEngine -->
<bean id="templateEngine" class="org.thymeleaf.spring4.SpringTemplateEngine">
    <property name="templateResolver" ref="templateResolver"/>
</bean>
<bean id="templateResolver" class="org.thymeleaf.spring4.templateresolver.SpringResourceTemplateResolver">
    <!--       页面返回导那个文件夹(html的文件夹)-->
    <property name="prefix" value="/html/" />
    <!--        访问页面的后缀,如访问suc,视图解析器就会为他加上.html的后缀,匹配上地址,变成/html/suc.html-->
    <property name="suffix" value=".html" />
    <property name="templateMode" value="HTML5"/>
</bean>

对应的controller类

/**
 * 返回ModelAndView对象的方式
 * @return
 */
@RequestMapping("/save3")
public ModelAndView save3(){
   
    System.out.println("执行了...");
    // 创建mv对象
    ModelAndView mv = new ModelAndView();
    // 把一些数据,存储到mv对象中
    mv.addObject("msg","用户名或者密码已经存在");
    // 设置逻辑视图的名称
    mv.setViewName("suc");
    return mv;
}

②.ServletAPI

通过设置ServletAPI , 不需要视图解析器 .(需要导入servlet相关依赖包)

  • 1、通过HttpServletResponse进行输出
  • 2、通过HttpServletResponse实现重定向
  • 3、通过HttpServletResponse实现请求转发
@RequestMapping("/myServlet")
public void myServlet(HttpServletRequest request, HttpServletResponse response) throws IOException {
   
    response.setCharacterEncoding("utf-8");//数据返回形式 //返回字符集
    response.setContentType("text/json;charset=utf-8");
    String json = "{\"code\":\"200\",\"message\":\"成功\"}";
    response.getWriter().append(json);
}

请求转发

  • 请求转发是request对象的方法,是同一个请求内,共享该请求的资源
  • 请求地址不改变是,服务器端的行为
  • 通过setAttribute进行数据传递(set向request写入key-vale的数据),可以通过getAttribute(通过key获取)
  • 请求转发可以转发到页面或者servlet
@RequestMapping("/test1")
public void test1(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
   
    response.setCharacterEncoding("utf-8");//数据返回形式 //返回字符集
    response.setContentType("text/json;charset=utf-8");
    request.setAttribute("msg","请求转发");
    System.out.println("test1 value="+request.getParameter("name"));
    //请求转发
    //request.getRequestDispatcher("/dept/test2").forward(request,response);
    //转发到页面
    request.getRequestDispatcher("/html/suc.html").forward(request,response);
}
@RequestMapping("/test2")
public void test2(HttpServletRequest request, HttpServletResponse response) throws IOException {
   
    System.out.println("test2 value="+request.getParameter("name"));
    Object msg = request.getAttribute("msg");
    System.out.println(msg);
}

重定向

  • 重定向是response对象的方法,是不同一个请求内

  • 由服务器端指导,是客户端的行为

  • 请求地址会改变,不共享数据

  • 重定向可以解决跨域的问题

    **跨域:**我们当前的访问地址不是当前项目的地址,如重定向到百度

@RequestMapping(&#
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java SpringMVC WebSocket 是一种在 web 应用中实现实时通信的技术。WebSocket协议是一种基于TCP协议的全双工通信协议,通过 WebSocket 可以在浏览器和服务器之间建立持久连接,实现服务器向客户端实时推送数据的功能。 SpringMVC 是一个基于 Java 的开源框架,用于构建 JavaEE 应用程序的 Web 层。它提供了一种轻量级的、快捷的开发方式,可以同时支持传统的请求-响应模式和 WebSocket 实时通信模式。 为了在 SpringMVC 中使用 WebSocket,我们需要使用到 Spring 的一个模块——Spring Websocket。它提供了一组类和接口,用于定义 WebSocket 的端点(Endpoint),配置 WebSocket 的拦截器(Interceptor),处理客户端发送的消息和向客户端发送消息等操作。通过这些类和接口,我们可以非常方便地实现 WebSocket 的功能。 首先,我们需要定义一个继承自`AbstractWebSocketMessageBrokerConfigurer`的配置类,通过它可以配置 WebSocket 的相关参数,比如设置允许的来源(allowed origins)、配置拦截器等等。 然后,我们需要定义一个继承自`AbstractWebSocketMessageBrokerConfigurer`的类,通过它可以配置消息代理(Message Broker)。消息代理负责接收客户端发送的消息并转发到目标客户端,同时也负责接收服务器推送的消息并发送给目标客户端。 最后,我们可以通过在控制器中添加`@MessageMapping`注解来处理客户端发送的消息,并通过`@SendTo`注解将处理结果发送给客户端。 总之,使用 Java SpringMVC WebSocket 可以很方便地实现实时通信功能,在需要实现实时推送数据的场景下,非常适用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值