使用Servlet实现的包括文件上传的用户管理系统

        终于把之前的项目算是写完了,不过因为逻辑十分简单,就简单的使用了JSP+JavaBean的开发方式,但是也深深感觉到自己的servlet学的什么也不是,所以决定写一个非常简单的用户管理的小项目来练手;也算是对于新的IDE的熟悉过程,下面是代码,实时更新

        先写实体类Users:

package com.test.entity;

/**
 * Created by lenovo on 2016/9/14.
 */
public class Users {
    private int id;
    private String username;
    private String password;
    private String content;
    private String photo;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    public String getPhoto() {
        return photo;
    }

    public void setPhoto(String photo) {
        this.photo = photo;
    }
}

    servlet代码:

package com.test.controller;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;

import com.jspsmart.upload.File;
import com.jspsmart.upload.SmartUpload;
import com.jspsmart.upload.SmartUploadException;
import com.test.dao.UsersDao;
import com.test.entity.Users;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.jsp.JspFactory;
import javax.servlet.jsp.PageContext;

import static java.lang.System.out;

/**
 * Created by sjz on 2016/9/14.
 */
public class UsersServlet extends javax.servlet.http.HttpServlet {
    protected void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
        doGet(request,response);
    }

    protected void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
        request.setCharacterEncoding("UTF-8");
        response.setCharacterEncoding("UTF-8");
        String method = request.getParameter("method");
        out.println(method);
        switch (method){
            case "insert" :
                insert(request,response);
                break;
            case "delete" :
                delete(request,response);
                break;
            case "toUpdate":
                int id3 = Integer.parseInt(request.getParameter("id"));
                Users user3 = UsersDao.selectById(id3);
                request.setAttribute("user",user3);
                request.getRequestDispatcher("../show.jsp").forward(request,response);
            case "update" :
                System.out.println(request.getPart("id")+"aaaa");
                int id = Integer.parseInt(request.getParameter("id"));
                update(request,response,id);
                break;
            case "select" :
                //select(request,response);
                int id2 = Integer.parseInt(request.getParameter("id"));
                Users user2 = UsersDao.selectById(id2);
                request.setAttribute("user",user2);
                request.getRequestDispatcher("../show.jsp").forward(request,response);
                break;
            case "list" :
                //list(request,response);\
                List<Users> list = UsersDao.select();
                request.setAttribute("list",list);
                request.getRequestDispatcher("../list.jsp").forward(request,response);
                break;
        }
    }



    private void insert(HttpServletRequest request, HttpServletResponse response) {
        SmartUpload su = new SmartUpload();
        JspFactory _jspxFactory = null;
        PageContext pageContext = null;
        _jspxFactory = JspFactory.getDefaultFactory();
        pageContext = _jspxFactory.getPageContext(this,request,response,"",true,8192,true);
        try {
            su.initialize(pageContext);
            su.upload();
            PrintWriter out = response.getWriter();
            out.println("上传" + su.save("picture") + "个文件成功!!!"+"<br>");
            String username = su.getRequest().getParameter("username");
            String password = su.getRequest().getParameter("password");
            String content = su.getRequest().getParameter("content");
            File file = su.getFiles().getFile(0);
            if (file.isMissing())
                System.out.println("未选择文件");
            String photo = file.getFileName();
            String path = "/picture";
            path = path + "/" + photo;
            file.saveAs(path, SmartUpload.SAVE_VIRTUAL);
            System.out.println(photo);
            Users user = new Users();
            user.setUsername(username);
            user.setPassword(password);
            user.setContent(content);
            user.setPhoto(photo);
            if(UsersDao.insert(user)){
                out.println("成功");
                response.setHeader("refresh", "3;UsersServlet?method=list");
            } else{
                out.println("失败");
                response.setHeader("refresh", "3;UsersServlet?method=insert");
            }
        } catch (ServletException e) {
            e.printStackTrace();
        } catch (SmartUploadException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    private void delete(HttpServletRequest request, HttpServletResponse response) {
        int id = Integer.parseInt(request.getParameter("id"));
        try{
            if(UsersDao.delete(id)){
                out.println("成功");
                request.getRequestDispatcher("UsersServlet?method=list").forward(request,response);
            } else{
                out.println("失败");
                request.getRequestDispatcher("../list.jsp").forward(request,response);
            }
        } catch (ServletException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    private void update(HttpServletRequest request, HttpServletResponse response, int id) {
        SmartUpload su = new SmartUpload();
        JspFactory _jspxFactory = null;
        PageContext pageContext = null;
        _jspxFactory = JspFactory.getDefaultFactory();
        pageContext = _jspxFactory.getPageContext(this,request,response,"",true,8192,true);
        try {
            su.initialize(pageContext);
            su.upload();
            PrintWriter out = response.getWriter();
            out.println("上传" + su.save("picture") + "个文件成功!!!"+"<br>");
            String username = su.getRequest().getParameter("username");
            String password = su.getRequest().getParameter("password");
            String content = su.getRequest().getParameter("content");
            File file = su.getFiles().getFile(0);
            if (file.isMissing())
                System.out.println("未选择文件");
            String photo = file.getFileName();
            String path = "/picture";
            path = path + "/" + photo;
            file.saveAs(path, SmartUpload.SAVE_VIRTUAL);
            System.out.println(photo);
            Users user = new Users();
            user.setUsername(username);
            user.setPassword(password);
            user.setContent(content);
            user.setPhoto(photo);
            if(UsersDao.update(user,id)){
                out.println("成功");
                response.setHeader("refresh", "3;UsersServlet?method=list");
            } else{
                out.println("失败");
                response.setHeader("refresh", "3;UsersServlet?method=insert");
            }
        } catch (ServletException e) {
            e.printStackTrace();
        } catch (SmartUploadException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    private void select(HttpServletRequest request, HttpServletResponse response) {
    }

    private void list(HttpServletRequest request, HttpServletResponse response) {
    }

}

         add.jsp:

<%--
  Created by IntelliJ IDEA.
  User: lenovo
  Date: 2016/9/14
  Time: 16:31
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>用户添加页</title>
</head>
<body>
    <%
        request.setCharacterEncoding("UTF-8");
        response.setCharacterEncoding("UTF-8");
    %>
    <form action="/servlet/UsersServlet?method=insert" method="post"enctype="multipart/form-data">
        <!--<input type="hidden" name="method" value="insert">-->
        用户名:<input type="text" name="username"><br>
        密&nbsp码:<input type="password" name="password"><br>
        简&nbsp介:<textarea name="content" placeholder="在这里输入您的简介"></textarea><br>
        照片:<input type="file" name="photo"><br>
        <input type="submit" value="提交">

    </form>
</body>
</html>

       list.jsp:

<%@ page import="com.test.entity.Users" %>
<%@ page import="java.util.List" %><%--
  Created by IntelliJ IDEA.
  User: lenovo
  Date: 2016/9/18
  Time: 9:36
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>用户列表</title>
</head>
<body>
    <tr>
        <td>用户ID</td>
        <td>用户名</td>
        <td>用户简介</td>
        <td>照片</td>
    </tr><br>
    <%
        List<Users> list = (List<Users>) request.getAttribute("list");
        for (int i=0;list!=null&&i<list.size();i++){
    %>
    <tr>
        <td><%=list.get(i).getId()%></td>
        <td><%=list.get(i).getUsername()%></td>
        <td><%=list.get(i).getContent()%></td>
        <td><img src="../picture/<%=list.get(i).getPhoto()%>" style="width:100px;height:100px;"></td>
        <a href="UsersServlet?method=select&id=<%=list.get(i).getId()%>">修改</a>
        <a href="UsersServlet?method=delete&id=<%=list.get(i).getId()%>">删除</a>
    </tr>
    <br>
    <%
        }
    %>
</body>
</html>

     show.jsp:

<%@ page import="com.test.entity.Users" %><%--
  Created by IntelliJ IDEA.
  User: lenovo
  Date: 2016/9/18
  Time: 9:27
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>用户详情页</title>
</head>
<body>
    <%
        Users user = (Users) request.getAttribute("user");
    %>
    <form action="/servlet/UsersServlet?method=update&id=<%=user.getId()%>" method="post"enctype="multipart/form-data">
        <input type="hidden" name="method" value="update">
        用户名:<input name="username" type="text" value="<%=user.getUsername()%>"><br>
        密码:<input name="password" type="password" value="<%=user.getPassword()%>"><br>
        简介:<textarea name="content"><%=user.getContent()%></textarea><br>
        照片:<img src="../picture/<%=user.getPhoto()%>" style="width:100px;height:100px;">
        <input type="file" name="photo"><br>
        <input type="submit" value="提交">
    </form>
</body>
</html>

         写完这个小项目真的成就感一级强烈,终于把Servlet页面跳转的门给进去了,所有代码逻辑性也并不是特别强烈,现在看来不应该写用户管理,新闻管理的话会更好,但是已经写完了,就可以进行下一步的学习了。全部代码都放在这里以供以后自己写东西参考

猜你喜欢

转载自201606052202.iteye.com/blog/2324414