当前位置: 首页 > wzjs >正文

企业网站建设需要多少钱成都比较放得开的几个直播平台

企业网站建设需要多少钱成都,比较放得开的几个直播平台,房产网站建设哪家好,企业网站建设河北SpringMVC的请求与响应 SpringMVC请求处理流程请求映射和参数绑定RequestMapping注解RequestMapping的属性RequestMapping的请求参数绑定HTML代码JavaBean代码controller代码在控制器中使用原生的ServletAPI对象 SpringMVC响应数据处理及跳转结果跳转方式ModelAndViewServletAP…

SpringMVC的请求与响应

  • SpringMVC请求处理流程
  • 请求映射和参数绑定
    • RequestMapping注解
      • RequestMapping的属性
      • RequestMapping的请求参数绑定
        • HTML代码
        • JavaBean代码
        • controller代码
          • 在控制器中使用原生的ServletAPI对象
  • SpringMVC响应
    • 数据处理及跳转
      • 结果跳转方式
        • ModelAndView
        • ServletAPI
        • SpringMVC
      • ResponseBody响应json数据

SpringMVC请求处理流程

在这里插入图片描述

请求映射和参数绑定

SpringMVC通过@RequestMapping注解将HTTP请求映射到对应的控制器方法,支持多种参数传递方式。

RequestMapping注解

RequestMapping注解的作用是建立请求URL和处理方法之间的对应关系
RequestMapping注解可以作用在方法和类上

  1. 作用在类上:第一级的访问目录
  2. 作用在方法上:第二级的访问目录
  3. 细节:路径可以不编写 / 表示应用的根目录开始

RequestMapping的属性

  1. path 指定请求路径的url
  2. value value属性和path属性是一样的
  3. mthod 指定该方法的请求方式
@Controller
@RequestMapping(path = "/role") // 一级请求路径
public class RoleController {/*** /role/save* method="当前方法允许请求方式能访问"* params="请求路径上传参数"* @return*/@RequestMapping(path = "/save",method = {RequestMethod.GET})public String save(){System.out.println("保存角色...");return "suc";}@RequestMapping(value = "/delete")public String delete(){System.out.println("删除角色...");return "suc";}
}

RequestMapping的请求参数绑定

在这里插入图片描述

HTML代码
<html>
<head><meta charset="utf-8"><title>入门程序</title>
</head>
<body>
<h3>入门</h3><a href="/SpringMVC/hello" >入门程序</a><h1>请求参数绑定入门程序</h1><form action="/SpringMVC/user/save" method="get"><input type="text" name="username"/><br/><input type="text" name="age"/><br/><input type="submit"/></form><h1>请求参数绑定入门程序(封装到实体类)</h1><form action="/user/save1" method="post"><input type="text" name="username"/><br/><input type="text" name="age"/><br/><input type="submit"/></form><h1>请求参数绑定入门程序(封装到实体类)</h1><form action="/user/save2" method="post"><input type="text" name="username"/><br/><input type="text" name="age"/><br/><input type="text" name="account.money"/><br/><input type="submit"/></form><h1>请求参数绑定入门程序(存在list集合)</h1><form action="/user/save3" method="post"><input type="text" name="username"/><br/><input type="text" name="age"/><br/><input type="text" name="account.money"/><br/><input type="text" name="accounts[0].money"/><br/><input type="text" name="accounts[1].money"/><br/><input type="submit"/></form>
</body>
</html>
JavaBean代码
public class Account {private Double money;public Double getMoney() {return money;}public void setMoney(Double money) {this.money = money;}@Overridepublic String toString() {return "Account{" +"money=" + money +'}';}
}
public class User {private String username;private Integer age;private Account account;private List<Account> accounts;public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}public Account getAccount() {return account;}public void setAccount(Account account) {this.account = account;}public List<Account> getAccounts() {return accounts;}public void setAccounts(List<Account> accounts) {this.accounts = accounts;}@Overridepublic String toString() {return "User{" +"username='" + username + '\'' +", age=" + age +", account=" + account +", accounts=" + accounts +'}';}
}
controller代码
@Controller
@RequestMapping("/user")
public class UserController {@RequestMapping("/save")public String save(String username,Integer age){System.out.println(username);System.out.println(age);return "suc";}@RequestMapping("/save1")public String save1(User user){System.out.println(user.toString());return "suc";}@RequestMapping("/save2")public String save2(User user){System.out.println(user);return "suc";}@RequestMapping("/save3")public String save3(User user){System.out.println(user);return "suc";}}
在控制器中使用原生的ServletAPI对象

