码迷,mamicode.com
首页 > 编程语言 > 详细

java_day25_UUID,封装上传,jsp

时间:2018-05-15 22:50:14      阅读:236      评论:0      收藏:0      [点我收藏+]

标签:return   hash   val   str   setfile   创建文件   cto   parser   不为   

jsp和上传的封装

一.jsp的简介

  1.jsp是java server pages允许在页面中使用java作为脚本语言动态生成html代码

  2.jsp首先和html的区别,html可以直接放在浏览器中执行但是jsp必须把tomcat启动起来才能看到效果

  3.组成部分:1.静态内容;2.指令;3.表达式;4.脚本;5.声明;6.注释

    3.1注释:jsp有html使用的注释,java使用的注释,和自己的注释

       第一种:跟html注释一样,此注释是第一种,在客户端可以看见

       第二种jsp注释,在客户端看不见,在编译时,会被擦除<%--注释-->

       第三种是标准java注释,这种注释只能写在jsp脚本中 //注释 ; /*注释*/

    3.2指令:jsp页面可以在最上方加入当前页面的配置等信息叫做jsp指令

       page指令:当前页面的配置信息,最为常用

       include:在一个页面中,将另一个文件嵌入其中

       taglib:引入标签库

    3.3脚本:<%--jsp脚本--%>可以写任何java代码,但是不能够定义方法,全局变量.所有的jsp脚本,都会和html代码混合复制进_jspService方法中.

    3.4静态内容:所有被写在jsp文件中的没有被任何jsp标签包裹的,就是静态内容,即,所有的html代码,都是静态内容

    3.5声明:用来写自定义方法,成员变量的

    3.6表达式:是在html代码中,是为了使用声明中定义的全局变量,或脚本中定义的局部变量而存在的即表达式是没有复杂逻辑,只能取值使用

二.上传的封装

  public class SmartUpload {

    private HttpServlet servlet;//

    private ServletFileUpload sfu;//用于上传的全局变量

    private File uploadDir;//用来创建上传文件的文件夹

    private HashMap<String,String> parameters;//用来存储普通表单数据

    private HashMap<String,File> files;//用来存储上传文件的文件名和文件

    

    public SmartUpload(HttpServlet httpServlet){

      this.servlet = httpServlet ; //构造方法,用来操作使用此轮子的servlet对象

      inintDir();//初始化上传文件夹

      sfu = new ServletFileUpload();// 

      sfu.setFileItemFactory(new DiskFileItemFactory());//初始化servletFileUpload

      parameters = new HashMap<>();//初始化对象

      files = new HashMap<>(); //初始化对象}

    private void initDir(){

      String uploadPath = servlet.getServletContext().getRealPath("")+File.separator+"upload";//拼接上传文件路径

      uploadDir = new File(uploadPath); //通过拼接路径创建File对象

      if(!uploadDir.exists()){  //判断文件夹是都存在

        uploadDir.mkdirs();} //不存在则创建文件夹    

    public void parse(HttpServletRequest request){  //解析request

      List<FileItem> fileItems = sfu.parseRequest(request);//解析request放入List中

      if(fileItems != null){  //判断不为空

       for(FileItem fileItem : fileItems){//遍历List

        if(fileItem.isFormField()){ //判断是否为表单数据

          String key = fileItem.getFieldName();//获取key

          String value = fileItem.getString("utf-8");//获取value

          parameter.put(key,value);//存入hashMap中

        }else { //不是表单数据

          String fileName = fileItem.getName();//获取文件名

          if(StringUtils.isEmpty(fileName)){ //引用是apache下的包

            continue;}

          String realName = TestUUID.handFileName(fileName);//利用UUID生成新的文件名

          File file = new File(uploadDir,realName);//通过文件夹和文件名创建文件

          fileItem.write(file);//写文件

          files.put(fileName,file);//将文件名和file对象存入hashMap

      public String getParameter(String key){

        return parameter.get(key);}

      public Map<String,String> getParameterMap(){

        return parameters;}

      public Map<String,File> getUploadFiles(){

        return files;}

三.request域

   向request域中放值,值以key-value的形式存放,key只能是String,value可以是任何对象

   存值:request.setAttribute("msg",msg);//键值对形式存放

   取值:request.getAttribute("msg");//通过key取value

 

 

 

java_day25_UUID,封装上传,jsp

标签:return   hash   val   str   setfile   创建文件   cto   parser   不为   

原文地址:https://www.cnblogs.com/memo-song/p/9042799.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!