登录功能的完善 请求行(有七个) 浏览器下载指定图片 上传文件到 out 目录 两个响应体的写方法

 

登录功能的完善

数据库插入数据
登录功能的完善 请求行(有七个) 浏览器下载指定图片 上传文件到 out 目录 两个响应体的写方法_第1张图片

servlet


import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;

public class UploadServlet extends HttpServlet {

//    上传文件 到 out 目录
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        try {
            String path = req.getServletContext().getRealPath("WEB-INF/upload"); // 获取到保存的路径
            File file = new File(path);
            if (!file.exists()){
                 file.mkdirs();  //如果不存在,则创建
            }  //file.mkdirs(); 可以创建子父目录
            boolean flag = ServletFileUpload.isMultipartContent(req);
            //如果 返回值是true 表示是文件的格式进行上传
            //如果返回值是false 表示不是文件的格式进行上传  返回错误
            if (flag){
                FileItemFactory factory = new DiskFileItemFactory(); //得到核心工厂对象
                ServletFileUpload sfu = new ServletFileUpload(factory);  //得到文件上传的核心对象
                List fileItemslist = sfu.parseRequest(req);  //得到form表单中 input 标签中的所有的条目
                Iterator iterator = fileItemslist.iterator();  //转换迭代器来进行遍历

                while (iterator.hasNext()){
                    FileItem fileItem = iterator.next();  //获取具体的条目 FileItem

                if(fileItem.isFormField())  //true 是普通的文本  false  是文件
                {
                    //是文本,则不处理
                }else {
                    String filename = fileItem.getName();  //获取到文件的名字
                    File newfile = new File(file,filename);  //构建一个新的文件对象
                    fileItem.write(newfile);  //写入的方法
                }
                }
            }else {
                System.out.println("不是文件上传");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

register2




    
    Title



注册小米账号

姓名:
性别:
所在地区:
密码:
上传头像:

注册账号即表示您同意并愿意准守小米用户协议和隐私政策

dao


import com.mchange.v2.c3p0.ComboPooledDataSource;
import com.offcn.dao.UserDao;
import com.offcn.entity.User;
import org.apache.commons.dbutils.QueryRunner;

import javax.sql.DataSource;
import java.sql.SQLException;

public class UserDaoImpl implements UserDao {
    private DataSource ds  = new ComboPooledDataSource();
    private QueryRunner qr  = new QueryRunner(ds);


    @Override
    public int insertUser(User user) {
        int num= 0;
        try {
            String sql ="insert into user(uname,upwd,usex,uregion,ufile)values(?,?,?,?,?)";
            Object[] objects={user.getUname(),user.getUpwd(),user.getUsex(),user.getUregion(),user.getUfile()};

            num = qr.update(sql,objects);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return num;
    }
}

service


import com.offcn.dao.UserDao;
import com.offcn.dao.impl.UserDaoImpl;
import com.offcn.entity.User;
import com.offcn.service.UserSerivce;

public class UserSerivceImpl implements UserSerivce {
    private UserDao userDao = new UserDaoImpl();

    @Override
    public int insertUser(User user) {
        return userDao.insertUser(user);
    }
}

实体类


import java.io.Serializable;

public class User implements Serializable {
    private int uid;
    private String uname;
    private String  upwd;
    private String usex;
    private String uregion;
    private String ufile;

    @Override
    public String toString() {
        return "User{" +
                "uid=" + uid +
                ", uname='" + uname + '\'' +
                ", upwd='" + upwd + '\'' +
                ", usex='" + usex + '\'' +
                ", uregion='" + uregion + '\'' +
                ", ufile='" + ufile + '\'' +
                '}';
    }

    public int getUid() {
        return uid;
    }

    public void setUid(int uid) {
        this.uid = uid;
    }

    public String getUname() {
        return uname;
    }

    public void setUname(String uname) {
        this.uname = uname;
    }

    public String getUpwd() {
        return upwd;
    }

    public void setUpwd(String upwd) {
        this.upwd = upwd;
    }

    public String getUsex() {
        return usex;
    }

    public void setUsex(String usex) {
        this.usex = usex;
    }

    public String getUregion() {
        return uregion;
    }

    public void setUregion(String uregion) {
        this.uregion = uregion;
    }

    public String getUfile() {
        return ufile;
    }

    public void setUfile(String ufile) {
        this.ufile = ufile;
    }

    public User(int uid, String uname, String upwd, String usex, String uregion, String ufile) {
        this.uid = uid;
        this.uname = uname;
        this.upwd = upwd;
        this.usex = usex;
        this.uregion = uregion;
        this.ufile = ufile;
    }

    public User() {
    }
}

service接口




public interface UserSerivce {
    int insertUser(User user);
}

xml


    
        servletqq
        com.offcn.servlet.Servlet123
    
    
        servletqq
        /servlet123
    

 

请求体——有七个


import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class RequestDemoServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//        请求行——有七个
//        String sc = req.getScheme();
//        String ser = req.getContextPath();
//        String path = req.getContextPath();
//        String  mwthod = req.getMethod();
//        String query = req.getQueryString();
//        String uri = req.getRequestURI();
//        String name = req.getServerName();
//        System.out.println(sc); // http  获取协议
//        System.out.println(ser); // /day10_war_exploded  请求路径
//        System.out.println(path); // /day10_war_exploded  获取项目名称
//        System.out.println(mwthod); // GET  请求的方式
//        System.out.println(query); // null  拼凑的方式
//        System.out.println(uri); // /day10_war_exploded/requestDemoServlet  项目名加访问路径
//        System.out.println(name); //localhost  获取 ip 或者 域名

//        请求头
        String sc = req.getHeader("host");

//        EnumConstant enumConstant = req.getHeaderNames();
//        String key = enumConstant.nextElment;


        String path = req.getContextPath();
        String  mwthod = req.getMethod();
        String query = req.getQueryString();
        String uri = req.getRequestURI();
        String name = req.getServerName();

        System.out.println(sc); //

    }
}

 

浏览器下载指定图片


import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
//下载指定图片
public class UserServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        String filename =  req.getParameter("filename");
//a 标签获取方式相同
        resp.setHeader("Content-Disposition","attachment;fileName="+filename);
//设置头格式,下载的方式打开
        InputStream is = req.getServletContext().getResourceAsStream("WEB-INF/upload/1.jpg");
//图片转换成流对象
        ServletOutputStream sos = resp.getOutputStream();
//文件读写操作
        byte[] b = new byte[1024];
        int leng = -1;
        while ((leng=is.read(b))!=-1){
            sos.write(b,0,leng);
        }
//读写操作
            sos.close();
            is.close();
    }
}

 

上传文件到 out 目录


import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;

public class UploadServlet extends HttpServlet {

//    上传文件 到 out 目录
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        try {
            String path = req.getServletContext().getRealPath("WEB-INF/upload"); // 获取到保存的路径
            File file = new File(path);
            if (!file.exists()){
                 file.mkdirs();  //如果不存在,则创建
            }  //file.mkdirs(); 可以创建子父目录
            boolean flag = ServletFileUpload.isMultipartContent(req);
            //如果 返回值是true 表示是文件的格式进行上传
            //如果返回值是false 表示不是文件的格式进行上传  返回错误
            if (flag){
                FileItemFactory factory = new DiskFileItemFactory(); //得到核心工厂对象
                ServletFileUpload sfu = new ServletFileUpload(factory);  //得到文件上传的核心对象
                List fileItemslist = sfu.parseRequest(req);  //得到form表单中 input 标签中的所有的条目
                Iterator iterator = fileItemslist.iterator();  //转换迭代器来进行遍历

                while (iterator.hasNext()){
                    FileItem fileItem = iterator.next();  //获取具体的条目 FileItem

                if(fileItem.isFormField())  //true 是普通的文本  false  是文件
                {
                    //是文本,则不处理
                }else {
                    String filename = fileItem.getName();  //获取到文件的名字
                    File newfile = new File(file,filename);  //构建一个新的文件对象
                    fileItem.write(newfile);  //写入的方法
                }
                }
            }else {
                System.out.println("不是文件上传");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

 

两个响应体的写方法


import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

public class TableServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//        两种方式的使用
//        ServletOutputStream sos =  resp.getOutputStream();
//        sos.write("admin".getBytes());
//        sos.write("你好".getBytes());
////两个同时运行,会显示 ServletOutputStream ,getWriter 却不显示
//        PrintWriter pw =  resp.getWriter();
//        pw.write("admin");
//        pw.write("我很好");

//        写一个表格
        PrintWriter pw =  resp.getWriter();
        pw.write("");
        pw.write("");
        pw.write("");
        pw.write("");
        pw.write("");

        pw.write("");
        pw.write("");
        pw.write("");
        pw.write("");

        pw.write("");
        pw.write("");
        pw.write("");
        pw.write("");
        pw.write("
"); pw.write("bianhao"); pw.write(""); pw.write("xingming"); pw.write("
"); pw.write("1"); pw.write(""); pw.write("zhangsan"); pw.write("
"); pw.write("2"); pw.write(""); pw.write("lisi"); pw.write("
"); } }

 

你可能感兴趣的:(登录功能的完善 请求行(有七个) 浏览器下载指定图片 上传文件到 out 目录 两个响应体的写方法)