package com.ischoolbar.programmer.interceptor.home; import java.util.HashMap; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import net.sf.json.JSONObject; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; /** * 前台登录拦截器 * @author llq * */ public class LoginInterceptor implements HandlerInterceptor { @Override public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3) throws Exception { // TODO Auto-generated method stub } @Override public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3) throws Exception { // TODO Auto-generated method stub } @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object arg2) throws Exception { // TODO Auto-generated method stub String requestURI = request.getRequestURI(); Object admin = request.getSession().getAttribute("account"); if(admin == null){ //表示未登录或者登录失效 System.out.println("链接"+requestURI+"进入拦截器!"); String header = request.getHeader("X-Requested-With"); //判断是否是ajax请求 if("XMLHttpRequest".equals(header)){ //表示是ajax请求 Map<String, String> ret = new HashMap<String, String>(); ret.put("type", "error"); ret.put("msg", "登录会话超时或还未登录,请重新登录!"); response.getWriter().write(JSONObject.fromObject(ret).toString()); return false; } //表示是普通链接跳转,直接重定向到登录页面 response.sendRedirect(request.getServletContext().getContextPath() + "/home/login"); return false; } return true; } }中response.sendRedirect(request.getServletContext().getContextPath() + "/home/login");中getServletContext爆红
时间: 2024-04-13 13:27:37 浏览: 182
根据您提供的代码,`getServletContext()` 方法在 `response.sendRedirect()` 中使用是没有问题的。所以,可能是您的开发环境没有正确导入 `javax.servlet` 包。
请确保您的项目中已经正确导入了 `javax.servlet` 的相关库文件。如果您使用的是 Maven 或 Gradle 等构建工具,请检查您的项目依赖配置中是否包含了正确的 Servlet API。
如果问题仍然存在,请提供更多的上下文信息,例如您的开发环境和构建工具,以便我能够更好地帮助您解决问题。
相关问题
package com.ischoolbar.programmer.controller; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.ModelAndView; import com.ischoolbar.programmer.entity.Clazz; import com.ischoolbar.programmer.entity.Grade; import com.ischoolbar.programmer.page.Page; import com.ischoolbar.programmer.service.ClazzService; import com.ischoolbar.programmer.service.GradeService; import com.ischoolbar.programmer.util.StringUtil; /** * 班级信息管理 * @author llq * */ @RequestMapping("/clazz") @Controller public class ClazzController { @Autowired private GradeService gradeService; @Autowired private ClazzService clazzService; /** * 班级列表页 * @param model * @return */ @RequestMapping(value="/list",method=RequestMethod.GET) public ModelAndView list(ModelAndView model){ model.setViewName("clazz/clazz_list"); List<Grade> findAll = gradeService.findAll(); model.addObject("gradeList",findAll ); model.addObject("gradeListJson",JSONArray.fromObject(findAll)); return model; }给这段代码加上注释
```
//导入所需的类
package com.ischoolbar.programmer.controller;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import com.ischoolbar.programmer.entity.Clazz;
import com.ischoolbar.programmer.entity.Grade;
import com.ischoolbar.programmer.page.Page;
import com.ischoolbar.programmer.service.ClazzService;
import com.ischoolbar.programmer.service.GradeService;
import com.ischoolbar.programmer.util.StringUtil;
/**
* 班级信息管理
* @author llq
*/
@RequestMapping("/clazz")
@Controller
public class ClazzController {
//自动注入GradeService和ClazzService
@Autowired
private GradeService gradeService;
@Autowired
private ClazzService clazzService;
/**
* 班级列表页
* @param model
* @return
*/
@RequestMapping(value="/list",method=RequestMethod.GET)
public ModelAndView list(ModelAndView model){
//设置视图的名称
model.setViewName("clazz/clazz_list");
//获取所有年级的列表
List<Grade> findAll = gradeService.findAll();
//将年级列表放入ModelAndView中
model.addObject("gradeList",findAll );
//将年级列表转换为JSON格式,并放入ModelAndView中
model.addObject("gradeListJson",JSONArray.fromObject(findAll));
return model;
}
}
```
package com.ischoolbar.programmer.service.impl; import java.util.List; import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ischoolbar.programmer.dao.GradeDao; import com.ischoolbar.programmer.entity.Grade; import com.ischoolbar.programmer.service.GradeService; @Service public class GradeServiceImpl implements GradeService { @Autowired private GradeDao gradeDao; @Override public int add(Grade grade) { // TODO Auto-generated method stub return gradeDao.add(grade); } @Override public int edit(Grade grade) { // TODO Auto-generated method stub return gradeDao.edit(grade); }给代码加上注释
以下是对该段代码的注释:
```java
// 声明包名
package com.ischoolbar.programmer.service.impl;
// 导入相关的类
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ischoolbar.programmer.dao.GradeDao;
import com.ischoolbar.programmer.entity.Grade;
import com.ischoolbar.programmer.service.GradeService;
// 声明该类为 Service 类
@Service
public class GradeServiceImpl implements GradeService {
// 使用自动装配注解,自动注入 GradeDao
@Autowired
private GradeDao gradeDao;
// 实现 GradeService 接口中的 add 方法
@Override
public int add(Grade grade) {
// 调用 GradeDao 中的 add 方法,返回添加的结果
return gradeDao.add(grade);
}
// 实现 GradeService 接口中的 edit 方法
@Override
public int edit(Grade grade) {
// 调用 GradeDao 中的 edit 方法,返回修改的结果
return gradeDao.edit(grade);
}
}
```
注释的作用是为了方便开发者理解代码的含义和作用,提高代码的可读性和可维护性。
阅读全文