社区
Web 开发
帖子详情
struts登陆中出现的问题
zhangbolang888
2009-04-22 04:32:54
MyEclipse提示:
java.lang.NullPointerException
这个到底是什么问题呀,高手们帮帮忙,我是初学者,向大家学习。
...全文
99
13
打赏
收藏
struts登陆中出现的问题
MyEclipse提示: java.lang.NullPointerException 这个到底是什么问题呀,高手们帮帮忙,我是初学者,向大家学习。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zhengqinglangzi
2009-04-22
打赏
举报
回复
空指针异常,这个在WEB开发中一个经常遇到的错误
real518
2009-04-22
打赏
举报
回复
空指针异常,可能传的类中没有值。
micg2233
2009-04-22
打赏
举报
回复
[Quote=引用 1 楼 xnjnmn 的回复:]
空指针
你的对象为空
看api帮助文档
public class NullPointerExceptionextends RuntimeException当应用程序试图在需要对象的地方使用 null 时,抛出该异常。这种情况包括:
调用 null 对象的实例方法。
访问或修改 null 对象的字段。
将 null 作为一个数组,获得其长度。
将 null 作为一个数组,访问或修改其时间片。
将 null 作为 Throwable 值抛出。
应用程序应该抛出该类的实例,指示其他对 null 对象的…
[/Quote]
帮顶下
zhangbolang888
2009-04-22
打赏
举报
回复
是一样的。我的再研究研究了
chenleicom
2009-04-22
打赏
举报
回复
去确认下 页面传值时候 那些属性是否跟实体类里面的属性一样
zhangbolang888
2009-04-22
打赏
举报
回复
// 只包含setter和getter方法的类
package org.lxh.vo ;
import java.util.* ;
public class PersonVo
{
// 表中所有字段
private String name ;
private String password ;
// 此属性用于保存全部错误信息
private List errors ;
public boolean invalidate()
{
boolean flag = true ;
// 验证ID
if(this.name==null||"".equals(this.name))
{
flag = false ;
errors.add("name不能为空!") ;
}
else
{
// 进行长度验证:3~10位
if(this.name.length()<3||this.name.length()>10)
{
flag = false ;
errors.add("name的长度应为3~10位!") ;
}
}
// 验证密码
if(this.password==null||"".equals(this.password))
{
flag = false ;
errors.add("密码不能为空!") ;
}
else
{
// 进行长度验证:3~10位
if(this.password.length()<3||this.password.length()>10)
{
flag = false ;
errors.add("密码的长度应为3~10位!") ;
}
}
return flag ;
}
public void setErrors(List errors)
{
this.errors = errors ;
}
public List getErrors()
{
return this.errors ;
}
// 生成getter和setter方法
public void setName(String name)
{
this.name = name ;
}
public void setPassword(String password)
{
this.password = password ;
}
public String getName()
{
return this.name ;
}
public String getPassword()
{
return this.password ;
}
}
// 本接口定义本项目中所操作person表的全部方法
package org.lxh.dao ;
// 使用PersonVo类
import org.lxh.vo.* ;
public interface PersonDAO
{
// 需要一个登陆验证的方法
public boolean isLogin(PersonVo pv) ;
}
/*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package cn.mldn.lxh.struts.form;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
/**
* MyEclipse Struts
* Creation date: 04-18-2009
*
* XDoclet definition:
* @struts.form name="loginForm"
*/
public class LoginForm extends ActionForm {
/*
* Generated fields
*/
/** password property */
private String password;
/** name property */
private String name;
/*
* Generated Methods
*/
/**
* Method validate
* @param mapping
* @param request
* @return ActionErrors
*/
public ActionErrors validate(ActionMapping mapping,
HttpServletRequest request) {
// TODO Auto-generated method stub
ActionErrors errors = new ActionErrors();
if(this.name==null||"".equals(this.name))
{
errors.add("name",new ActionMessage("name.null")) ;
}
if(this.password==null||"".equals(this.password))
{
errors.add("password",new ActionMessage("password.null")) ;
}
return errors;
}
/**
* Method reset
* @param mapping
* @param request
*/
public void reset(ActionMapping mapping, HttpServletRequest request) {
// TODO Auto-generated method stub
}
/**
* Returns the password.
* @return String
*/
public String getPassword() {
return password;
}
/**
* Set the password.
* @param password The password to set
*/
public void setPassword(String password) {
this.password = password;
}
/**
* Returns the name.
* @return String
*/
public String getName() {
return name;
}
/**
* Set the name.
* @param name The name to set
*/
public void setName(String name) {
this.name = name;
}
}
/*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package cn.mldn.lxh.struts.action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;
import org.lxh.vo.PersonVo;
import cn.mldn.lxh.struts.form.LoginForm;
import org.lxh.factory.*;
/**
* MyEclipse Struts
* Creation date: 04-18-2009
*
* XDoclet definition:
* @struts.action path="/login" name="loginForm" input="/form/login.jsp" scope="request" validate="true"
*/
public class LoginAction extends Action {
/*
* Generated Methods
*/
/**
* Method execute
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward
*/
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
LoginForm loginForm = (LoginForm) form;// TODO Auto-generated method stub
String name = loginForm.getName();
String password = loginForm.getPassword();
PersonVo per = new PersonVo();
per.setName(name);
per.setPassword(password);
if(DAOFactory.getPersonDAOInstance().isLogin(per))
{
request.setAttribute("person",per);
}
else
{
ActionMessages errors = new ActionMessages();
errors.add("error",new ActionMessage("error.login"));
super.saveErrors(request, errors);
return mapping.getInputForward();
}
return mapping.findForward("suc");
}
}
// 具体实现DAO接口的类
package org.lxh.daoimpl ;
// 需要连接数据库
// 需要对VO的内容进行具体的验证
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.lxh.dao.*;
import org.lxh.dbc.*;
import org.lxh.vo.*;
public class PersonDAOImpl implements PersonDAO {
public boolean isLogin(PersonVo pv) {
// TODO Auto-generated method stub
boolean flag = false;
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
DataBaseConnection dbc = null ;
try {
// 2.建立连接
dbc = new DataBaseConnection() ;
String sql = "select name from admin where name=? and password=?";
ps = conn.prepareStatement(sql);
ps.setString(1, pv.getName());
ps.setString(2, pv.getPassword());
rs = ps.executeQuery() ;
// 判断是否有记录
if(rs.next())
{
// 如果有记录,则执行此段代码
// 用户是合法的,可以登陆
flag = true ;
pv.setName(rs.getString(1)) ;
}
// 依次关闭
rs.close() ;
ps.close() ;
}
catch(Exception e)
{
System.out.println(e) ;
}
finally
{
// 最后一定要保证数据库已被关闭
dbc.close(rs, ps, conn) ;
}
return flag;
}
}
javajoy
2009-04-22
打赏
举报
回复
我遇到过这个问题,是因为我的jsp页面传值的时候出错了,你再看看是不是
cjg520jie
2009-04-22
打赏
举报
回复
[Quote=引用 4 楼 zhangbolang888 的回复:]
也就是说,我的jsp页面除了问题,对吗,是不是他没有传值进去,对吗?
[/Quote]
不一定
空指针异常是很常见的,你把整个log贴出来看下,猜知道哪里出的问题啊
zhangbolang888
2009-04-22
打赏
举报
回复
也就是说我的jsp页面出问题了,对吗?他没有把值传进去对吗
zhangbolang888
2009-04-22
打赏
举报
回复
也就是说,我的jsp页面除了问题,对吗,是不是他没有传值进去,对吗?
great1681
2009-04-22
打赏
举报
回复
这是典型的空指针异常,是由于传入了null对象导致的~~
zhangbolang888
2009-04-22
打赏
举报
回复
这个东西我很难处理掉,那位高手能帮我处理一下,能不能说一下struts的工作原理呀
xnjnmn
2009-04-22
打赏
举报
回复
空指针
你的对象为空
看api帮助文档
public class NullPointerExceptionextends RuntimeException当应用程序试图在需要对象的地方使用 null 时,抛出该异常。这种情况包括:
调用 null 对象的实例方法。
访问或修改 null 对象的字段。
将 null 作为一个数组,获得其长度。
将 null 作为一个数组,访问或修改其时间片。
将 null 作为 Throwable 值抛出。
应用程序应该抛出该类的实例,指示其他对 null 对象的非法使用。
struts
2如何实现弹出action返回的错误信息
struts
2如何实现弹出action返回的错误信息
myeclipse8.6 SSH+mysql 网页密码登录实例
myeclipse8.6、JDK1.7、
Struts
2-Spring-Hibernate,初学SSH 好代码 参考了https://blog.csdn.net/qqq824908000/article/details/76842188,修正了其登录失败会
出现
的exception 注意要删除低版本的antlr Window-->...
Struts
1自学教程
Struts
1是
Struts
2学习的基础,懂了
Struts
1,学习
Struts
2会变得很轻松。很多遗留系统,需要...在此次课程
中
在开发过程准备与开发过程完成共两个学时详解了
Struts
1.x的运行机制,这样的教学方式能加深我们对其的理解。
基于J2EE框架的个人博客系统项目毕业设计论文(源码和论文)
由于J2EE的开源的框架
中
提供了MVC模式实现框架
Struts
、对象关系模型
中
的Hibernate 的框架及拥有事务管理和依赖注入的Spring。利用现存框架可以更快开发系统。所以选择Java技术作为blog 的开发工具。 为了增加系统的...
JAVA上百实例源码以及开源项目
在有状态SessionBean
中
,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存
中
清除…… Java Socket 聊天...
Web 开发
81,092
社区成员
341,716
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章