您的位置:首页 > 编程语言

知识库系统源代码——控制层servlet代码

2017-02-13 15:27 411 查看
前台页面提交后交给后台servlet处理,代码如下:

package com.cr.web;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.sql.Connection;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;

import javax.servlet.ServletException;
import javax.servlet.ServletInputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.springframework.util.FileCopyUtils;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

import com.alibaba.fastjson.JSON;
import com.cr.dao.NewsDao;
import com.cr.model.News;
import com.cr.model.PageBean;
import com.cr.util.DbUtil;
import com.cr.util.ExceptionUtil;
import com.cr.util.JsonUtil;
import com.cr.util.ResourceUtil;
import com.cr.util.ResponseUtil;
import com.cr.util.StringUtil;

/**
* @author 汤如义
* @项目名称:Rbps
* @类名称:NewsServlet
* @类描述:
* @创建时间:2016年7月27日 下午4:47:11
*/
public class NewsServlet extends HttpServlet {
private static final long serialVersionUID = 1L;

DbUtil dbUtil=new DbUtil();
NewsDao newsDao=new NewsDao();
public NewsServlet() {
super();
}

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//根据action种类执行相应增删改查操作
doPost(request, response);

}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String action = request.getParameter("action");
response.setContentType("utf-8");
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
//response.setHeader("content-type","text/html;charset=UTF-8");
HttpSession session = request.getSession();
if("list".equals(action)){
try {
list(request, response);
} catch (Exception e) {
e.printStackTrace();
}
}else if("saveNew".equals(action)){
try {
saveNew(request, response);
} catch (Exception e) {
e.printStackTrace();
}
}else if ("editNew".equals(action)) {

try {
showEditNewJSP(request, response);
} catch (Exception e) {
e.printStackTrace();
}
}else if("savaEdit".equals(action)){
try {
editNew(request, response);
} catch (Exception e) {
e.printStackTrace();
}
}else if ("deleteNew".equals(action)) {
deleteNew(request, response);
}else if("listUser".equals(action)){
try {
listUser(request, response);
} catch (Exception e) {
e.printStackTrace();
}
}else if("upload".equals(action)){
upload(request, response, session);
}else if("showNote".equals(action)){
try {
showNote(request, response);
} catch (Exception e) {
e.printStackTrace();
}
}

}

//获取信息列表
public void list(HttpServletRequest request,HttpServletResponse response) throws Exception{
String page=request.getParameter("page");
String rows=request.getParameter("rows");
String name = request.getParameter("name");
if(name!=null){
name=new String(name.getBytes("ISO-8859-1"),"utf-8");
}
News news = new News();
if(StringUtil.isNotEmpty(name)){
news.setName(name);
}
PageBean pageBean=new PageBean(Integer.parseInt(page), Integer.parseInt(rows));
Connection con=null;
try {
con=dbUtil.getCon();
JSONObject result=new JSONObject();
JSONArray jsonArray=JsonUtil.formatRsToJsonArray(newsDao.newsList(con, pageBean, news));
int total=newsDao.newsCount(con,news);
result.put("rows", jsonArray);
result.put("total", total);
ResponseUtil.write(response, result);
}catch(Exception e){
e.printStackTrace();
}finally{
try {
dbUtil.closeCon(con);
} catch (Exception e) {
e.printStackTrace();
}
}
}

//新增信息
public void saveNew(HttpServletRequest request,HttpServletResponse response) throws Exception {
String name=new String(request.getParameter("name").getBytes("ISO-8859-1"),"utf-8");
String text=new String(request.getParameter("text").getBytes("ISO-8859-1"),"utf-8");
//String name = request.getParameter("name");
//String text = request.getParameter("text");
News news=new News();
if(StringUtil.isNotEmpty(name)){
news.setName(name);
}
if(StringUtil.isNotEmpty(text)){
news.setText(text);
}
Date createDate = new Date();
//System.out.println(createDate);
//String createtime = DateUtil.formatDate(createDate, "hh-MM-dd");
news.setCreatetime(createDate);
//调用持久层代码
Connection con=null;
try {
JSONObject result=new JSONObject();
con=dbUtil.getCon();
int saveNumers = newsDao.newsAdd(con, news);
if (saveNumers==1) {
result.put("success", true);
result.put("msg", "保存成功");
}else{
result.put("success", false);
result.put("errorMsg", "保存失败");
}
ResponseUtil.write(response, result);
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
dbUtil.closeCon(con);
} catch (Exception e) {
e.printStackTrace();
}
}
}

