我写了一个登陆程序。Action类是如下方式
public class LoginAction extends DispatchAction {
public ActionForward selectOneUser(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws Exception {
// TODO Auto-generated method stub
String name=request.getParameter( "name ");
LoginForm loginForm = LoginImplFactory.getLoginInstance().selectOneUser(name);
if(loginForm==null){
request.setAttribute( "errors ", "用户名不存在 ");
return mapping.findForward( "login_failure ");
}else if(!loginForm.getPassword().equals(request.getParameter( "password "))){
request.setAttribute( "errors ", "密码不正确 ");
return mapping.findForward( "login_failure ");
}else{
request.setAttribute( "person ", loginForm);
return mapping.findForward( "login_success ");
}
}
}
Login.jsp 主要代码如下: <html:form action= "login.do?method=selectOneUser "> ... </form>
但是无法运行,错误如下:
HTTP Status 500 - -------------------------------------------------------------------------------- type Exception report message description The server encountered an internal error () that prevented it from fulfilling this request. exception javax.servlet.ServletException: java.lang.NullPointerException
org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:523)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause java.lang.NullPointerException
org.shuye100.struts.action.LoginAction.selectOneUser(LoginAction.java:45)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:274)
org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:194)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.13 logs.
--------------------------------------------------------------------------------
后台错误如下:
警告: Unhandled Exception thrown: class java.lang.NullPointerException
2007-11-9 11:27:57 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet action threw exception
java.lang.NullPointerException
at org.shuye100.struts.action.LoginAction.selectOneUser(LoginAction.java:45)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:274)
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:194)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source) struts-config配置文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd"><struts-config>
<data-sources />
<form-beans >
<form-bean name="loginForm" type="org.shuye100.struts.form.LoginForm" /> </form-beans> <global-exceptions />
<global-forwards />
<action-mappings >
<action
parameter="method"
attribute="loginForm"
input="/login.jsp"
name="loginForm"
path="/login"
scope="request"
type="org.shuye100.struts.action.LoginAction" >
<forward name="login_success" path="/login_success.jsp"/>
<forward name="login_failure" path="/login_failure.jsp"/>
</action> </action-mappings> <message-resources parameter="org.shuye100.struts.ApplicationResources" />
</struts-config>帮帮忙啊!在线等!!谢谢啦!!!!
public class LoginAction extends DispatchAction {
public ActionForward selectOneUser(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws Exception {
// TODO Auto-generated method stub
String name=request.getParameter( "name ");
LoginForm loginForm = LoginImplFactory.getLoginInstance().selectOneUser(name);
if(loginForm==null){
request.setAttribute( "errors ", "用户名不存在 ");
return mapping.findForward( "login_failure ");
}else if(!loginForm.getPassword().equals(request.getParameter( "password "))){
request.setAttribute( "errors ", "密码不正确 ");
return mapping.findForward( "login_failure ");
}else{
request.setAttribute( "person ", loginForm);
return mapping.findForward( "login_success ");
}
}
}
Login.jsp 主要代码如下: <html:form action= "login.do?method=selectOneUser "> ... </form>
但是无法运行,错误如下:
HTTP Status 500 - -------------------------------------------------------------------------------- type Exception report message description The server encountered an internal error () that prevented it from fulfilling this request. exception javax.servlet.ServletException: java.lang.NullPointerException
org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:523)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause java.lang.NullPointerException
org.shuye100.struts.action.LoginAction.selectOneUser(LoginAction.java:45)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:274)
org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:194)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.13 logs.
--------------------------------------------------------------------------------
后台错误如下:
警告: Unhandled Exception thrown: class java.lang.NullPointerException
2007-11-9 11:27:57 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet action threw exception
java.lang.NullPointerException
at org.shuye100.struts.action.LoginAction.selectOneUser(LoginAction.java:45)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:274)
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:194)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source) struts-config配置文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd"><struts-config>
<data-sources />
<form-beans >
<form-bean name="loginForm" type="org.shuye100.struts.form.LoginForm" /> </form-beans> <global-exceptions />
<global-forwards />
<action-mappings >
<action
parameter="method"
attribute="loginForm"
input="/login.jsp"
name="loginForm"
path="/login"
scope="request"
type="org.shuye100.struts.action.LoginAction" >
<forward name="login_success" path="/login_success.jsp"/>
<forward name="login_failure" path="/login_failure.jsp"/>
</action> </action-mappings> <message-resources parameter="org.shuye100.struts.ApplicationResources" />
</struts-config>帮帮忙啊!在线等!!谢谢啦!!!!
解决方案 »
- 如何实现二进制字符串与十六进制字符串互转
- 分不多了全发出来! 求一个 Url传值 jsp传向html
- 一个label可以加几个button???
- List<map> list这样定义是什么原因?
- JTree的用法
- applet如何访问自己所在包的资源?
- 怎么得到一个文件的创建时间?????
- jbpm4实在是太失败了
- 关于JAVA在TEXTPAD执行的问题
- JAVA类中把另2个JAVA类实例作为参数传递给JNI native函数,在VC中怎样调用这2个java类实例的成员变量/函数呢?
- 我就想搞明白frame里如何调用不同panel(panel显示在同一位置上)
- Employee e = new Manager()
class java.lang.NullPointerException 说明你的代码有问题,可能是这里:
else if(!loginForm.getPassword().equals(request.getParameter( "password "))){
request.setAttribute( "errors ", "密码不正确 "); 你前面仅仅判断loginForm!=null是不够的,因为密码可能为空,你贸然使用equals()很可能要甩空指针了。
其他的你再看看吧。
LoginForm loginForm = LoginImplFactory.getLoginInstance().selectOneUser(name);
NAME如果等于NULL的话,LoginImplFactory.getLoginInstance().selectOneUser(name); 会不会出现问题?
还有你DEBUG看看在哪出现的错误,selectOneUser(LoginAction.java:45)45行在哪个位子?