springmvc之获取参数的方法(必看)

发布时间 - 2026-01-11 02:51:06    点击率:

1、导包,四大核心包,一个切面包(AOP),logging,web,springmvc

2、配置文件,核心代码如下:

web.xml

<servlet>
  <servlet-name>springDispatcherServlet</servlet-name>
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  <init-param>
   <param-name>contextConfigLocation</param-name>
   <param-value>classpath:springmvc.xml</param-value>
  </init-param>
  <load-on-startup>1</load-on-startup>
 </servlet>

  <!-- Map all requests to the DispatcherServlet for handling -->
 <servlet-mapping>
  <servlet-name>springDispatcherServlet</servlet-name>
  <url-pattern>/</url-pattern>
 </servlet-mapping>
 
   <!--字符编码的filter一定要放在最前面 -->
  <filter>
   <filter-name>CharacterEncodingFilter</filter-name>
  <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
  <!-- 配置encoding,告诉我们指定的编码格式 -->
  <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>CharacterEncodingFilter</filter-name>
   <url-pattern>/</url-pattern>
  </filter-mapping>
   <!-- 支持rest的filter -->
  <filter>
   <filter-name>HiddenHttpMethodFilter</filter-name>
  <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
  </filter> 
  <filter-mapping>
   <filter-name>HiddenHttpMethodFilter</filter-name>
   <url-pattern>/*</url-pattern>
  </filter-mapping>

springmvc.xml

<context:component-scan base-package="com.atguigu"></context:component-scan>
  <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  <!-- 视图分析器 -->
   <property name="prefix" value="/WEB-INF/pages/"></property>
   <property name="suffix" value=".jsp"></property>
  </bean>
</beans> 

index.jsp: 首页进入

<body>
 <a href="hello" rel="external nofollow" >hello</a><br/>
 <a href="handle01?user=123456" rel="external nofollow" >获取请求参数</a><br/>
 <a href="handle02" rel="external nofollow" >获取请求头</a><br/>
 <form action="saveBook" method="post">
  图书id<input type="text" name="id"/><br/>
  图书name<input type="text" name="name"/><br/>
  图书author<input type="text" name="author"/><br/>
  图书price<input type="text" name="price"/><br/>
  图书sales<input type="text" name="sales"/><br/>
  图书stock<input type="text" name="stock"/><br/>
  <hr/>
  <!-- 级联属性来封装值 -->
  作者name;<input type="text" name="person.name"/><br/>
  作者address;<input type="text" name="person.address"/><br/>
  <input type="submit" value="保存图书"/>
 </form>
 <hr/>
 <h2>给页面携带数据</h2>
 <a href="output01" rel="external nofollow" >output01</a>
</body>

3./WEB-INF/pages 跳转后的内容

1).success.jsp

<body>
 <h1>成功!</h1>
 ${msg}===${reMsg}
</body> 

2).testScope.jsp

<body>
 <h1>测试数据带在了哪个scope</h1>
 request:${requestScope.msg }<br /> 
 session:${sessionScope.msg }<br /> 
 application:${applicationScope.msg}
</body>

4.src/bean包   Author.java  

public class Author {
  private String name;
  private String address;   Book.java: 


public class Book {
 private int id;
 private String name;
 private double price;
 private int sales;
 private int stock;
 private Author person;
 private String imgPath = "static/img/default.jpg";
 private String author;

src/controller 包, HelloController.java: 如果不加,则不能访问

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class HelloController {
 
 @RequestMapping("/hello") //连接地址必须加上"/hello"
 public String hello(){
  return "success";
  
 }
}  

TestParamController.java

@Controller
public class TestParamController {
 
 /**
  * 1、直接给方法的参数位置写上一个和请求带来的参数的名字相同的变量
  * 2、这个变量就封装的是带来的参数的值
  * user = request.getParameter("user")
  * 3、如果没有就是null
  * 
  * @RequestParam("user"):指定获取哪个参数的值
  * 1、默认发送请求必须带上这个参数;
  *   否则:HTTP Status 400 - Required String parameter 'user' is not present
  * 2、required=false可以设置不是必须的;没带null
  * 3、defaultValue="未命名"指定没带时的默认值;
  *   user = request.getParameter("user");
  */
 
 @RequestMapping("/handle01")
 public String handle01(
   @RequestParam(value = "user", required = false, defaultValue = "未命名") String user) {
  System.out.println("获取的User:" + user);
  return "success";
 }
 
 /**
  * 获取请求头;
  *   request.getHeader("User-Agent")
  * 注解做了下面这些事情
  * @RequestHeader("User-Agent")String userAgent;
  *   userAgent = request.getHeader("User-Agent");*/
 @RequestMapping("/handle02")
 public String handle02(
   @RequestHeader(value = "User-Agent", required = false, defaultValue = "没有的") String userAgent) {
  System.out.println("User-Agent:" + userAgent);
  return "success";
 }
 
 /**
  * 获取某个cookie的值;
  * JSESSIONID=B05C018F82AA1B0BD3845831FADFE49A
  * @CookieValue("JSESSIONID")String jid
  * 注解做了下面这些事情
  * Cookie[] cookies = request.getCookies();
  * for(Cookie c:cookies){
  *  if(c.getName().equals("JSESSIONID")){
  *   jid = c.getValue();
  *  }
  * }*/
 @RequestMapping("/handle03")
 public String handle03(
   @CookieValue(value = "JSESSIONID", required = false, defaultValue = "hhhhh") String jid) {
  System.out.println("jid:" + jid);
  return "success";
 }

 /*传入POJO;直接帮我们封装页面的值; 方便简单,少写很多代码,实现代码分离,解耦和
  * 1、book = new Book();
  * 2、把book对象中的每一个属性的值查出来,request.getParameter(属性);
  * 3、把这个值设置进去
  * 注意:因为SpringMVC会进行类型转换,所以提交的数据一定要是合法的,否则400错误*/
 @RequestMapping("/saveBook")
 public String handle04(Book book) {
  System.out.println("book的值:" + book);
  return "success";
 }

 @RequestMapping("/handle05")
 // pringMVC还允许我们在请求参数上使用原生的ServletAPI HttpServletRequest HttpServletResponse
 // HttpSession
 public String handle05(HttpSession session, HttpServletRequest request,
   HttpServletResponse response) {
  session.setAttribute("msg", "哈哈哈");

  request.setAttribute("reqMsg", "嘿嘿嘿");

  return "success";
 }

}

