当前位置:  编程技术>移动开发
本页文章导读:
    ▪spring治理的bean的生命周期        spring管理的bean的生命周期 注解配置中给对应的bean添加org.springframework.context.annotation.Scope注解//@Scope("singleton") // 容器范围//@Scope("prototype") //每次获取bean都new//@Scope("request") //一次http请求一.........
    ▪ 根据struts的FormFile来下传文件        根据struts的FormFile来上传文件 package com.score.web.action.picture; import java.io.File;import java.io.FileOutputStream;import java.io.InputStream;import java.io.OutputStream;import java.util.UUID; import javax.servlet.http.HttpServletRequest.........
    ▪ spring security3中取得用户信息和获得request对象       spring security3中获得用户信息和获得request对象 在自己实现的FilterInvocationSecurityMetadataSource接口的子类中的getAttributes(Object arg0)方法里javax.servlet.http.HttpServletRequest request = ((org.springframework.secur.........

[1]spring治理的bean的生命周期
    来源: 互联网  发布时间: 2014-02-18
spring管理的bean的生命周期
注解配置中给对应的bean添加org.springframework.context.annotation.Scope注解

//@Scope("singleton") // 容器范围
//@Scope("prototype") //每次获取bean都new
//@Scope("request") //一次http请求一个实例
//@Scope("session") //一个http session中
//@Scope("globalSession")// 一个全局session中有效
//@Scope("application") //application作用域中

//一下作用域需要配置web并在web.xml中配置org.springframework.web.context.request.RequestContextListener监听

不知道上面的监听是否是必须的,不过在spring mvc项目中可以不用加上面的监听也可以设置bean的生命周期


测试,可以直接打印出对应bean的对象地址查看是否一样

/**
*
* Specifies the scope to use for the annotated component/bean.
* @see ConfigurableBeanFactory#SCOPE_SINGLETON
* @see ConfigurableBeanFactory#SCOPE_PROTOTYPE
* @see org.springframework.web.context.WebApplicationContext#SCOPE_REQUEST
* @see org.springframework.web.context.WebApplicationContext#SCOPE_SESSION
* org.springframework.web.context.WebApplicationContext
*/

    
[2] 根据struts的FormFile来下传文件
    来源: 互联网  发布时间: 2014-02-18
根据struts的FormFile来上传文件

package com.score.web.action.picture;

import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.UUID;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.upload.FormFile;

import com.score.model.members.ScoreMembers;
import com.score.model.picture.ScorePhoto;
import com.score.service.exception.BeanAlreadyExistsException;
import com.score.service.picture.ScorePhotoManager;
import com.score.web.action.core.BaseAction;
import com.score.web.action.upload.UploadFileForm;

public class CreatePhotoAction extends BaseAction{
  public ActionForward execute(ActionMapping mapping, ActionForm actionForm,
    HttpServletRequest request, HttpServletResponse response) {
 
    UploadFileForm uploadForm = (UploadFileForm) actionForm;
    FormFile file = uploadForm.getFileForm();
    
    if(file.getContentType().equals("image/jpeg")){ //判断类型
     System.out.println("jpeg 类型");
    }else if(file.getContentType().equals("image/png")){
     System.out.println("png 类型");
    }else if(file.getContentType().equals("image/gif")){
     System.out.println("gif 类型");
    }else if(file.getContentType().equals("image/pjpeg")){
     System.out.println("jpg 类型");
    }else{
     System.out.println("不是图片!");
     request.setAttribute("errorFlag", "1");
     return mapping.findForward("listpicture");
    }
   
         if(file.getFileSize()>2097152){ //判断大小
     System.out.println("大于2M");
     request.getSession().setAttribute("errorFlag",2);
     return mapping.findForward("listpicture");
    }
    
    String uri = membersHead(request,file);
    request.setAttribute("uri", uri);
    
    ScorePhotoManager spm=(ScorePhotoManager)getBean("scorePhotoManager");
    ScorePhoto sp=new ScorePhoto();
    sp.setPhotoAddr(uri);
    try {
     spm.createScorePhoto(sp);
    } catch (BeanAlreadyExistsException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }
    request.getSession().setAttribute("errorFlag",1);
    return mapping.findForward("listpicture");
   }

//membersHead方法可以写到service层,然后调用,此处为方便理解,写在action中

//membersHead方法判断文件的大小和类型

  // 会员资料文件
  public String membersHead(HttpServletRequest request,FormFile file) {
   String uri = "";
   String dir = servlet.getServletContext().getRealPath("/upload");
   // 文件夹
   File dirFile = null;
   boolean bFile = false;
   dirFile = new File(dir);
   bFile = dirFile.exists();// true 该文件夹存在,false 不存在
   if (bFile == false) {
    bFile = dirFile.mkdirs();
    if (bFile == false) {
     System.out.println(" 文件夹创建失败!");
    }
   }

   if (bFile == true) {
    try {

     InputStream input = file.getInputStream();// 能从FormFile中获得输入流
     String uid = UUID.randomUUID().toString();
     String fileName = file.getFileName();
     fileName = uid + fileName.substring(fileName.lastIndexOf("."));
     OutputStream output = new FileOutputStream(dir + "/" + fileName);

     int bytesReader = 0;

     byte[] readbuffer = new byte[102400];

     while ((bytesReader = input.read(readbuffer, 0, 102400)) != -1) {

      output.write(readbuffer, 0, bytesReader);

     }
     output.close();
     String protco = request.getProtocol().substring(0,
       request.getProtocol().indexOf("/"));
     String webPath = protco + "://" + request.getServerName() + ":"
       + request.getServerPort();
     // 资料路径
     uri = webPath + "/upload/"+ fileName;

    } catch (Exception e) {
     e.printStackTrace();
    }
   }
   return uri;
   

  }
  
 }
附:

/**
 * 所要上传的文件的Form
 * @author UploadFileForm 
 * @version $Revision: $ $Date: $
 */
public class UploadFileForm extends BaseForm implements java.io.Serializable{
 
 private FormFile file;

 public FormFile getFile() {
  return file;
 }

 public void setFile(FormFile file) {
  this.file = file;
 }

}


    
[3] spring security3中取得用户信息和获得request对象
    来源: 互联网  发布时间: 2014-02-18
spring security3中获得用户信息和获得request对象
在自己实现的FilterInvocationSecurityMetadataSource接口的子类中的
getAttributes(Object arg0)方法里
javax.servlet.http.HttpServletRequest
request = ((org.springframework.security.web.FilterInvocation
)arg0).getRequest();
可以获得request对象

org.springframework.security.core.Authentication
auth = org.springframework.security.core.context.SecurityContextHolder.getContext().getAuthentication();

但是这里只是获取了用户的简单信息,获取更多信息应该得自己组织



-------------------------没有试过,别人说的
jsp页面中用security标签可以获得用户名
<sec:authentication property="name"></sec:authentication> 

request对象可以获得用户信息
request.getUserPrincipal().getName();

    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3