java 获取init参数_springmvc之获取参数的方法(必看)

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

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

web.xml

springDispatcherServlet

org.springframework.web.servlet.DispatcherServlet

contextConfigLocation

classpath:springmvc.xml

1

springDispatcherServlet

/

CharacterEncodingFilter

org.springframework.web.filter.CharacterEncodingFilter

encoding

utf-8

forceEncoding

true

CharacterEncodingFilter

/

HiddenHttpMethodFilter

org.springframework.web.filter.HiddenHttpMethodFilter

HiddenHttpMethodFilter

/*

springmvc.xml

index.jsp: 首页进入

hello

获取请求参数

获取请求头

图书id

图书name

图书author

图书price

图书sales

图书stock


作者name;

作者address;


给页面携带数据

output01

e80ac70fbefe4c3a66314a17ac950c7f.png

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

1).success.jsp

成功!

${msg}===${reMsg}

2).testScope.jsp

测试数据带在了哪个scope

request:${requestScope.msg }

session:${sessionScope.msg }

application:${applicationScope.msg}

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(Mapmap){

//视图解析器会对视图名进行拼串

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之获取参数的方法(必看)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值