src/dataout/ DataOutPutController.java 给页面携带数据

@Controller //给页面携带数据
public class DataOutPutController {

 /**
  * 1、返回值改为ModelAndView(包含模型数据(Model)和要去的页面地址(View));
  *   数据放在请求域中;
  * 2、在请求参数上传入Model、Map、ModelMap都行;给他们里面保存的数据会放在请求域中
  * Model、Map、ModelMap最终其实都是再有用BindingAwareModelMap;
  * 相当于给BindingAwareModelMap中保存数据就是给请求域中保存
  * Model   Map
  *  ||   ||
  *  ||   \/
  *  ||  ModelMap
  *  \/   \/
  *  ExtendedModelMap【隐含模型】 extends ModelMap implements Model
  *   \/
  *  BindingAwareModelMap
  * @return
  */
 @RequestMapping("/output04")
 public String output04(ModelMap model){
  //视图解析器会对视图名进行拼串
  model.addAttribute("msg","output04");
  System.out.println(model.getClass());
  return "testScope";
  
 }
 @RequestMapping("/output03")
 public String output03(Model model){
  model.addAttribute("msg", "output03");
  System.out.println(model.getClass());
  return "testScope";
 }
 @RequestMapping("/output02")
 public String output02(Map<String,Object>map){
  //视图解析器会对视图名进行拼串
  map.put("msg", "output02");
  System.out.println(map.getClass());
  return "testScope";
 }
 @RequestMapping("/output01")
 public ModelAndView output01(){
  //视图解析器会对视图名进行拼串
  ModelAndView modelAndView = new ModelAndView();
  modelAndView.setViewName("testScope");
  modelAndView.addObject("msg", "output01");
  return modelAndView;
  
 }
}

以上这篇springmvc之获取参数的方法(必看)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


# springmvc  # 获取参数  # spring与mybatis三种整合方法  # Java 8中如何获取参数名称的方法示例  # 深入了解MyBatis参数  # 聊聊在获取方法参数名方面  # Spring真的就比Mybatis强?  # 放在  # 会对  # 给大家  # 没带  # 的是  # 都是  # 未命名  # 要去  # 希望能  # 如果没有  # 给他们  # 告诉我们  # 跳转  # 这篇  # 不加  # 必看  # 首页  # 写上  # 小编  # 配置文件 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel怎么配置自定义表前缀_Laravel数据库迁移与Eloquent表名映射【步骤】  HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】  网站图片在线制作软件,怎么在图片上做链接?  如何用景安虚拟主机手机版绑定域名建站?  大连网站制作公司哪家好一点,大连买房网站哪个好?  在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?  浅述节点的创建及常见功能的实现  ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】  如何在Tomcat中配置并部署网站项目?  微信小程序 require机制详解及实例代码  如何快速搭建高效可靠的建站解决方案?  中山网站推广排名,中山信息港登录入口?  Laravel如何使用Eloquent ORM进行数据库操作?(CRUD示例)  Laravel如何与Docker(Sail)协同开发?(环境搭建教程)  详解Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点  Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】  Laravel Livewire是什么_使用Laravel Livewire构建动态前端界面  郑州企业网站制作公司,郑州招聘网站有哪些?  Linux系统运维自动化项目教程_Ansible批量管理实战  手机软键盘弹出时影响布局的解决方法  JavaScript实现Fly Bird小游戏  如何实现javascript表单验证_正则表达式有哪些实用技巧  详解vue.js组件化开发实践  如何快速辨别茅台真假?关键步骤解析  微信小程序 wx.uploadFile无法上传解决办法  Laravel如何使用Collections进行数据处理?(实用方法示例)  Laravel如何理解并使用服务容器(Service Container)_Laravel依赖注入与容器绑定说明  Laravel如何使用Passport实现OAuth2?(完整配置步骤)  Bootstrap CSS布局之列表  大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?  海南网站制作公司有哪些,海口网是哪家的?  Laravel怎么处理异常_Laravel自定义异常处理与错误页面教程  如何破解联通资金短缺导致的基站建设难题?  Laravel安装步骤详细教程_Laravel环境搭建指南  惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?  Laravel如何部署到服务器_线上部署Laravel项目的完整流程与步骤  Laravel API资源(Resource)怎么用_格式化Laravel API响应的最佳实践  在线制作视频的网站有哪些,电脑如何制作视频短片?  如何为不同团队 ID 动态生成多个独立按钮  如何在阿里云通过域名搭建网站?  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  悟空识字怎么关闭自动续费_悟空识字取消会员自动扣费步骤  Laravel怎么使用Session存储数据_Laravel会话管理与自定义驱动配置【详解】  百度浏览器如何管理插件 百度浏览器插件管理方法  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  如何基于云服务器快速搭建网站及云盘系统?  java中使用zxing批量生成二维码立牌  Android自定义listview布局实现上拉加载下拉刷新功能  JavaScript如何操作视频_媒体API怎么控制播放  Laravel如何使用Seeder填充数据_Laravel模型工厂Factory批量生成测试数据【方法】