关于空指针错误的问题

来源:1-11 Servlet获取表单数据

一只土豆

2015-12-30 23:06

public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		request.setCharacterEncoding("utf-8");
		
		Users u = new Users();
		String username,mypassword,gender,email,introduce;
		boolean isAccept;
		Date birthday;
		String[] favorites;
		
		
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		try
		{
			username = request.getParameter("username");
			mypassword = request.getParameter("mypassword");
			gender = request.getParameter("gender");
			email = request.getParameter("email");
			introduce = request.getParameter("introduce");
			birthday = sdf.parse(request.getParameter("birthday"));

			isAccept=request.getParameter("isAccept")!=null?true:false;
			//用来获取多个复选按钮的值
			favorites = request.getParameterValues("favorite");
			u.setUsername(username);
			u.setMypassword(mypassword);
			u.setGender(gender);
			u.setEmail(email);
			u.setFavorites(favorites);
			u.setIntroduce(introduce);
			u.setFlag(isAccept);
			u.setBirthday(birthday);
			
			//把注册成功的用户对象保存在session中
			request.getSession().setAttribute("regUser", u);
			//跳转到注册成功页面
			request.getRequestDispatcher("../userinfo.jsp").forward(request,response);
		}
		catch(Exception ex)
		{
			ex.printStackTrace();
		}
		
		
	}

一下两行代码 为什么使用第二行代码时不勾选复选框就会报空指针异常 而用第一行代码就能够正常返回false呢?  我的理解: 当不勾选时request.getParameter("isAccept").equals("true")该表达式的值为假那么则返回false  

 isAccept=request.getParameter("isAccept")!=null?true:false;

isAccept=request.getParameter("isAccept").equals("true")?true:false;

写回答 关注

2回答

  • longlian87
    2015-12-30 23:15:02
    已采纳

    一般这种情况这样写比较合理isAccept="true".equals(request.getParameter("isAccept"))?true:false; 这样既符合你的写法,也不会报空指针

    一只土豆

    哦哦 知道了 谢谢

    2015-12-31 11:17:19

    共 1 条回复 >

  • longlian87
    2015-12-30 23:13:40

    isAccept这个复选框你不勾选的时候是不会传任何数据过来的。所以服务器用request.getParameter("isAccept")取得的是null。这是个经验,记得就行了

JAVA遇见HTML——Servlet篇

本门课程在JSP课程的基础上,深入介绍Servlet的基础知识

160615 学习 · 1029 问题

查看课程

相似问题