首页>代码>java servlet+bootstrap+ajax实现的教师年度工作填报系统>/report_servlet/src/com/mocha/report/article/servlet/ArticleServlet.java
package com.mocha.report.article.servlet;
import java.io.File;
import java.io.IOException;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import com.alibaba.fastjson.JSON;
import com.mocha.report.article.service.ArticleSer;
import com.mocha.report.article.service.impl.ArticleSerImpl;
import com.mocha.report.entites.Article;
import com.mocha.report.entites.Teacher;
public class ArticleServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private int page = 1;
private List<Article> articles = null;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
String requestURI = request.getRequestURI();
String uri = requestURI.substring(requestURI.lastIndexOf("/"));
if("/findByUsercode.do".equals(uri)){
this.findByUsercode(request, response);
}
if("/save.do".equals(uri)){
this.save(request, response);
}
if("/delete.do".equals(uri)){
this.delete(request, response);
}
if("/findByAid.do".equals(uri)){
this.findByAid(request, response);
}
if("/update.do".equals(uri)){
this.update(request, response);
}
if("/findByCondition.do".equals(uri)){
this.findByCondition(request,response);
}
if("/deleteByAdmin.do".equals(uri)){
this.deleteByAdmin(request,response);
}
if("/findTotal.do".equals(uri)){
this.findTotal(request,response);
}
}
private void findTotal(HttpServletRequest request,
HttpServletResponse response) {
ArticleSer articleSer = new ArticleSerImpl();
List<Map<String , String>> listss = articleSer.findTotal();
String jsonString = JSON.toJSONString(listss);
System.out.println(jsonString);
try {
response.setContentType("text/html;charset=utf-8");
response.getWriter().print(jsonString);
} catch (IOException e) {
e.printStackTrace();
}
}
private void findByCondition(HttpServletRequest request,
HttpServletResponse response) throws IOException, ServletException {
Article article = new Article();
String strPage = request.getParameter("page");
String usercode = request.getParameter("usercode");
if(usercode != null && usercode.length()>0){
article.setUsercode(usercode);
}
ArticleSer articleSer = new ArticleSerImpl();
if (strPage != null) {
page = Integer.parseInt(strPage);
}
try {
articles = articleSer.findByCondition(article, page, 10);
int maxPage = articleSer.getMaxPage(10, article);
request.setAttribute("articles", articles);
request.setAttribute("page", page);
request.setAttribute("maxPage",maxPage );
// 转发
request.getRequestDispatcher("/article/admin_article.jsp").forward(
request, response);
} catch (SQLException e) {
response.sendRedirect("error.html");
e.printStackTrace();
}
}
// 根据条件查询所有的user信息
public void findByUsercode(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// 获得页面的页数,以及页数的记录
String strPage = request.getParameter("page");
Teacher teacher = (Teacher) request.getSession().getAttribute("teacher");
String usercode = teacher.getUsercode();
ArticleSer articleSer = new ArticleSerImpl();
if (strPage != null) {
page = Integer.parseInt(strPage);
}
try {
articles = articleSer.findByUsercode(usercode, page, 10);
int maxPage = articleSer.getMaxPage(10, usercode);
request.setAttribute("articles", articles);
request.setAttribute("page", page);
request.setAttribute("maxPage",maxPage );
// 转发
request.getRequestDispatcher("/article/article.jsp").forward(
request, response);
} catch (SQLException e) {
response.sendRedirect("error.html");
e.printStackTrace();
}
}
//添加
@SuppressWarnings("unchecked")
public void save(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
/*
* 1.commons-fileupload的上传三步
*/
//1.创建工厂
FileItemFactory fileItemFactory = new DiskFileItemFactory();
//2.创建解析器对象
ServletFileUpload servletFileUpload = new ServletFileUpload(fileItemFactory);
servletFileUpload.setFileSizeMax(200 * 1024 * 1024);
//3.解析request得到List<FileItem>
List<FileItem> fileItemList = null;
try {
fileItemList = servletFileUpload.parseRequest(request);
} catch (FileUploadException e) {
e.printStackTrace();
}
//4.把List<FileItem>装到RestaurantDelicious对象中
//4.1首先把普通表单字段放到一个Map中,再把Map转换成RestaurantDelicious对象
List<String> list = new ArrayList<String>();
for(FileItem fileItem:fileItemList){
if(fileItem.isFormField()){//如果是普通表单字段
list.add(fileItem.getString("UTF-8"));
}
}
String usercode = list.get(0);
String aname = list.get(1);
String publishdate = this.chooseDate(list.get(2));
String uploaddate = this.chooseDate(list.get(3));
String publishreader = list.get(4);
String summary = list.get(5);
Article article = new Article(aname,null,publishdate,publishreader,uploaddate,summary,usercode);
FileItem fileItem = fileItemList.get(2);
String fileName = fileItem.getName();
int index = fileName.lastIndexOf("\\");
if(index != -1){
fileName = fileName.substring(index + 1);
}
fileName = Math.random()*1000 + "_" +fileName;
String savePath = this.getServletContext().getRealPath("/upload/article");
File destFile = new File(savePath,fileName);
try {
fileItem.write(destFile);//他会把临时文件重命名到指定的路径,再删除临时文件
} catch (Exception e) {
throw new RuntimeException(e);
}
//吧图片的路径设置给RestaurantDelicious对象
article.setApath("/report_servlet/upload/article/"+fileName);
//调用业务逻辑
ArticleSer articleSer =new ArticleSerImpl();
try {
articleSer.save(article);
response.sendRedirect("articleServlet/findByUsercode.do");
} catch (Exception e) {
e.printStackTrace();
response.sendRedirect("error.html");
}
}
public void delete(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
//获取请求数据
Integer aid = Integer.parseInt(request.getParameter("aid"));
//调用业务逻辑
ArticleSer articleSer = new ArticleSerImpl();
try {
articleSer.delete(aid);
response.sendRedirect("articleServlet/findByUsercode.do");
} catch (Exception e) {
e.printStackTrace();
response.sendRedirect("error.html");
}
}
public void deleteByAdmin(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
System.out.println("9090909090");
//获取请求数据
Integer aid = Integer.parseInt(request.getParameter("aid"));
//调用业务逻辑
ArticleSer articleSer = new ArticleSerImpl();
try {
articleSer.delete(aid);
response.sendRedirect("articleServlet/findAll.do");
} catch (Exception e) {
e.printStackTrace();
response.sendRedirect("error.html");
}
}
public void findByAid(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
Article article = new Article();
//获取请求数据
Integer aid = Integer.parseInt(request.getParameter("aid"));
//调用业务逻辑
ArticleSer articleSer = new ArticleSerImpl();
try {
article = articleSer.findByAid(aid);
request.setAttribute("article", article);
request.getRequestDispatcher("/article/update_article.jsp").forward(request, response);
} catch (Exception e) {
e.printStackTrace();
response.sendRedirect("error.html");
}
}
@SuppressWarnings("unchecked")
public void update(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
/*
* 1.commons-fileupload的上传三步
*/
//1.创建工厂
FileItemFactory fileItemFactory = new DiskFileItemFactory();
//2.创建解析器对象
ServletFileUpload servletFileUpload = new ServletFileUpload(fileItemFactory);
servletFileUpload.setFileSizeMax(200 * 1024 * 1024);
//3.解析request得到List<FileItem>
List<FileItem> fileItemList = null;
try {
fileItemList = servletFileUpload.parseRequest(request);
} catch (FileUploadException e) {
e.printStackTrace();
}
//4.把List<FileItem>装到RestaurantDelicious对象中
//4.1首先把普通表单字段放到一个Map中,再把Map转换成RestaurantDelicious对象
List<String> list = new ArrayList<String>();
for(FileItem fileItem:fileItemList){
if(fileItem.isFormField()){//如果是普通表单字段
list.add(fileItem.getString("UTF-8"));
}
}
String usercode = list.get(0);
int aid = Integer.parseInt(list.get(1));
String aname = list.get(2);
String publishdate = list.get(3);
if(list.get(3).contains("/")){
publishdate = this.chooseDate(list.get(3));
}
String uploaddate = list.get(4);
if(list.get(4).contains("/")){
uploaddate = this.chooseDate(list.get(4));
}
String publishreader = list.get(5);
String summary = list.get(6);
System.out.println(summary);
Article article = new Article(aid,aname,null,publishdate,publishreader,uploaddate,summary,usercode);
FileItem fileItem = fileItemList.get(3);
String fileName = fileItem.getName();
int index = fileName.lastIndexOf("\\");
if(index != -1){
fileName = fileName.substring(index + 1);
}
fileName = Math.random()*1000 + "_" +fileName;
String savePath = this.getServletContext().getRealPath("/upload/article");
File destFile = new File(savePath,fileName);
try {
fileItem.write(destFile);//他会把临时文件重命名到指定的路径,再删除临时文件
} catch (Exception e) {
throw new RuntimeException(e);
}
//吧图片的路径设置给RestaurantDelicious对象
article.setApath("/report_servlet/upload/article/"+fileName);
//调用业务逻辑
ArticleSer articleSer =new ArticleSerImpl();
try {
articleSer.update(article);
response.sendRedirect("articleServlet/findByUsercode.do");
} catch (Exception e) {
e.printStackTrace();
response.sendRedirect("error.html");
}
}
public String chooseDate(String stringDate){
StringBuilder newStringData = new StringBuilder();
String[] split = stringDate.split("/");
newStringData.append(split[2].toString());
newStringData.append("-");
newStringData.append(split[0].toString());
newStringData.append("-");
newStringData.append(split[1].toString());
return newStringData.toString();
}
public static void main(String[] args) {
}
}

最近下载
最近浏览