Skip to main content

File upload Servlet/JSP

I want to start my first Spring project, and found I can not skip its initializr. (Of course not!) I'm too lazy to open ftp port. Therefore I created a file-upload page to receive initializr I downloaded. (I may have a different definition of time....) 
 
I usually don’t use IDE while experimenting/learning on my PC. So I made a video showing how I complete my work. It’s very much like looking up dictionaries. When hired by companies, they usually provide great IDE. Or some definitely need specialized IDE, i.e. developing Wii or 3DS. 
 
I created two versions in this video. One referred to Oracle’s example, the other referred to Apache’s explanation. It seems since Servlet 3.0, the maintenance switched to Apache. And the library,  Apache Common FileUpload is very much simplified, compared to the previous sample. 
 

BootStrap 

Here I used BootStrap contempt to design the form. It is a mobile-first design. Roughly speaking…. I’d say it designs the screen by percentage; Bootstrap also refers to real-world measurement to prevent too small content. I wrote a tool to assist my current work and the inconvenience of real-pixel is really troublesome. Previously I was not learning WordPress, but learning BootStrap. I’m mainly a backend developer, and do think an artist might be a better frontend designer. I still need to know what is popular at frontend. 




After copy the frame template, move on to its layout, content, components to dig out the objects I wanted to use. 

Servlet Oracle version

Then I created Uploading File servlet/html functionality from Oracle's tutorial. The full code seems in Oracle's IDE. I spent much time to figure out what is not on the page and finally get a working version. But, during resolving these problems, I learned this is already out-of-date. 


The Java EE 6 Tutorial: The fileupload Example Application

It's not "Java 6" that out-of-date. There is no newer documentation for Servlet. About 2019, Apache published Servlet 3.1.0. Some 3.0 member functions and classes disappeared. This might be a decisive change, since I couldn't successfully compile other tutorial's examples, and I don't know which ancient version of Java I should use. Maven helps a lot. But I don't want to bother.... 



Maven

I used maven to help me on compiling and running this Servlet. mvnReposity is Great!!! 


Servlet Apache Common FileUpload


After went though the previous torture(???),  Apache designed Form submission and file upload like an art! 

What happened to the previous design?! How come a developer needs layers of supports just to get a MFC template done?! .... All right, its my bad to mention things irrelevant. I do suggest MS create better structure to let developers get rid of its own IDE. I like MS because I'm have been a PC Gamer for my entire life. I don't believe that Linux can replace this no matter how powerful it gets. Mobile game will do? Maybe, but not on Linux terminal. 

Like the main character in God of War's motto: "Don't be sorry, be better."
(Oops! it's from PS!)(I never have a PS yet .....) 

From User's Guide, you can see the design is intuitive. Handle one object and retrieve its name, its value, its content, etc. 

Apache Common : FileUpload user's guide


Comments

Popular posts from this blog

Bookmark service (MongoDB & Spring REST) -2/2

    I accidentally deleted my development VM. I got lucky having the habit of taking notes. This blog is useful. Development VM is doom to be lost. Rebuild it waste time, but having a clean slate is refreshing~. What concerns me more is my AWS free quota this month is reaching 85%. The second VM I launched but never being used might be the one to blame. (Of course, my mistake.) I terminated the wrong VM. Now I got Linux 2 built. Great, just threw away everything happened on AMI.  1st layer: Page Page class   Originally, I need to prepare getter/setter for all class properties for Spring. By using lombok, I only need to create constructors. lombok will deal with getter/setter and toString(). But there are chances to call getter/setter, but how? .......Naming convention.... Capitalize the 1st character with the prefix get/set.  Annotation @Data was used on this class.  Repository class Spring Docs: Repository https://docs.spring.io/spring-data/mongodb/docs/3....

Guide to Preserving HuggingFace Models in Google Colab Environments

Conclusion:  Step 1:  find the model path: ls ~/.cache  Step 2:  Copy the entire folder to Google Drive:  Step 3:  Set model path to the subfolder under snapshot: My Story: I initially began exploring Generative AI (GAI) and Google Colab through Stable Diffusion. In the past, as I mainly wrote server services and console applications, I was less familiar with data science modes like R and Jupyter that can maintain a paused state. I didn't quite understand the heavy burden on Colab of creating a temporary Stable Diffusion WebUI with .ipynb, as suggested by popular guides. I just found it troublesome that connections often took a long time and then dropped, requiring a restart. Recently, while testing new versions of the Stable Diffusion model, and facing challenges due to Colab's policies making various versions of WebUI difficult to run successfully, I started researching how to write my own test programs in Colab. Eventually, I understood that Colab is ess...

Setup Maven and two basic projects

    The interesting implementation of Java I proceed to is Spring. And, only getting Java running is not enough. I also need to set up Maven. This name is new to me, and I found many Spring tutorials just skip this part. At least I need Maven to generate templates for me. I should learn it more. ( I knew there is a great tool -- Eclipse -- can make tedious things disappear. I’m taking a strategy to install all experiments I want to try and throw away when it's full. And that's an external VM, not my PC. I, not yet, want to do research about installing Eclipse on AMI. )    Upgrade to Java 8     First is to upgrade Java on AMI to Java8. AWS provides advanced tools for Linux 2. And DIY for Linux2. At least there are solutions for my choice.  Amazon Corretto 8 Installation Instructions for Amazon Linux 2 https://docs.aws.amazon.com/corretto/latest/corretto-8-ug/amazon-linux-install.html Here are commands I used: >wget */amazon-corretto-8-x64-linux-jdk.d...