本篇博客的主要内容是:
本篇博客需要注意的点:
(1)一种策略,或称之为一种思想:一个Controller的url设置成通配符的形式,从而实现不同的请求调用不同方法;
(2)加深感受下Session这个对象,很给力;
(3)捕捉异常的时候,(起码目前来看是这样的)习惯将异常扩大到Exception;
(4)待解决问题?????????????什么时候前台需要发起Ajax请求(对应的后台一般就要想前台文件输出Jason);什么时候前台发起的不是Ajax请求(对应的后台就直接重定向或者转发到前台文件,然后前台文件获取诸如request对象或者session对象中的数据);;;这一点,目前理解不深,还需要专门一篇博客来详细总结!!!!!!!主要是,什么时候使用Ajax请求,什么时候使用一般的请求!!!
(5)logger.error()的用法;
目录
一:请假申请的Controller层:LeaveFormServlet
(1)一种开发技巧:使用url通配符来实现【不同的url对应执行不同方法】的技巧;
(2)提取url中最后的那个单词(由此才能决定具体需要调用哪个方法)
(3)【(1)一种开发技巧:使用url通配符来实现【不同的url对应执行不同方法】的技巧;】的体现:【url不同调用的方法不同】;
(4)create()方法的整体结构:【获取前台数据】,【组织LeaveForm对象,作为调用Service层方法的参数】,【组织响应结果,向前台输出】
(5)create()方法的结构分析1:存储在session对象中的user属性很奥利给
(6)前台传过来的数据都是String格式的,如日期等数据需要格式化
(7)捕捉异常的时候,(起码目前来看是这样的)习惯将异常扩大到Exception
(8)处理完了之后,向前台输出JSON数据(前台发起的是Ajax请求???待确认……)
完成请假申请的Controller层:(仅仅是新增,也只能新增;因为目前的Dao层和Service层只提供了新增的功能)
、
一:请假申请的Controller层:LeaveFormServlet
package com.imooc.oa.controller;
import com.alibaba.fastjson.JSON;
import com.imooc.oa.entity.LeaveForm;
import com.imooc.oa.entity.User;
import com.imooc.oa.service.LeaveFormService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
@WebServlet(name = "LeaveFormServlet",urlPatterns ="/leave/*")
public class LeaveFormServlet extends HttpServlet {
private LeaveFormService leaveFormService = new LeaveFormService();
private Logger logger = LoggerFactory.getLogger(LeaveFormServlet.class);
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
//比如请求的url是:http://localhost/leave/create
String uri = request.getRequestURI();//首先获取请求的uri
String methodName = uri.substring(uri.lastIndexOf("/") + 1);//然后获取最后的参数;这儿的例子是create
if (methodName.equals("create")) {
this.create(request,response);
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request,response);
}
/**
* 创建请假单
* 获取前端数据,调用LeaveFormService中的createLeaveForm()方法,完成请假申请信息的新增工作;
* @param request
* @param response
*/
private void create(HttpServletRequest request, HttpServletResponse response) throws IOException {
//1.接受前台传过来的请假单的数据
HttpSession session = request.getSession();
User user = (User) session.getAttribute("login_user");
String formType = request.getParameter("formType");//前台文件在向后台提交表单的时候,参数的命名需要和这儿对应;
String strStartTime = request.getParameter("startTime");
String strEndTime = request.getParameter("endTime");
String reason = request.getParameter("reason");
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-HH");//日期的格式
//2.根据业务逻辑,结合前台传过来的请假单数据;组织LeaveForm对象,并调用Service层的方法
Map result = ne


最低0.47元/天 解锁文章
2101

被折叠的 条评论
为什么被折叠?



