基于mybatis设计简单信息管理系统2
1、空指针异常
public class CanvasServlet extends HttpServlet {
private CanvasService canvasService;
private CategoryService categoryService;
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
if("/canvas/list.do".equals(req.getServletPath())){
//查询
String categoryIdStr = req.getParameter("categoryId");
List<Canvas> canvases=null;
if(categoryIdStr==null){
canvases = canvasService.getCanvases(, );//由登录界面进入
}else {
Integer categoryId= Integer.valueOf(categoryIdStr);
canvases = canvasService.getCanvasesByCategoryId(categoryId, , );//点击分类查询
}
List<Category> categories = categoryService.getCategory();
req.setAttribute("canvases",canvases);
req.setAttribute("categories",categories);
req.getRequestDispatcher("/WEB-INF/view/biz/canvas_list.jsp").forward(req,resp);
}else if ("/canvas/addPrompt.do".equals(req.getServletPath())){
//转跳进添加页面
List<Category> categories = categoryService.getCategory();
req.setAttribute("categories",categories);//分类下拉列表
req.getRequestDispatcher("/WEB-INF/view/biz/add_canvas.jsp").forward(req,resp);
当我把list集合放在方法外面的时候报空指针异常,改到如上位置则没有问题
2、
req.getRequestDispatcher("/WEB-INF/views/biz/canvas_list.jsp").forward(req,resp);
找不到指定页面
而用户不能访问WEB-INF目录下的文件,只有程序内部转发的时候才能转发到WEB-INF下的JSP。
3、
Servlet.service() for servlet jsp threw exception javax.el.PropertyNotFoundException: Property 'name' not found on type java.lang.String
原因:jsp在接收requestcontext域对象时候没有使用el表达式,修改之后正确显示

4、session第二次打开会话则没有了刚才的登录信息
原因:session会话中session默认保持30分钟,但是cookie在第二次打开会话时就已经丢失,所以需要设置cookie持久化到磁盘并设置保存时间,代码如下:
Cookie cookie = new Cookie("username",username); //"JSESSIONID"为固定值
cookie.setPath("/*");
cookie.setMaxAge(30*60);
response.addCookie(cookie);
5、
Error updating database. Cause: org.apache.ibatis.binding.BindingException: Parameter 'name' not found. Available parameters are [category, param1]
问题:mybatis引入的时候没有找到实体对应的数据,语法错误,因为参数只做了category,其中的元素需要用category找到,修改之后为:
@Insert("insert into category(name,createName,createTime,updateTime,description) " +
"values(#{category.name},#{category.createName},#{category.createTime},#{category.updateTime},#{category.description})")
void addCategory(@Param("category") Category category);
6、用filter添加全局的乱码处理之后用post接收到的表单数据还是乱码

原因:在提交表单时,浏览器默认使用编码方式不是utf-8来发送请求,而编码方式表示字符时不一样,这样就出现了不能识别字符。解决办法:通过request.setCharacterEncoding("utf-8")对请求进行统一编码,
http://www.blogjava.net/yaya/archive/2008/10/05/232513.html
但是表单还是乱码,问题不在这里
问题是fileupload默认解码为ISO-8859-1,filter并不能解决fileupload的乱码
解决方法就是这段代码,其中item是fileupload中的FileItem:
String value = new String(item.getString().getBytes("ISO-8859-1"), "UTF-8") ;
这个解决方法不具有通用性,换个环境很可能就不能用了,更好的办法:
获取form中字段(即除了上传的文件以外的那些元素)是中文,如果出现了乱码,使用了如下代码,解决了乱码的问题
String value = item.getString("UTF-8");
博客:http://www.cnblogs.com/qrlozte/p/3176545.html
小tips:
Surround with快捷键:

基于mybatis设计简单信息管理系统2的更多相关文章
- 基于mybatis设计简单信息管理系统---jsp页面
1.在设计编辑界面的时候需要有一个下拉的列表页,想要他指定到指定的值: <select id="categoryId" name="categoryId" ...
- 基于mybatis设计简单信息管理系统1
驼峰式命名法 骆驼式命名法就是当变量名或函数名是由一个或多个单词连结在一起,而构成的唯一识别字时,第一个单词以小写字母开始:第二个单词的首字母大写或每一个单词的首字母都采用大写字母,例如:myFirs ...
- 基于mybatis设计简单OA系统问题3
1. 问题:使用mybatis更新数据失败 描述:java.lang.NullPointerException 提交表单 com.duma.entity.User.updateUser - ==&g ...
- 基于mybatis设计简单OA系统问题1
全类名与全路径 全类名是某个文件在项目中的位置,格式为包名.类名 路径分为相对路径和绝对路径. 绝对路径是指这个文件在操作系统中的位置, 相对路径通过这个文件的上一级 ./ 或下一级/ 来指定文件 ...
- 基于mybatis设计简单OA系统问题2
1.<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <fm ...
- 记C++课程设计--学生信息管理系统
C++课程设计--学生信息管理系统 ...
- Anynote 基于ExtJS多用户个人信息管理系统
Anynote——个人信息管理系统 —–主要用于学习交流—– 源码下载:https://git.oschina.net/xiyt/Anynote.git 一.系统说明 Anynote是一个基于extj ...
- Java课程设计---学生信息管理系统需求分析及总体设计
按照软件工程实践的原则,开发大型程序需要经历需求分析.总体设计.详细设计.编码实现.系统测试.系统维护等几个阶段. 1.需求分析 本阶段是整个软件开发过程中最重要的环节.通过了解实际运行的系统或与用户 ...
- 基于Java的简单银行管理系统(MVC设计模式)
项目导航 功能展示 项目描述 项目结构 `data` `service` `utils` `view ` 欠缺与总结 源码下载 功能展示 本系统基于命令台窗口,暂未与图形页面结合.话不多说,先上效果图 ...
随机推荐
- My first Python program(附增加清屏方法)
#TempConvert.py TempStr = input("请输入带有符号的温度值:") if TempStr[-1] in ['F', 'f']: C = (eval(Te ...
- php fopen()和file_get_contents() 区别介绍
本文章向码农们介绍PHP使用fopen与file_get_contents读取文件实例分享及这两个函数的区别,需要的码农可以参考一下. php中读取文件可以使用fopen和file_get_conte ...
- GET和POST区别和用法
很多人都分不清GET与POST的区别,以及什么时候用GET?什么时候用POST? GET和POST两种方法都是将数据送到服务器,但你该用哪一种呢? HTTP标准包含这两种方法是为了达到不同的目的.PO ...
- java学习第十四天
1:正则表达式(理解) (1)就是符合一定规则的字符串 (2)常见规则 A:字符 x 字符 x.举例:'a'表示字符a \\ 反斜线字符. \n 新行(换行)符 ('\u000A') \r 回车符 ( ...
- Swift-数组
1.数组的定义 //OC 使用[]定义数组,Swift一样,但是没有@ //自动推导的结果[String]->表示数组中存的都是String //跟OC中的数组指定泛型类型 //Swift ...
- [转]hash冲突的四种办法
原文地址:http://blog.csdn.net/qq_27093465/article/details/52269862 一)哈希表简介 非哈希表的特点:关键字在表中的位置和它之间不存在一个确定的 ...
- Postman工具——下载与安装(转)
https://blog.csdn.net/water_0815/article/details/53263643 今天给大家分享一款工具,好的工具能够让开发更高效,有时能成倍地提高.接下来会分几篇来 ...
- 【ArcGIS】文件地理数据库,个人地理数据库与ArcSDE的局别
地理数据库的类型 地理数据库是用于保存数据集集合的“容器”.有以下三种类型: 文件地理数据库 - 在文件系统中以文件夹形式存储.每个数据集都以文件形式保存,该文件大小最多可扩展至 1 TB.建议使 ...
- JS兼用IE8的通过class名获取CSS对象组
转自:Garon_InE 原生js方法“document.getElementsByClassName”在ie8及其以下浏览器中不能使用,所以写了一个兼容IE的方法. 完整的页面代码如下: testJ ...
- 翻译-ExcelDNA开发文档
转载自个人主页 前言 翻译开源项目ExcelDNA开发文档 异步处理 ExcelDNA支持两种异步函数: RTD,该函数适用与Excel2003及以上版本,(当你使用ExcelAsyncUtil.*时 ...