java_day25_UUID,封装上传,jsp
Posted 北冥丶中郎将
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java_day25_UUID,封装上传,jsp相关的知识,希望对你有一定的参考价值。
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的主要内容,如果未能解决你的问题,请参考以下文章
java_day30_javaWeb三大组件之过滤器Filter