servlet.service() for servlet action threw exception,错误找不到,急
错误信息:
严重: Servlet.service() for servlet action threw exception
java.lang.NullPointerException
at com.yourcompany.struts.form.LoginForm.validate(LoginForm.java:41)
at org.apache.struts.action.RequestProcessor.processValidate(RequestProcessor.java:950)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:207)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
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:228)
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:216)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:634)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445)
at java.lang.Thread.run(Unknown Source)
代码如下:
package com.yourcompany.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;
import JudgmentExpression.RegularExpression;
import org.hibernate.Query;
import org.hibernate.Session;
import java.util.ArrayList;
import hib.HibernateSessionFactory;
import Bean.Login;
public class LoginForm extends ActionForm {
private String loginPsd;
private String loginName;
Session session=HibernateSessionFactory.getSession();
public ActionErrors validate(ActionMapping mapping,
HttpServletRequest request) {
ActionErrors err=new ActionErrors();
//判断账户和密码是否为空
if(this.getLoginName().equals("")){
err.add("noemail", new ActionMessage("noemailmessage"));//添加错误信息
return err;}
if(this.getLoginPsd().equals("")){
err.add("nopassword", new ActionMessage("nopasswordmessage"));//添加错误信息
return err;}
//判断是否是Email
RegularExpression re=new RegularExpression();
if (re.checkEmail(this.getLoginName())==false){
//从数据库中查找是否有此账户
String sel="from Login lg where lg.username='" +this.getLoginName()+"' and lg.psd='"+this.getLoginPsd()+"'";
System.out.println(sel);
Query query=session.createQuery(sel);//出错的行
ArrayList<Login> list=(ArrayList<Login>)query.list();
Login temp=(Login)list.get(0);
if (temp==null){
err.add("notemail", new ActionMessage("notexists"));
}
return err;
}
}
public void reset(ActionMapping mapping, HttpServletRequest request) {
}
public String getLoginPsd() {
return loginPsd;
}
public void setLoginPsd(String loginPsd) {
this.loginPsd = loginPsd;
}
public String getLoginName() {
return loginName;
}
public void setLoginName(String loginName) {
this.loginName = loginName;
}
}
数据库已连接,但不知错误在哪里