首先
pom.xml引入依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<packaging>war</packaging>
<groupId>com.bw</groupId>
<artifactId>exe_servlet_12.25</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<!-- mysql -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
<!-- servlet -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<!-- 指定端口 -->
<port>8080</port>
<!-- 请求路径 -->
<path>/</path>
</configuration>
</plugin>
</plugins>
</build>
</project>
这个是项目的一个分布
web.xml
导servlet
里面有路径
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<servlet>
<servlet-name>exe_servlet_12.25</servlet-name>
<servlet-class>com.bw.servlet.DemoServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>exe_servlet_12.25</servlet-name>
<url-pattern>/demoServlet</url-pattern>
</servlet-mapping>
</web-app>
demoServlet class类里面
继承 HttpServlet
实现里面的方法
doPost() doGet() init() destory()
//声明一个变量
PrintWriter printWriter = resp.getWriter();
printWriter.print("Hello word!!!");
这个是用来打印在浏览器上面的
这个是上传文件导进去的依赖
pom.xml
<!--fileUpdate -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
添加页面
<form action="/addServlet" method="post" enctype="multipart/form-data">
Addservlet
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String name = null;
String sex= null;
String photo = null;
String birthDate = null;
//获取需要存储的路径
String path = req.getSession().getServletContext().getRealPath("img");
System.out.print("绝对路径:"+path);
//判断 是否是 multifile 返回布尔
boolean content = ServletFileUpload.isMultipartContent(req);
if(content){
try{
//1.创建一个DisFileItemFactory工厂
DiskFileItemFactory factory = new DiskFileItemFactory();
//2.创建一个文件解析器
ServletFileUpload upload = new ServletFileUpload(factory);
//3.解决上传文件的乱码
upload.setHeaderEncoding("utf-8");
//4.使用ServletFileUpload解析上传文件上传的文件,
//解析结果返回List<FileItem> 集合 每一个FileItem 对应一个form表单的输入项
List<FileItem> list = upload.parseRequest(req);
//遍历list里面的数据
Iterator<FileItem> iterator = list.iterator();
//一个一个遍历循环
while(iterator.hasNext()){
// FileItem 指的是上传的文件
FileItem item = iterator.next();
//fieldName 上传属性的名字
String fieldName = item.getFieldName();
//然后让这个 fileNmae 属性名字与form表单里面的互相比较
//if 判断 相当于 一个是键 一个是值
if("name".equals(fieldName)){
//以防乱码
name = item.getString("utf-8");
}
if("sex".equals(fieldName)){
sex = item.getString("utf-8");
}
if("file".equals(fieldName)){
//获取上传文件的名称
String fileName = item.getName();
//截取
String fileLastName = fileName.substring(fileName.lastIndexOf("."));
System.out.print("截取的名字:"+fileLastName);
//新文件的名字在
fileName = UUID.randomUUID().toString()+fileLastName;
System.out.print("新的名字:"+fileName);
//数据保存的路径
photo ="/img"+"/"+fileName;
System.out.print("文件总路径:"+photo);
//获取上传文件的输入流
InputStream in = item.getInputStream();
//创建一个文件输出流
FileOutputStream out = new FileOutputStream(path + "/" + fileName);
//创建一个缓冲区
byte buffer[] = new byte[1024];
//判断输入流的数据是否已经读完的 标识
int len = 0;
//循环将输入流读入到缓冲区里面len >0 标识还有数据
while((len = in.read(buffer))>0){
out.write(buffer,0,len);
}
in.close();
out.close();
}
if("birthDate".equals(fieldName)){
birthDate = item.getString("utf-8");
}
}
String sql =" insert into Student values(null,'"+name+"','"+photo+"','"+sex+"','"+birthDate+"')";
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql:///linux", "root", "root");
PreparedStatement pre = con.prepareStatement(sql);
pre.executeUpdate();
resp.sendRedirect("/listServlet");
}catch (Exception e){
e.printStackTrace();
}
}
}