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强?
# 放在
# 会对
# 给大家
# 没带
# 的是
# 都是
# 未命名
# 要去
# 希望能
# 如果没有
# 给他们
# 告诉我们
# 跳转
# 这篇
# 不加
# 必看
# 首页
# 写上
# 小编
# 配置文件
相关文章:
青浦网站制作公司有哪些,苹果官网发货地是哪里?
如何通过虚拟机搭建网站?详细步骤解析
,怎么在广州志愿者网站注册?
小程序网站制作需要准备什么资料,如何制作小程序?
如何登录建站主机?访问步骤全解析
无锡制作网站公司有哪些,无锡优八网络科技有限公司介绍?
如何配置IIS站点权限与局域网访问?
如何快速辨别茅台真假?关键步骤解析
高防服务器如何保障网站安全无虞?
一键制作网站软件下载安装,一键自动采集网页文档制作步骤?
php8.4新语法match怎么用_php8.4match表达式替代switch【方法】
php条件判断怎么写_ifelse和switchcase的使用区别【对比】
c++怎么实现高并发下的无锁队列_c++ std::atomic原子变量与CAS操作【详解】
网站企业制作流程,用什么语言做企业网站比较好?
c++怎么使用类型萃取type_traits_c++ 模板元编程类型判断【方法】
Swift中循环语句中的转移语句 break 和 continue
佛山企业网站制作公司有哪些,沟通100网上服务官网?
已有域名和空间如何快速搭建网站?
寿县云建站:智能SEO优化与多行业模板快速上线指南
想学网站制作怎么学,建立一个网站要花费多少?
合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?
建站主机如何安装配置?新手必看操作指南
建站之星图片链接生成指南:自助建站与智能设计教程
网站制作模板下载什么软件,ppt模板免费下载网站?
C#如何在一个XML文件中查找并替换文本内容
ui设计制作网站有哪些,手机UI设计网址吗?
历史网站制作软件,华为如何找回被删除的网站?
如何在IIS7上新建站点并设置安全权限?
大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?
定制建站模板如何实现SEO优化与智能系统配置?18字教程
江苏网站制作公司有哪些,江苏书法考级官方网站?
高性能网站服务器配置指南:安全稳定与高效建站核心方案
上海网站制作网页,上海本地的生活网站有哪些?最好包括生活的各个方面的?
香港服务器WordPress建站指南:SEO优化与高效部署策略
如何挑选最适合建站的高性能VPS主机?
公司网站建设制作费用,想建设一个属于自己的企业网站,该如何去做?
公司网站制作价格怎么算,公司办个官网需要多少钱?
韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南
威客平台建站流程解析:高效搭建教程与设计优化方案
如何在阿里云香港服务器快速搭建网站?
如何做静态网页,sublimetext3.0制作静态网页?
网站制作费用多少钱,一个网站的运营,需要哪些费用?
建站主机选择指南:服务器配置与SEO优化实战技巧
网站制作公司,橙子建站是合法的吗?
如何选择可靠的免备案建站服务器?
如何在腾讯云服务器上快速搭建个人网站?
如何通过智能用户系统一键生成高效建站方案?
正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?
手机网站制作与建设方案,手机网站如何建设?
建站OpenVZ教程与优化策略:配置指南与性能提升
*请认真填写需求信息,我们会在24小时内与您取得联系。