登录功能的完善
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("bianhao");
pw.write(" ");
pw.write("");
pw.write("xingming");
pw.write(" ");
pw.write(" ");
pw.write("");
pw.write("");
pw.write("1");
pw.write(" ");
pw.write("");
pw.write("zhangsan");
pw.write(" ");
pw.write(" ");
pw.write("");
pw.write("");
pw.write("2");
pw.write(" ");
pw.write("");
pw.write("lisi");
pw.write(" ");
pw.write(" ");
pw.write("
");
}
}