只需要在控制器的方法参数定义HttpServletRequest和HttpServletResponse对象

@RequestMapping(value = "/save6.do",method = {RequestMethod.POST})
public String save6(HttpServletRequest request, HttpServletResponse response){// 获取到HttpSession对象System.out.println(request.getParameter("username"));HttpSession session = request.getSession();System.out.println(session);System.out.println(response);return "suc";
}

SpringMVC响应

数据处理及跳转

结果跳转方式

ModelAndView

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

<bean id="templateResolver" class="org.thymeleaf.spring4.templateresolver.SpringResourceTemplateResolver"><property name="prefix" value="/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 , 不需要视图解析器 .
1、通过HttpServletResponse进行输出
2、通过HttpServletResponse实现重定向
3、通过HttpServletResponse实现转发

@Controller
@RequestMapping(path = "/role") // 一级请求路径
public class RoleController {@RequestMapping("/t1")public void test1(HttpServletRequest req, HttpServletResponse rsp) throws IOException {rsp.getWriter().println("Hello,Spring BY servlet API");}@RequestMapping("/t2")public void test2(HttpServletRequest req, HttpServletResponse rsp) throws IOException {rsp.sendRedirect("/SpringMVCDemo/html/suc.html");}@RequestMapping("/t3")public void test3(HttpServletRequest req, HttpServletResponse rsp) throws Exception {//转发req.setAttribute("msg","hello");req.getRequestDispatcher("/html/suc.html").forward(req,rsp);}}
SpringMVC

通过SpringMVC来实现转发和重定向 - 无需视图解析器;
测试前,需要将视图解析器注释掉!!!

@Controller
@RequestMapping(path = "/role") // 一级请求路径
public class RoleController {@RequestMapping("/t1")public String test1(){//转发return "/html/suc.html";}@RequestMapping("/t2")public String test2(){//转发二return "forward:/html/suc.html";}@RequestMapping("/t3")public String test3(){//重定向return "redirect:/html/suc.html";}}

ResponseBody响应json数据

json和JavaBean对象互相转换的过程中,需要使用jackson的jar包

<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.9.0</version>
</dependency>
<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-core</artifactId><version>2.9.0</version>
</dependency>
<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-annotations</artifactId><version>2.9.0</version>
</dependency>

DispatcherServlet会拦截到所有的资源,导致一个问题就是静态资源(img、css、js)也会被拦截到,从而不能被使用。解决问题就是需要配置静态资源不进行拦截,在springmvc.xml配置文件添加如下配置

标签配置不过滤:

  1. location元素表示webapp目录下的包下的所有文件
  2. mapping元素表示以/static开头的所有请求路径,如/static/a 或者/static/a/b
<!--设置静态资源不过滤-->
<mvc:resources mapping="/css/**" location="/css/"/> <!--样式-->
<mvc:resources mapping="/images/**" location="/images/"/> <!--图片-->
<mvc:resources mapping="/js/**" location="/js/"/> <!--javascript-->

html代码:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script><script>// 页面加载$(function(){// 单击事件$("#btn").click(function(){// 发送ajax的请求$.ajax({type: "post",url: "/SpringMVCDemo/user/save6",data:{username:"haha",age:"20"},success:function(d){// 编写很多代码alert(d.username+" ‐ "+d.age);}});});});</script>
</head>
<body>
<h3>异步的数据交互</h3>
<input type="button" value="ajax交互" id="btn">
</body>
</html>

controller:

/*** 异步的数据交互* 重定向* @return*/
@RequestMapping("/save6")
public @ResponseBody User save6(User user){System.out.println(user);// 模拟,调用业务层代码user.setUsername("hello");user.setAge(100);// 把user对象转换成json,字符串,再响应。使用@ResposeBody注解 response.getWriter().print()return user;
}

在springMVC当中如果要实现页面跳转就不要使用ajax,如果要json数据的返回就用ajax!!!


文章转载自:

http://Yz16LOqS.Lmjkn.cn
http://6oFLP0LH.Lmjkn.cn
http://H0ec8jtN.Lmjkn.cn
http://Rikav57h.Lmjkn.cn
http://EgiskRGW.Lmjkn.cn
http://7JG2aTvL.Lmjkn.cn
http://8J3RXk6A.Lmjkn.cn
http://ZF7YM9tv.Lmjkn.cn
http://MxaXUCjX.Lmjkn.cn
http://5Yzc1R09.Lmjkn.cn
http://YYqRInFW.Lmjkn.cn
http://PfsECXP4.Lmjkn.cn
http://i1xZMzLS.Lmjkn.cn
http://KovOjdgB.Lmjkn.cn
http://6Rirthpa.Lmjkn.cn
http://ADB1wYUE.Lmjkn.cn
http://n9VzKsJn.Lmjkn.cn
http://7Fqm08Kh.Lmjkn.cn
http://xT6bm9DR.Lmjkn.cn
http://KFdZx9ko.Lmjkn.cn
http://ZFWYAJi7.Lmjkn.cn
http://H9xKvgCx.Lmjkn.cn
http://BJCYx7WA.Lmjkn.cn
http://uFjVYM72.Lmjkn.cn
http://cAb6po8K.Lmjkn.cn
http://seEBxkTy.Lmjkn.cn
http://pq5RrmbF.Lmjkn.cn
http://DEADpy22.Lmjkn.cn
http://TzjcsO3G.Lmjkn.cn
http://b7KOnZI1.Lmjkn.cn
http://www.dtcms.com/wzjs/660754.html

相关文章:

  • 如何在阿里巴巴上做网站seo关键词快速排名软件
  • 网址注册在哪里注册济南网站搜索引擎优化
  • wordpress 建站的利弊珠海网站建设zhkmkj
  • 建设银行 公户 该网站使用过期的wordpress点击图片悬浮
  • 建网站一般用什么工具东莞网站制作购买
  • 广州市开发区建设网站电商平台网站建设方案
  • 做视频卖给视频网站网页源代码解析
  • 河北省邢台市建设工程网站编程软件做网站的
  • 校园网站建设标书湖南网络大课堂
  • 通辽网站公司网站要放备案号吗
  • 天津网站网站建设微商怎么做自己的网站
  • 保定市住房保障和城乡建设局网站公司网站策划书
  • 儋州网站设计公司百度订单售后电话
  • 茌平做网站深圳创业补贴需要什么条件
  • 内网门户网站微信公众号推广软文案例
  • 泉州做网站qzxiaolv南宁百度快速优化
  • 律师网站建设方案网页传奇游戏修改器
  • html网站中文模板下载wordpress登陆按钮
  • 1)_童装网站建设目标南京建设银行公积金查询网站
  • 网站建设公司新员工培训ppt模板成都企业网站建站
  • 做项目网站然后做网站
  • 建站公司兴田德润在哪里做网站题材
  • 做的最好的微电影网站有哪些土特产 网站源码
  • 郑州便宜网站建设网站服务器ip地址怎么查
  • 阜康网站建设手机制作音乐的软件app
  • 旅游网站推荐凯里网站建设哪家专业
  • 烟台环保网站建设环境文化建设方案网站
  • 在青岛建网站微信网页版登录手机版
  • 哪个网站做黑色星期五订酒店活动外贸那些网站好用吗
  • 从0建设一个网站小米网站制作