spring MVC

@RequestMapping(value="/hello2.do",method= {RequestMethod.POST,RequestMethod.GET},params= {"id=","sb=hh"})
public ModelAndView hello2(ModelAndView mv) {
	mv.addObject("mess", "你不會是傻逼吧");
	mv.setViewName("index.jsp");
	return mv;
}
@RequestMapping(value="/hello4.do",method= {RequestMethod.POST,RequestMethod.GET})
public ModelAndView hello4(ModelAndView mv) {
	mv.addObject("mess", "nihao");
	mv.setViewName("/index.jsp");
	return mv;
}
	
@RequestMapping(value="/hello5.do",method={RequestMethod.POST,RequestMethod.GET})
public String hello5(HttpServletRequest request) {
	request.setAttribute("mess", "nihaoaaa");
	//返回类型为String这里只能用request等 传参数 用ModelAndView的addObject不行
	return "forward:/index.jsp";//请求转发
	//return "redirect:/index.jsp";  //重定向
}

spring-servlet.xml配置

<!-- 启动spring自动扫描,注入bean -->
<context:component-scan base-package="com.lanqiao"/>
<!-- 启用springmvc注解功能 -->
<mvc:annotation-driven />

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 视图后缀,controller中的方法返回的url字符串会添加该后缀 -->		
<property name="suffix" value=".jsp"/>
<!-- 视图前缀controller中的方法返回的url字符串会添加该前缀 -->		
<property name="prefix" value="/WEB-INF/jsp/"/> 
</bean>

<bean id="multipartResolver"
	class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
	<property name="defaultEncoding" value="utf-8" /> <!-- 默认编码 (ISO-8859-1) -->
	<property name="maxInMemorySize" value="10240" /> <!-- 最大内存大小 (10240) 设置在文件上传时允许写到内存中的最大值-->
	<property name="uploadTempDir" value="/temp/" /> <!--临时文件存储目录-->
	<property name="maxUploadSize" value="-1" /> <!-- 最大文件大小,-1为无限止(-1) -->
</bean>

配置web.xml

<servlet>
	<servlet-name>example</servlet-name>
	<!--Spring MVC里的前端控制器DispatcherServlet就是一个Servlet -->
	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
	<init-param>
		<!-- 加载spring核心配置文件 -->
		<param-name>contextConfigLocation</param-name>
		<!--param-value是Spring MVC配置文件的路径 -->
		<param-value>classpath:spring-servlet.xml</param-value>
	</init-param>
	<!--启动级别为1,当Tomcat启动时,应用也随之启动 -->
	<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
	<servlet-name>example</servlet-name>
	<url-pattern>*.do</url-pattern>
</servlet-mapping>

文件上传下载

@RequestMapping(value="/upload.do",method=RequestMethod.POST)
public String fileUpLoad(String name,@RequestParam("file") CommonsMultipartFile  file,HttpSession session){
	if(!file.isEmpty()){
		String path = session.getServletContext().getRealPath("/upload/");
		File parent = new File(path);
		if(!parent.exists()){
			parent.mkdirs();
		}
        String fileName = file.getOriginalFilename();
		String fileType = fileName.substring(fileName.lastIndexOf("."));
		File targetFile = new File(path,new Date().getTime()+fileType);
		try {
			file.getFileItem().write(targetFile);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	return "showData";
}
  // 编写jsp页面
 <form action="upload.do" method="post"  enctype="multipart/form-data">
    	<input type="file" name="file" />
    	<input type="submit" value="上传">
 </form>

///多个文件
@RequestMapping(value="/mupload.do",method=RequestMethod.POST)
public String muFileUpLoad(String name,@RequestParam("file") CommonsMultipartFile[]  files,HttpSession session){
	if(files!=null && files.length>0){
		String path = session.getServletContext().getRealPath("/upload/");
		for (CommonsMultipartFile file : files) {
			String fileName = file.getOriginalFilename();
			String fileType = fileName.substring(fileName.lastIndexOf("."));
			File targetFile = new File(path,new Date().getTime()+fileType);
			try {
				file.getFileItem().write(targetFile);
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	}
	return "showData";
}
 //编写jsp页面
<form action="mupload.do" method="post" enctype="multipart/form-data">
   	<input type="file" name="file" />
   	<input type="file" name="file" />
   	<input type="submit" value="上传">
</form>

//文件下载
@RequestMapping(value="/downLoad.do",method=RequestMethod.GET)
public void downLoad(HttpSession session,HttpServletResponse response,String fileName)throws Exception{
	String path = session.getServletContext().getRealPath("/upload")+"\\"+fileName;
	File file = new File(path);
	if(!file.exists()){
		response.sendError(404, "您要下载的文件没找到");
		return;
	}
	BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
	response.setContentType("multipart/form-data");
	response.setHeader("Content-Disposition", "attachment;filename="+fileName);
	OutputStream out = response.getOutputStream();
	byte [] buff = new byte[1024];
	int len = -1;
	while((len= bis.read(buff))!=-1){
		out.write(buff,0,len);
	}
	bis.close();
	out.close();
}

拦截器

public class Login implements HandlerInterceptor {
	
	@Override
	public void afterCompletion(HttpServletRequest httpRequest,
	   HttpServletResponse httpResponse, Object arg2, Exception arg3)
	   throws Exception {
	
	}
	
	@Override
	public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1,
	   Object arg2, ModelAndView arg3) throws Exception {       
	
	}
	
	@Override
	public boolean preHandle(HttpServletRequest request, HttpServletResponse response,
	   Object object) throws Exception {
	Object obj = request.getSession().getAttribute("user");
	if(obj==null){
	//请求的路径
	   String contextPath=request.getContextPath();
	   response.sendRedirect(contextPath + "/view/login.jsp");  
	   return false;
	}
	return true;
	
	}
}

 preHandle() 方法:该方法会在控制器方法(controller中的方法)调用前执行,其返回值表示是否中断后续操作。当其返回值为true时,表示继续向下执行;当其返回值为false时,会中断后续的所有操作(包括调用下一个拦截器和控制器类中的方法执行等)。
 postHandle()方法:该方法会在控制器方法(controller中的方法)调用之后,且解析视图之前执行。可以通过此方法对请求域中的模型和视图做出进一步的修改。
 afterCompletion()方法:该方法会在整个请求完成,即视图渲染结束之后执行。可以通过此方法实现一些资源清理、记录日志信息等工作。
拦截器的spring-servlet.xml配置

<mvc:interceptors>
	<mvc:interceptor>
	    <!-- 
		 /是web项目的根目录
         	/*是所有文件夹,不含子文件夹(一级目录)
         	/**的意思是所有文件夹及里面的子文件夹(多级目录)
	    -->
		<!-- /** 表示拦截所有请求 -->
		<!-- <mvc:mapping path="/**" /> -->
		<!-- /user/** 表示拦截/user/下的所有请求  /user/type/add.do-->
		<!-- <mvc:mapping path="/user/**" /> -->
		<!-- /item/* 表示拦截/item/下的请求  可以拦截/item/add.do  不可以拦截/item/type/add.do -->
		<!-- <mvc:mapping path="/item/*" /> -->
		<mvc:mapping path="/item/addCart.do" />
		<mvc:mapping path="/item/pay.do" />
		<!-- 不进行拦截 -->
		<!-- <mvc:exclude-mapping path="/index.html" /> -->
		<bean class="com.lq.interceptor.Login" />
	</mvc:interceptor>
</mvc:interceptors>
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值