zoukankan      html  css  js  c++  java
  • 新闻发布项目——Servlet类(doNewsAddServlet)

    package bdqn.newsManageServlet.Servlet;
    
    import java.io.File;
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.util.Arrays;
    import java.util.List;
    
    import javax.servlet.ServletContext;
    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 bdqn.newsManageServlet.Dao.newsTbDao;
    import bdqn.newsManageServlet.Dao.Impl.newsTbDaoImpl;
    import bdqn.newsManageServlet.Service.categoryTBService;
    import bdqn.newsManageServlet.Service.Impl.categoryTBServiceImpl;
    import bdqn.newsManageServlet.entity.categoryTB;
    import bdqn.newsManageServlet.entity.newsTb;
    
    public class doNewsAddServlet extends HttpServlet {
    
    	/**
    	 * Destruction of the servlet. <br>
    	 */
    	public void destroy() {
    		super.destroy(); // Just puts "destroy" string in log
    		// Put your code here
    	}
    
    	/**
    	 * The doGet method of the servlet. <br>
    	 *
    	 * This method is called when a form has its tag value method equals to get.
    	 * 
    	 * @param request the request send by the client to the server
    	 * @param response the response send by the server to the client
    	 * @throws ServletException if an error occurred
    	 * @throws IOException if an error occurred
    	 */
    	public void doGet(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    
    		response.setContentType("text/html;charset=utf-8");
    		PrintWriter out = response.getWriter();
    		//添加新聞
    		//获取相对应的值
    		request.setCharacterEncoding("utf-8");
    		newsTb news = new newsTb();
    		String categoryName = "";//主题
    		String title = "";//标题
    		String author = "";//作者
    		String summary = "";//摘要
    		String content = "";//内容
    		String picPath = "";//文件路径
    		int id = 0;//类别id
    		//判断是不是文件上传
    		boolean ismultipart = ServletFileUpload.isMultipartContent(request);
    		if (ismultipart) {
    			//创建文件工厂
    			FileItemFactory fac = new DiskFileItemFactory();
    			//创建文件上传对象
    			ServletFileUpload fileUpload = new ServletFileUpload(fac);
    			//解析请求 
    			List<FileItem> fileItemlist;
    			try {
    				fileItemlist = fileUpload.parseRequest(request);
    		
    			//遍历集合,获取响应的数据 
    			try {
    				for (FileItem item : fileItemlist) {
    					//判断是普通的表单还是文件表单
    					if (item.isFormField()) {
    						//普通表单
    						String fileName = item.getFieldName();
    						//主题
    						if (fileName.equals("slt")) {
    							categoryName = item.getString("utf-8");
    							categoryTBService cateService = new categoryTBServiceImpl();
    							categoryTB cate = cateService
    									.getCategoryIdByName(categoryName);
    							//类别的id
    							id = cate.getCategoryID();
    						} else if (fileName.equals("title")) {
    							//标题
    							title = item.getString("utf-8");
    						} else if (fileName.equals("author")) {
    							//作者
    							author = item.getString("utf-8");
    						} else if (fileName.equals("summary")) {
    							//摘要
    							summary = item.getString("utf-8");
    						} else if (fileName.equals("content")) {
    							//内容
    							content = item.getString("utf-8");
    						}
    
    					} else {
    						//文件表单
    						//获取文件名全路径
    						String fullfile = item.getName();
    						File file1 = new File(fullfile);
    						//控制文件上传类型
    						//通过Arrays类的aList()方法创建固定长度的集合
    						List<String> fileType=Arrays.asList("gif","bmp","jpg");
    						String ext=fullfile.substring(fullfile.lastIndexOf(".")+1);
    						if(fileType.contains(ext)){
    						//上传成功!
    						//获取文件名,不包含文件路径
    						String filename = file1.getName();
    						//取得application对象
    						ServletContext application=this.getServletContext();
    						//调用application里面的属性和方法
    						String uploadPath = application
    								.getRealPath("adminManage/");
    						File file2 = new File(uploadPath, filename);
    						item.write(file2);
    						picPath=file2.toString();
    						//上传成功!
    						}else{
    						request.setAttribute("mesg", "文件类型只能是图片类型");
    						request.getRequestDispatcher("addNews.jsp").forward(request,response);
    						return;
    						}
    					}
    				}
    
    			} catch (Exception ex) {
    				ex.printStackTrace();
    			}
    			} catch (FileUploadException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
    		}
    
    		/* 	//根据类别名臣获取类别id
    		 String categoryName = request.getParameter("slt");
    		 categoryTBService cateService = new categoryTBServiceImpl();
    		 categoryTB cate = cateService.getCategoryIdByName(categoryName);
    		 //类别的id
    		 int id = cate.getCategoryID();
    		 String title = request.getParameter("title");//标题
    		 String author = request.getParameter("author");//作者
    		 String summary = request.getParameter("summary");//摘要
    		 String content = request.getParameter("content");//内容
    		 String picPath = request.getParameter("picPath");//上传图片路径 */
    		//把内容添加到数据库中
    
    		//封装
    		newsTbDao ndao = new newsTbDaoImpl();
    		//	newsTb news = new newsTb();
    		news.setCategoryID(id);
    		news.setTitle(title);
    		news.setAuthor(author);
    		news.setSummary(summary);
    		news.setContent(content);
    		news.setPicPath(picPath);
    		int rel = ndao.addNewsTb(news);
    		if (rel > 0) {
    			out.print("<script>alert('添加成功!');location.href='adminManage/editNews.jsp';</script>");
    		} else {
    			out.print("<script>alert('添加失败!');location.href='adminManage/addNews.jsp';</script>");
    		}
    	}
    
    	/**
    	 * The doPost method of the servlet. <br>
    	 *
    	 * This method is called when a form has its tag value method equals to post.
    	 * 
    	 * @param request the request send by the client to the server
    	 * @param response the response send by the server to the client
    	 * @throws ServletException if an error occurred
    	 * @throws IOException if an error occurred
    	 */
    	public void doPost(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    
    		doGet(request, response);
    	}
    
    	/**
    	 * Initialization of the servlet. <br>
    	 *
    	 * @throws ServletException if an error occurs
    	 */
    	public void init() throws ServletException {
    		// Put your code here
    	}
    
    }
    

  • 相关阅读:
    R语言:提取路径中的文件名字符串(basename函数)
    课程一(Neural Networks and Deep Learning),第三周(Shallow neural networks)—— 0、学习目标
    numpy.squeeze()的用法
    课程一(Neural Networks and Deep Learning),第二周(Basics of Neural Network programming)—— 4、Logistic Regression with a Neural Network mindset
    Python numpy 中 keepdims 的含义
    课程一(Neural Networks and Deep Learning),第二周(Basics of Neural Network programming)—— 3、Python Basics with numpy (optional)
    课程一(Neural Networks and Deep Learning),第二周(Basics of Neural Network programming)—— 2、编程作业常见问题与答案(Programming Assignment FAQ)
    课程一(Neural Networks and Deep Learning),第二周(Basics of Neural Network programming)—— 0、学习目标
    课程一(Neural Networks and Deep Learning),第一周(Introduction to Deep Learning)—— 0、学习目标
    windows系统numpy的下载与安装教程
  • 原文地址:https://www.cnblogs.com/a1111/p/6540302.html
Copyright © 2011-2022 走看看