//编辑信息
public void editNew(HttpServletRequest request,HttpServletResponse response) throws Exception {
String ids = request.getParameter("id");
String text = request.getParameter("text");
String name = request.getParameter("name");
if(ids!=null){
ids=new String(ids.getBytes("ISO-8859-1"),"utf-8");
}
if(text!=null){
text=new String(text.getBytes("ISO-8859-1"),"utf-8");
}
if(name!=null){
name=new String(name.getBytes("ISO-8859-1"),"utf-8");
}
News news=new News();

Connection con=null;
try {
JSONObject result=new JSONObject();
con=dbUtil.getCon();
News news2 = newsDao.showNew(con, ids);
Date oldCreatetime = news2.getCreatetime();
news.setId(Integer.parseInt(ids));
news.setText(text);
news.setName(name);
news.setCreatetime(oldCreatetime);
int num = newsDao.newsEdit(con, news);
if (num==1) {
result.put("success", true);
result.put("msg", "编辑成功");
}else{
result.put("success", false);
result.put("errorMsg", "编辑失败");
}
ResponseUtil.write(response, result);
} catch (Exception e) {
e.printStackTrace();
}
}

//删除信息
public void deleteNew(HttpServletRequest request,HttpServletResponse response) {
String ids = request.getParameter("delIds");
Connection con=null;
try {
JSONObject result=new JSONObject();
con=dbUtil.getCon();
int deleteNum = newsDao.newDelete(con, ids);
if(deleteNum>0){
result.put("success", true);
result.put("delNums", deleteNum);
} else{
result.put("errorMsg", "删除失败");
}
ResponseUtil.write(response, result);
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
dbUtil.closeCon(con);
} catch (Exception e) {
e.printStackTrace();
}
}
}

public void upload(HttpServletRequest request, HttpServletResponse response, HttpSession session) {
//String savePath = session.getServletContext().getRealPath("/") + ResourceUtil.getUploadDirectory() + "/";// 文件保存目录路径
String savePath=ResourceUtil.getSaveDirectory()+"/"+ ResourceUtil.getUploadDirectory() + "/";
String savePathMapping=ResourceUtil.getSaveDirectoryMapping();
String saveUrl = "/" + ResourceUtil.getUploadDirectory() + "/";// 要返回给xhEditor的文件保存目录URL

SimpleDateFormat yearDf = new SimpleDateFormat("yyyy");
SimpleDateFormat monthDf = new SimpleDateFormat("MM");
SimpleDateFormat dateDf = new SimpleDateFormat("dd");
Date date = new Date();
String ymd = yearDf.format(date) + "/" + monthDf.format(date) + "/" + dateDf.format(date) + "/";
savePath += ymd;
saveUrl += ymd;

File uploadDir = new File(savePath);// 创建要上传文件到指定的目录
if (!uploadDir.exists()) {
uploadDir.mkdirs();
}

String contentDisposition = request.getHeader("Content-Disposition");// 如果是HTML5上传文件,那么这里有相应头的
if (contentDisposition != null) {// HTML5拖拽上传文件
Long fileSize = Long.valueOf(request.getHeader("Content-Length"));// 上传的文件大小
String fileName = contentDisposition.substring(contentDisposition.lastIndexOf("filename=\""));// 文件名称
fileName = fileName.substring(fileName.indexOf("\"") + 1);
fileName = fileName.substring(0, fileName.indexOf("\""));

ServletInputStream inputStream;
try {
inputStream = request.getInputStream();
} catch (IOException e) {
this.uploadError("上传文件出错!", response);
ExceptionUtil.getExceptionMessage(e);
return;
}

if (inputStream == null) {
this.uploadError("您没有上传任何文件!", response);
return;
}

if (fileSize > ResourceUtil.getUploadFileMaxSize()) {
this.uploadError("上传文件超出限制大小!", fileName, response);
return;
}

// 检查文件扩展名
String fileExt = fileName.substring(fileName.lastIndexOf(".") + 1).toLowerCase();
if (!Arrays.<String> asList(ResourceUtil.getUploadFileExts().split(",")).contains(fileExt)) {
this.uploadError("上传文件扩展名是不允许的扩展名。\n只允许" + ResourceUtil.getUploadFileExts() + "格式!", response);
return;
}

String newFileName = UUID.randomUUID().toString().replaceAll("-", "") + "." + fileExt;// 新的文件名称
File uploadedFile = new File(savePath, newFileName);

try {
FileCopyUtils.copy(inputStream, new FileOutputStream(uploadedFile));
} catch (FileNotFoundException e) {
this.uploadError("上传文件出错!", response);
ExceptionUtil.getExceptionMessage(e);
return;
} catch (IOException e) {
this.uploadError("上传文件出错!", response);
ExceptionUtil.getExceptionMessage(e);
return;
}

this.uploadSuccess(savePathMapping+ saveUrl+ newFileName, fileName, 0, response);/
d63e
/ 文件上传成功
return;
} else {// 不是HTML5拖拽上传,普通上传
if (ServletFileUpload.isMultipartContent(request)) {// 判断表单是否存在enctype="multipart/form-data"
DiskFileItemFactory dfif = new DiskFileItemFactory();
dfif.setSizeThreshold(1 * 1024 * 1024);// 设定当上传文件超过1M时,将产生临时文件用于缓冲
dfif.setRepository(new File(savePath));// 存放临时文件的目录
ServletFileUpload sfu = new ServletFileUpload(dfif);
try {
@SuppressWarnings("unchecked")
List<FileItem> fis = sfu.parseRequest(request);
for (FileItem fi : fis) {
if (fi.isFormField()) {
// 是表单项,不是上传项
} else {
String fileName = fi.getName();// 上传的文件名称,如果是欧鹏浏览器,这个会带路径

if (fi.getSize() > ResourceUtil.getUploadFileMaxSize()) {
this.uploadError("上传文件超出限制大小!", fileName, response);
return;
}

try {
// 检查文件扩展名
String fileExt = fileName.substring(fileName.lastIndexOf(".") + 1).toLowerCase();
if (!Arrays.<String> asList(ResourceUtil.getUploadFileExts().split(",")).contains(fileExt)) {
this.uploadError("上传文件扩展名是不允许的扩展名。\n只允许" + ResourceUtil.getUploadFileExts() + "格式!", response);
return;
}
String newFileName = UUID.randomUUID().toString().replaceAll("-", "") + "." + fileExt;// 新的文件名称
fi.write(new File(savePath, newFileName));
this.uploadSuccess(savePathMapping+ saveUrl+ newFileName, fileName, 0, response);// 文件上传成功
//this.uploadSuccess(request.getContextPath() + saveUrl + newFileName, fileName, 0, response);// 文件上传成功
return;
} catch (Exception e) {
this.uploadError("上传文件出错!", response);
ExceptionUtil.getExceptionMessage(e);
return;
}
}
}
} catch (FileUploadException e) {
this.uploadError("上传文件出错!", response);
ExceptionUtil.getExceptionMessage(e);
return;
}
} else {
// 不是multipart/form-data表单
this.uploadError("您没有上传任何文件!", response);
return;
}
return;
}

}

