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强?
# 放在
# 会对
# 给大家
# 没带
# 的是
# 都是
# 未命名
# 要去
# 希望能
# 如果没有
# 给他们
# 告诉我们
# 跳转
# 这篇
# 不加
# 必看
# 首页
# 写上
# 小编
# 配置文件
相关文章:
如何在阿里云虚拟服务器快速搭建网站?
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
高端网站建设与定制开发一站式解决方案 中企动力
浙江网站制作公司有哪些,浙江栢塑信息技术有限公司定制网站做的怎么样?
如何在Golang中引入测试模块_Golang测试包导入与使用实践
网站制作的步骤包括,正确网址格式怎么写?
如何高效配置IIS服务器搭建网站?
怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?
江苏网站制作公司有哪些,江苏书法考级官方网站?
javascript中的try catch异常捕获机制用法分析
代刷网站制作软件,别人代刷火车票靠谱吗?
常州自助建站费用包含哪些项目?
宝塔新建站点报错如何解决?
C#如何序列化对象为XML XmlSerializer用法
小说建站VPS选用指南:性能对比、配置优化与建站方案解析
名字制作网站免费,所有小说网站的名字?
如何用VPS主机快速搭建个人网站?
高防服务器如何保障网站安全无虞?
猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?
网站制作公司排行榜,抖音怎样做个人官方网站
七夕网站制作视频,七夕大促活动怎么报名?
免费网站制作appp,免费制作app哪个平台好?
MySQL查询结果复制到新表的方法(更新、插入)
详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)
Java解压缩zip - 解压缩多个文件或文件夹实例
建站主机服务器选购指南:轻量应用与VPS配置解析
如何通过主机屋免费建站教程十分钟搭建网站?
建站之星备案是否影响网站上线时间?
制作宣传网站的软件,小红书可以宣传网站吗?
logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?
建站主机类型有哪些?如何正确选型
建站之星代理平台如何选择最佳方案?
威客平台建站流程解析:高效搭建教程与设计优化方案
外贸公司网站制作哪家好,maersk船公司官网?
矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?
制作充值网站的软件,做人力招聘为什么要自己交端口钱?
山东网站制作公司有哪些,山东大源集团官网?
如何在云主机快速搭建网站站点?
如何快速搭建二级域名独立网站?
制作网站的模板软件,网站怎么建设?
如何破解联通资金短缺导致的基站建设难题?
如何批量查询域名的建站时间记录?
宝塔新建站点为何无法访问?如何排查?
Python如何创建带属性的XML节点
无锡营销型网站制作公司,无锡网选车牌流程?
制作证书网站有哪些,全国城建培训中心证书查询官网?
北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?
如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?
c++怎么使用类型萃取type_traits_c++ 模板元编程类型判断【方法】
高端云建站费用究竟需要多少预算?
*请认真填写需求信息,我们会在24小时内与您取得联系。