当前位置: 代码迷 >> J2EE >> struts不能进入action,很烦恼,求指点
  详细解决方案

struts不能进入action,很烦恼,求指点

热度:13   发布时间:2016-04-17 23:04:59.0
struts不能进入action,很苦恼,求指点
刚开始学struts,写了最简单的登陆页面,无法从Login.jsp进入action

web.xml如下
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>Struts_Test</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  
  
  <servlet>
   <servlet-name>action</servlet-name>
   <servlet-class>org.apache.struts.action.ActionServlet.class</servlet-class>
  
   <init-param>
   <param-name>config</param-name>
   <param-value>/WEB-INF/struts-config.xml</param-value>
   </init-param>
  </servlet>
  
  <servlet-mapping>
   <servlet-name>action</servlet-name>
   <url-pattern>*.do</url-pattern>
  </servlet-mapping>
</web-app>



struts-config.xml代码如下
<?xml version="1.0" encoding="ISO-8859-1" ?>

<!DOCTYPE struts-config PUBLIC
          "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
          "http://struts.apache.org/dtds/struts-config_1_3.dtd">

<struts-config>

    <action-mappings>
    <action path="/login" type="com.amaker.action.LoginAction">
            <forward name="success" path="/Success.jsp"/>
            <forward name="failure" path="/Failure.jsp"/>
    </action>
    </action-mappings>


</struts-config>




Login.jsp如下
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'Login.jsp' starting page</title>
    
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">    
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->

  </head>
  
  <body>
    <form name="f1" id="f1" action="<%=path %>/login.do" method="post">
      <table>
        <tr>
          <td>Username:</td>
          <td><input type="text" name="username" id="username"></td>
        </tr>
        <tr>
          <td>Password:</td>
          <td><input type="password" name="password" id="password"></td>
        </tr> 
        <tr>
          <td colspan="2"><input type="submit"></td>
        </tr>
      </table>
    </form>
  </body>
</html>


LoginAction代码如下
package com.amaker.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;

public class LoginAction extends Action{


@Override
public ActionForward execute(ActionMapping mapping, ActionForm f,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
// TODO Auto-generated method stub
String username = request.getParameter("username") ;
String password = request.getParameter("password") ;
System.out.println("zhixing------------------------") ;
if(username!=null && username.equals("amaker")){
return mapping.findForward("success") ;
}else {
return mapping.findForward("failure") ;
}


}


}


每次输入完账号密码就直接
javax.servlet.ServletException: Error instantiating servlet class org.apache.struts.action.ActionServlet.class
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
java.lang.Thread.run(Unknown Source)

------解决思路----------------------
jar包都放到lib下面了没
------解决思路----------------------
把你邮箱发给我,我们最近也在学习struts2我也写了一个登录界面
------解决思路----------------------
为什么你的web.xml里面的 <welcome-file-list>填那么多的欢迎页? <welcome-file-list>里面只用填的是你的首页,那么你的的浏览器就会在首次打开的就是这个页面,比如 <welcome-file-list>index.jsp </welcome-file-list>
  相关解决方案