private void uploadError(String err, String msg, HttpServletResponse response) {
Map<String, Object> m = new HashMap<String, Object>();
m.put("err", err);
m.put("msg", msg);
this.writeJson(m, response);
}

private void uploadError(String err, HttpServletResponse response) {
this.uploadError(err, "", response);
}

private void uploadSuccess(String newFileName, String fileName, int id, HttpServletResponse response) {
Map<String, Object> m = new HashMap<String, Object>();
m.put("err", "");
Map<String, Object> nm = new HashMap<String, Object>();
nm.put("url", newFileName);
nm.put("localfile", fileName);
nm.put("id", id);
m.put("msg", nm);
this.writeJson(m, response);
}
/**
* 将对象转换成JSON字符串,并响应回前台
*
* @param object
* @throws IOException
*/
private void writeJson(Object object, HttpServletResponse response) {
try {
String json = JSON.toJSONStringWithDateFormat(object, "yyyy-MM-dd HH:mm:ss");
response.setContentType("text/html;charset=utf-8");
response.getWriter().write(json);
response.getWriter().flush();
response.getWriter().close();
} catch (IOException e) {
e.printStackTrace();
}
}
private void showNote(HttpServletRequest request,HttpServletResponse response) throws Exception{
String ids = request.getParameter("id");
Connection con=null;
try {
con=dbUtil.getCon();
News news = newsDao.showNew(con, ids);
request.setAttribute("news", news);
request.getRequestDispatcher("/admin/showNew.jsp").forward(request, response);
}catch (IOException e) {
e.printStackTrace();
}finally{
try {
dbUtil.closeCon(con);
} catch (Exception e) {
e.printStackTrace();
}
}
}

private void showEditNewJSP(HttpServletRequest request,HttpServletResponse response) throws Exception{
String ids = request.getParameter("id");
Connection con=null;
try {
con=dbUtil.getCon();
News news = newsDao.showNew(con, ids);
request.setAttribute("news", news);
request.getRequestDispatcher("/admin/newsEdit.jsp").forward(request, response);
}catch (IOException e) {
e.printStackTrace();
}finally{
try {
dbUtil.closeCon(con);
} catch (Exception e) {
e.printStackTrace();
}
}
}
//获取信息列表
public void listUser(HttpServletRequest request,HttpServletResponse response) throws Exception{
String name = request.getParameter("name");
if(name!=null){
name=new String(name.getBytes("ISO-8859-1"),"utf-8");
}
//String name=new String(request.getParameter("name").getBytes("ISO-8859-1"),"utf-8");
String page=request.getParameter("page");
String rows=request.getParameter("rows");
News news = new News();
if(StringUtil.isNotEmpty(name)){
news.setName(name);
}
PageBean pageBean=new PageBean(Integer.parseInt(page), Integer.parseInt(rows));
Connection con=null;
try {
con=dbUtil.getCon();
JSONObject result=new JSONObject();
JSONArray jsonArray=JsonUtil.formatRsToJsonArray(newsDao.newsList(con, pageBean, news));
int total=newsDao.newsCount(con,news);
result.put("rows", jsonArray);
result.put("total", total);
ResponseUtil.write(response, result);
}catch(Exception e){
e.printStackTrace();
}finally{
try {
dbUtil.closeCon(con);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: