网址路径
相对路径:
.
..
资源地址:当前目录下的文件
注意:相对于浏览器地址栏中的地址
绝对路径:
/
/的含义:
/在浏览器中的解释:http://ip:端口
/在服务器中的解释:http://ip:端口/项目路径
特殊请求:重定向中/表示的含义http://ip:端口
文件上传
作用: 将客户端文件传递到服务器端
前端:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>注册</title>
</head>
<body>
<div id="content">
<form action="regist" method="post" enctype="multipart/formdata">
<h3>注册</h3>
<p>
账号:<input type="text" placeholder="请输入账号"
name="usn"/>
</p>
<p>
密码:<input type="password" placeholder="请输入密码"
name="psw"/>
</p>
<p>
昵称:<input type="text" placeholder="请输入昵称"
name="name"/>
</p>
<p>
性别:
<input type="radio" value="男" name="sex"/>男
<input type="radio" value="女" name="sex"/>女
</p>
<p>
年龄:<input type="number" placeholder="请输入年龄"
name="age"/>
</p>
<p>
头像:<input type="file" name="img"/>
</p>
<input type="submit" value="注册"/>
</form>
</div>
</body>
</html>
后端:
package com.test.demo02;
import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;
import java.io.IOException;
@WebServlet("/regist")
@MultipartConfig
public class RegistServlet extends HttpServlet {
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
doGet(request,response);
}
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
String usn = request.getParameter("usn");
String psw = request.getParameter("psw");
String name = request.getParameter("name");
String sex = request.getParameter("sex");
String age = request.getParameter("age");
Part part = request.getPart("img");
String info = part.getHeader("Content-Disposition");
System.out.println(info);
int start = info.lastIndexOf(".");
int end = info.lastIndexOf("\"");
String hz = info.substring(start, end);
System.out.println(hz);
String fileName = usn+hz;
System.out.println(fileName);
String realPath = getServletContext().getRealPath("/files");
System.out.println("服务器绝对路径"+realPath);
夹
String savePath = realPath + "\\" + fileName;
System.out.println(savePath);
part.write(savePath);
}
}
文件下载
前端:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>获取图片</title>
</head>
<body>
<img src="getImg?img=zxc.jpg" style="width:200px;">
</body>
</html>
后端:
package com.test.demo03;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.FileInputStream;
import java.io.IOException;
@WebServlet("/getImg")
public class GetImgServlet extends HttpServlet {
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
doGet(request,response);
}
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
String img = request.getParameter("img");
response.setContentType("application/image");
response.setHeader("ContentDisposition","attachment;fileName="+img);
ServletOutputStream os = response.getOutputStream();
String realPath = getServletContext().getRealPath("/files");
String imgpath = realPath + "\\"+img;
FileInputStream is = new FileInputStream(imgpath);
byte[] b = new byte[1024];
int len = 0;
while((len = is.read(b)) != -1){
os.write(b,0,len);
}
os.flush();
os.close();
}
}