九大内置对象和四大作用域

九大内置对象和四大作用域及作用域传值的几种方式

九大内置对象

1、request:

类型:HttpServletRequest.

含义:封装所有请求信息

获取方式:方法参数

2、response:

类型:HttpServletResponse。

含义:封装所有响应信息

获取方式:方法参数

3、session:

类型:Httpsession。

含义:封装所有会话信息。

获取方式:req.getsession();

4、application:

类型:ServletContext。

含义:所有信息

获取方式:getServletContext();req.getSetvletContext();

5、out:

类型:PrintWriter

含义:输出对象

获取方式:resp.getWriter();

6、exception:

类型:Exception

含义:异常对象

7、page:

类型:Object

含义:当前页面对象

8、pageContext:

类型:PageContext

含义:获取其他对象

9、config:

类型:ServletConfig

含义:配置信息

四大作用域

1、page

​ 在当前页面不会重新实例化。

2、request

​ 在一次请求中都是同一个对象,下次请求重新实例化一个request对象。

3、session

​ 一次会话。

​ 只要客户端Cookie中传递的Jsessionid不变,Session就不会重新实例化(不超过默认时间)

​ 浏览器关闭,Cookie失效

​ 默认时间:在时间范围内无任何交互。(在web.xml中配置)

<session-config>
    <session-timeout>30</session-timeout>
</session-config>

4、application

​ 只有tomcat启动项目时才实例化,关闭tomcat时销毁application

SpringMVC作用域传值的几种方式

1、使用原生servlet

在HandleMethod参数中添加作用域对象

@RequestMapping("demo")
	public String demo(HttpServletRequest req,HttpSession session) {
		//request作用域传值
		req.setAttribute("req", "req的值");
		//session作用域传值
		HttpSession reqSession = req.getSession();
		reqSession.setAttribute("reqSession", "reqSession的值");
		session.setAttribute("session", "session的值");
		//application作用域传值
		ServletContext application = req.getServletContext();
		application.setAttribute("appllication", "application的值");
		return "/index.jsp";
	}

2、使用Map集合

把map中内容放到request作用域中

spring会对map集合通过BindingAwareModelMap进行实例化

@RequestMapping("demo2")
public String demo2(Map<String,Object> map){
    map.put("map","map的值");
    return "/index.jsp";
}

3、使用SpringMVC中Model接口

​ 把最终内容放到request作用域中

@RequestMapping("demo3")
public String demo3(Model model){
	model.addAttribute("model","model的值");
	return "/index.jsp";
}

4、使用SpringMVC中的ModelAndView类

@Requestmapping("demo4")
public ModelAndView demo4(){
    ModelAndView modelAndView = new ModelAndView("/index.jsp");
    modelAndView.addObject("modelAndView","modelAndView的值");
    return "modelAndView";
}

文件下载

1、访问资源时响应头如果没有设置Content-Disposition,浏览器默认按照inline值进行处理。(inline能显示就显示,不能显示就下载。)

2、只需修改响应头中Context-Disposition=“attachment;filename=文件名”(attachment下载:以附件形式下载。filename=:就是下载时显示的下载的文件名)

文件上传

1、基于apache的commons-fileupload.jar完成文件上传

2、MultipartResovler作用:

​ (1):把客户端上传的文件流转换成MultipartFile封装类

​ (2):通过MultipartFile封装类获取到文件流

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值