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

上海做淘宝网站如何做网站营销推广

上海做淘宝网站,如何做网站营销推广,网站的导航页怎么做,酒吧装修目录 通过ServletAPI获取&#xff08;不常用&#xff09; 通过控制器方法的形参获取请求参数 RequestParam RequestHeader CookieValue 通过POJO获取请求参数 解决获取请求参数的乱码问题 test_param.html&#xff1a; <!DOCTYPE html> <html lang"en&qu…

目录

通过ServletAPI获取(不常用)

通过控制器方法的形参获取请求参数

@RequestParam

@RequestHeader

@CookieValue

通过POJO获取请求参数

解决获取请求参数的乱码问题


test_param.html:

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head><meta charset="UTF-8"><title>测试请求参数</title>
</head>
<body>
<h1>测试请求参数</h1>
</body>
</html>
package com.qcby.mvc.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;@Controller
public class TestController {@RequestMapping("/param")public String param(){return "test_param";}}

启动:

通过ServletAPI获取(不常用)

将HttpServletRequest作为控制器方法的形参,此时HttpServletRequest类型的参数表示封装了当前请求的请求报文的对象

package com.qcby.mvc.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;import javax.servlet.http.HttpServletRequest;@Controller
public class ParamController {@RequestMapping("/testServletAPI")//形参位置的request表示当前请求public String testServletAPI(HttpServletRequest request){String username = request.getParameter("username");String password = request.getParameter("password");System.out.println("username:"+username+",password:"+password);return "success";}}
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head><meta charset="UTF-8"><title>测试请求参数</title>
</head>
<body>
<h1>测试请求参数</h1>
<a th:href="@{/testServletAPI(username='admin',password=123456)}">测试使用ServletAPI获取请求参数</a>
</body>
</html>

通过控制器方法的形参获取请求参数

package com.qcby.mvc.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;import javax.servlet.http.HttpServletRequest;@Controller
public class ParamController {@RequestMapping("/testParam")public String testParam(String username,String password){System.out.println("username:"+username+",password:"+password);return "success";}
}
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head><meta charset="UTF-8"><title>测试请求参数</title>
</head>
<body>
<h1>测试请求参数</h1>
<a th:href="@{/testParam(username='admin',password=123456)}">测试使用控制器的形参获取请求参数</a>
</body>
</html>

注:

若请求所传输的请求参数中有多个同名的请求参数,此时可以在控制器方法的形参中设置字符串数组或者字符串类型的形参接收此请求参数

  • 若使用字符串数组类型的形参,此参数的数组中包含了每一个数据
  • 若使用字符串类型的形参,此参数的值为每个数据中间使用逗号拼接的结果

字符串数组:

package com.qcby.mvc.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;import javax.servlet.http.HttpServletRequest;@Controller
public class ParamController {@RequestMapping("/testParam")public String testParam(String username,String password,String[] hobby){System.out.println("username:"+username+",password:"+password+",hobby:"+ Arrays.toString(hobby));return "success";}
}
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head><meta charset="UTF-8"><title>测试请求参数</title>
</head>
<body>
<h1>测试请求参数</h1>
<form th:action="@{/testParam}" method="post">用户名:<input type="text" name="username"><br>密码:<input type="password" name="password"><br>爱好:<input type="checkbox" name="hobby" value="a">a<input type="checkbox" name="hobby" value="b">b<input type="checkbox" name="hobby" value="c">c<br><input type="submit" value="测试使用控制器的形参获取请求参数">
</form>
</body>
</html>

 

字符串:

package com.qcby.mvc.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;import javax.servlet.http.HttpServletRequest;@Controller
public class ParamController {@RequestMapping("/testParam")public String testParam(String username,String password,String hobby){System.out.println("username:"+username+",password:"+password+",hobby:"+hobby);return "success";}
}
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head><meta charset="UTF-8"><title>测试请求参数</title>
</head>
<body>
<h1>测试请求参数</h1>
<form th:action="@{/testParam}" method="post">用户名:<input type="text" name="username"><br>密码:<input type="password" name="password"><br>爱好:<input type="checkbox" name="hobby" value="a">a<input type="checkbox" name="hobby" value="b">b<input type="checkbox" name="hobby" value="c">c<br><input type="submit" value="测试使用控制器的形参获取请求参数">
</form>
</body>
</html>

@RequestParam

@RequestParam是将请求参数和控制器方法的形参创建映射关系

@RequestParam注解一共有三个属性:

value:指定为形参赋值的请求参数的参数名

required:设置是否必须传输此请求参数,默认值为true

若设置为true时,则当前请求必须传输value所指定的请求参数,若没有传输该请求参数,且没有设置defaultValue属性,则页面报错400:Required String parameter 'xxx' is not present;若设置为false,则当前请求不是必须传输value所指定的请求参数;若没有传输,则注解所标识的形参的值为null

defaultValue:不管required属性值为true或false,当value所指定的请求参数没有传输或传输的值为""时,则使用默认值为形参赋值

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head><meta charset="UTF-8"><title>测试请求参数</title>
</head>
<body>
<h1>测试请求参数</h1>
<form th:action="@{/testParam}" method="post">用户名:<input type="text" name="user_name"><br>密码:<input type="password" name="password"><br>爱好:<input type="checkbox" name="hobby" value="a">a<input type="checkbox" name="hobby" value="b">b<input type="checkbox" name="hobby" value="c">c<br><input type="submit" value="测试使用控制器的形参获取请求参数">
</form>
</body>
</html>
package com.qcby.mvc.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;import javax.servlet.http.HttpServletRequest;
import java.util.Arrays;@Controller
public class ParamController {@RequestMapping("/testParam")public String testParam(@RequestParam("user_name") String username, String password, String[] hobby){System.out.println("username:"+username+",password:"+password+",hobby:"+ Arrays.toString(hobby));return "success";}
}

@RequestHeader

@RequestHeader是将请求头信息和控制器方法的形参创建映射关系

@RequestHeader注解一共有三个属性:value、required、defaultValue,用法同@RequestParam

package com.qcby.mvc.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;import javax.servlet.http.HttpServletRequest;
import java.util.Arrays;@Controller
public class ParamController {@RequestMapping("/testParam")public String testParam(@RequestParam("user_name") String username, String password, String[] hobby,@RequestHeader("Host") String host){System.out.println("username:"+username+",password:"+password+",hobby:"+ Arrays.toString(hobby));System.out.println("host:"+host);return "success";}
}

 

@CookieValue

@CookieValue是将cookie数据和控制器方法的形参创建映射关系

@CookieValue注解一共有三个属性:value、required、defaultValue,用法同@RequestParam

创建session:

package com.qcby.mvc.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.util.Arrays;@Controller
public class ParamController {@RequestMapping("/testServletAPI")//形参位置的request表示当前请求public String testServletAPI(HttpServletRequest request){HttpSession session = request.getSession();String username = request.getParameter("username");String password = request.getParameter("password");System.out.println("username:"+username+",password:"+password);return "success";}@RequestMapping("/testParam")public String testParam(@RequestParam("user_name") String username, String password, String[] hobby,@RequestHeader("Host") String host,@CookieValue("JSESSIONID") String JSESSIONID){System.out.println("username:"+username+",password:"+password+",hobby:"+ Arrays.toString(hobby));System.out.println("host:"+host);System.out.println("JSESSIONID:"+JSESSIONID);return "success";}
}

通过POJO获取请求参数

可以在控制器方法的形参位置设置一个实体类类型的形参,此时若浏览器传输的请求参数的参数名和实体类中的属性名一致,那么请求参数就会为此属性赋值

package com.qcby.mvc.bean;public class User {private Integer id;private String username;private String password;private Integer age;private String sex;private String email;public User() {}public User(Integer id, String username, String password, Integer age, String sex, String email) {this.id = id;this.username = username;this.password = password;this.age = age;this.sex = sex;this.email = email;}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}@Overridepublic String toString() {return "User{" +"id=" + id +", username='" + username + '\'' +", password='" + password + '\'' +", age=" + age +", sex='" + sex + '\'' +", email='" + email + '\'' +'}';}
}
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head><meta charset="UTF-8"><title>测试请求参数</title>
</head>
<body>
<h1>测试请求参数</h1>
<form th:action="@{/testpojo}" method="post">用户名:<input type="text" name="username"><br>密码:<input type="password" name="password"><br>性别:<input type="radio" name="sex" value="男">男<input type="radio" name="sex" value="女">女<br>年龄:<input type="text" name="age"><br>邮箱:<input type="text" name="email"><br><input type="submit" value="使用实体类接收请求参数">
</form>
</body>
</html>
package com.qcby.mvc.controller;import com.qcby.mvc.bean.User;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.util.Arrays;@Controller
public class ParamController {@RequestMapping("/testpojo")public String testpojo(User user){System.out.println(user);return "success";}
}

解决获取请求参数的乱码问题

解决获取请求参数的乱码问题,可以使用SpringMVC提供的编码过滤器CharacterEncodingFilter,但是必须在web.xml中进行注册

<!--配置springMVC的编码过滤器-->
<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><init-param><param-name>forceResponseEncoding</param-name><param-value>true</param-value></init-param>
</filter>
<filter-mapping><filter-name>CharacterEncodingFilter</filter-name><url-pattern>/*</url-pattern>
</filter-mapping>

注:

SpringMVC中处理编码的过滤器一定要配置到其他过滤器之前,否则无效

http://www.yidumall.com/news/8086.html

相关文章:

  • 后期网站网络推广平台公司
  • 龙岗企业网站建设济南网站seo公司
  • 室内设计培训班多少钱南京seo关键词排名
  • 如何建立起个人网站全球疫情最新数据统计
  • wordpress允许作者上传媒体seo分析
  • 做网站PV免费二级域名查询网站
  • 做网站开发的有哪些公司好重庆百度关键词优化软件
  • 义乌网站建设方案案例上海发布微信公众号
  • 重庆网站建设公司是什么新闻稿营销
  • h5网站建设公司沧州网站优化
  • 上海城市建设档案馆网站南京网站制作公司
  • 做直播网站vps可以吗如何在网络上推广产品
  • 网站收录突然全部没有了全球搜索引擎
  • 网站建设与管理可以专升本吗揭阳百度seo公司
  • 福州专业网站建设服务商小网站关键词搜什么
  • 常州模板网站建设价位线上营销推广方式有哪些
  • 怎么给公司做简单网站seo软件视频教程
  • 济南网站建设技术支持四川seo
  • 做视频找空镜头那个网站比较全搜索推广代运营
  • 网站菜单导航怎么做的云南疫情最新情况
  • 西班牙网站后缀中国网站排名查询
  • 企业网站搜索引擎拓客网站分析工具
  • 武汉微网站营销策划案
  • 企业网站的一般要素制作一个网站大概需要多少钱
  • 如何开网店做电商免费seo快速收录工具
  • 个人网站 不用备案吗微信拓客的最新方法
  • 做网站步骤免费推广的方式
  • 招聘网站如何做SEO国外seo工具
  • 中国最著名网站建设公司产品关键词的搜索渠道
  • 想给学校社团做网站谷歌浏览器免费入口