标签:utils and 文件夹 content 简单的 nfa Servle load() eal
简单的整合一下struts2+mybatis,此文主要写给自己看
public class SessionUtil { //获得session工厂 private static SqlSessionFactory factory = null; //定义一个ThreadLocal存放session private static ThreadLocal<SqlSession> threadLocal = new ThreadLocal<>(); static{ try { //根据配置文件创建工厂 InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml"); factory = new SqlSessionFactoryBuilder().build(inputStream); } catch (Exception e) { e.printStackTrace(); } } //编写方法,获取session,通过判断,一定得到线程中的session public static SqlSession getSession() { //1.从当前线程中获取session SqlSession session = threadLocal.get(); if (session==null) { session = factory.openSession(); threadLocal.set(session);//绑定到当前线程上 } //2.返回session return session; } //从当前线程移除session public static void close() { SqlSession session = threadLocal.get(); if (session!=null) { threadLocal.remove(); session.close(); } } }
配置struts中的拦截器,其作用类似于servlet的过滤器,
<!-- 配置拦截器 --> <interceptors> <!-- 1.配置自己的拦截器 --> <interceptor name="timeInterceptor" class="com.woniuxy.interceptor.CustomInterceptor"></interceptor> <!-- 2.配置自己的拦截器栈 --> <interceptor-stack name="myStack"> <!-- 2.1引用struts的默认拦截器栈 --> <interceptor-ref name="defaultStack"></interceptor-ref> <!-- 2.2引用自己的拦截器 --> <interceptor-ref name="timeInterceptor"></interceptor-ref> </interceptor-stack> </interceptors>
上传文件
<form action="file_upload" enctype="multipart/form-data" method="post"> <input type="file" name="abc"><br> <input type="submit" value="上传"> </form>
public class FileUploadAction { private File abc; //保存文件 private String abcContentType; //文件类型 private String abcFileName; //文件名 private Account account; private AccountDao accountService = new AccountService(); public File getAbc() { return abc; } public void setAbc(File abc) { this.abc = abc; } public String getAbcContentType() { return abcContentType; } public void setAbcContentType(String abcContentType) { this.abcContentType = abcContentType; } public String getAbcFileName() { return abcFileName; } public void setAbcFileName(String abcFileName) { this.abcFileName = abcFileName; } public Account getAccount() { return account; } public void setAccount(Account account) { this.account = account; } //处理请求的方法 public String upload() { System.out.println(abc); System.out.println(abcContentType); System.out.println(abcFileName); //1.将文件存放到服务器指定的文件夹 //1.1.获取文件夹的路径 String path = ServletActionContext.getServletContext().getRealPath(""); File root = new File(path); File webapps = root.getParentFile(); //1.2.获取images的File File images = new File(webapps, "images"); if (!images.exists()) { images.mkdirs(); } //1.3.新文件 String fileName = UUID.randomUUID().toString()+abcFileName.substring(abcFileName.lastIndexOf(".")); File newFile = new File(images, fileName); //1.4.存放文件 try { FileUtils.copyFile(abc, newFile); //将文件路径存放到数据库中 String newPath = "/images/"+fileName; //调用service向对应的表、记录中更新数据数据 account.setHeadImg(newPath); accountService.addAccount(account); } catch (IOException e) { e.printStackTrace(); } System.out.println(path); return "success"; } }
<!-- 文件上传 --> <action name="file_*" class="com.woniuxy.action.FileUploadAction" method="{1}"> <result name="success">html/success.html</result> </action>
标签:utils and 文件夹 content 简单的 nfa Servle load() eal
原文地址:https://www.cnblogs.com/harrypotterformhogwarts/p/10917762.html