struts1.1,tomcat老是报505错误,问下大家该怎么办?

初学javaweb开发,在学习struts时,先把书上的例子运行一次,可是服务器老是报错。现贴出代码:

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

                                                                                                                            (源代码结构)

 

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

code:

login.jsp

<%@ page language="java" pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
 
<html>
 <head>
  <title>JSP for LoginForm form</title>
 </head>
 <body>
  <html:form action="/login" method="post">
   username : <html:text property="username"/><html:errors property="username"/><br/>
   password : <html:text property="password"/><html:errors property="password"/><br/>
   <html:submit/><html:cancel/>
  </html:form>
 </body>
</html>

 

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

loginaction.java

/*
 * Generated by MyEclipse Struts
 * Template path: templates/java/JavaClass.vtl
 */
package struts.action;

import javax.servlet.http.*;
import org.apache.struts.action.*;
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 struts.form.LoginForm;
import java.util.*;

/**
 * MyEclipse Struts
 * Creation date: 01-14-2013
 *
 * XDoclet definition:
 * @struts.action path="/login" name="loginForm" input="/login.jsp" scope="request"
 */
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 username=loginForm.getUsername();
  String password=loginForm.getPassword();
  
  HttpSession session=request.getSession(true);
  session.removeAttribute("username");
  session.setAttribute("username", username);
   
  ArrayList arr=new ArrayList();
  arr.add(username);
  arr.add(password);
  String prompt;
  LoginHandler login=new LoginHandler();
  boolean mark=login.checkLogin(arr);
  
  if(mark)
   prompt="Success";
  else
   prompt="Fail";
  
  
  
  
  return mapping.findForward(prompt);
 }
}

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

loginhandler.java

package struts.action;


import java.sql.*;
import java.util.*;

public class LoginHandler {

 public LoginHandler(){}
 Connection conn;
 PreparedStatement ps;
 ResultSet rs;
 
 public boolean checkLogin(ArrayList arr)
 {
  conn=DBPool.getConnection();
  
  String name=(String)arr.get(0);
  String password=(String)arr.get(1);
  
  try{
   
   String sql="select * from T_UserInfo1 where username=? and password=?";
   ps=conn.prepareStatement(sql);
   ps.setString(1, name);
   ps.setString(2, password);
   rs=ps.executeQuery();
   if(rs.next())
   {
    DBPool.dbClose(conn,ps,rs);
    return true;
   }
   else
   {
    DBPool.dbClose(conn,ps,rs);
    return false;
   }
  
  }catch(SQLException e)
  {
   return false;
  }
 } 
 
}

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

struts配置文件

<?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="struts.form.LoginForm" />

  </form-beans>

  <global-exceptions />
  <global-forwards />
  <action-mappings >
    <action
      attribute="loginForm"
      input="/login.jsp"
      name="loginForm"
      path="/login"
      scope="request"
      type="struts.action.LoginAction"
      validate="false">
      <set-property property="cancellable" value="true" />
      <forward name="Fail" path="/register.jsp" />
      <forward name="Success" path="/main.jsp" />
    </action>

  </action-mappings>

  <message-resources parameter="struts.ApplicationResources" />
</struts-config>

 

其他代码DBPool.java用于读取mysql服务器连接参数(存放在db.properties资源文件中),建立连接(代码照着书抄的,没问题)。

运行项目时:

点提交,报错!

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:535)
 org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:433)
 org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
 org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
 org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
 javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
 javax.servlet.http.HttpServlet.service(HttpServlet.java:717)


root cause

java.lang.NullPointerException
 struts.action.LoginHandler.checkLogin(LoginHandler.java:23)
 struts.action.LoginAction.execute(LoginAction.java:53)
 org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
 org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
 org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
 org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
 javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
 javax.servlet.http.HttpServlet.service(HttpServlet.java:717)


note The full stack trace of the root cause is available in the Apache Tomcat/6.0.32 logs.


--------------------------------------------------------------------------------

Apache Tomcat/6.0.32

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

服务器日志:

2013-1-16 16:42:57 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet action threw exception
java.lang.NullPointerException
 at struts.action.LoginHandler.checkLogin(LoginHandler.java:23)
 at struts.action.LoginAction.execute(LoginAction.java:53)
 at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
 at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
 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:637)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
 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:233)
 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
 at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
 at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
 at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
 at java.lang.Thread.run(Unknown Source)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值