一个登陆的示例,一个登陆页面,一个返回页面显示登录用户名,密码信息。Action为LoginAction.java:
login.jsp:
<form action="login.action" method="post" name="form1">
username:<input type="text" name="username"><br>
password<input type="text" nzme="password">
<input type="submit" name="sub" value="login">
</form>
下面是result.jsp:
<body>
<center>
<h1>username:${requestScope.username}</h1>
<h1>passord:${requestScope.password}</h1>
</center>
</body>
LoginAction:
package com.test.action;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport{
private String username;
private String password;
public void setUsername(String name){
this.username=name;}
public void setPassword(String pass){
this.password=pass;}
public String getUsername(){
return username;}
public String getPassword(){
return password;}
public String execute()throws Exception{
return SUCCESS;}
}
web.xml配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<filter>
<filter-name>struts2_clear</filter-name>
<filter-class>org.apache.dispatcher.ActionContextCleanUp</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2_clear</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*.action</url-pattern>
</filter-mapping>
</web-app>
struts.xml配置:<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<!-- Overwrite Convention -->
<constant name="struts.derMode" value="true"/>
<package name="struts2" extends="struts-default">
<action name="login" class="com.test.action.LoginAction">
<result name="success">/result.jsp</result>
</action>
</package>
</struts>
login.jsp:
<form action="login.action" method="post" name="form1">
username:<input type="text" name="username"><br>
password<input type="text" nzme="password">
<input type="submit" name="sub" value="login">
</form>
下面是result.jsp:
<body>
<center>
<h1>username:${requestScope.username}</h1>
<h1>passord:${requestScope.password}</h1>
</center>
</body>
LoginAction:
package com.test.action;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport{
private String username;
private String password;
public void setUsername(String name){
this.username=name;}
public void setPassword(String pass){
this.password=pass;}
public String getUsername(){
return username;}
public String getPassword(){
return password;}
public String execute()throws Exception{
return SUCCESS;}
}
web.xml配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<filter>
<filter-name>struts2_clear</filter-name>
<filter-class>org.apache.dispatcher.ActionContextCleanUp</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2_clear</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*.action</url-pattern>
</filter-mapping>
</web-app>
struts.xml配置:<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<!-- Overwrite Convention -->
<constant name="struts.derMode" value="true"/>
<package name="struts2" extends="struts-default">
<action name="login" class="com.test.action.LoginAction">
<result name="success">/result.jsp</result>
</action>
</package>
</struts>
就会出现404错误但是除掉web.xml中的filter配置,就能进入login.jsp页面:
我把sruts-2.1.8中lib包中所有jar包都考进了WEB-INF下的lib里面myeclipse:
windows-preference-java-instaedJRES:jre1.6.0_06
tomcatJDK:
jre1.6.0_06:
tomcat启动信息:
2009-10-19 9:34:52 org.apache.tomcat.util.digester.SetPropertiesRule begin
警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'debug' to '0' did not find a matching property.
2009-10-19 9:34:52 org.apache.tomcat.util.digester.SetPropertiesRule begin
警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'debug' to '0' did not find a matching property.
2009-10-19 9:34:52 org.apache.tomcat.util.digester.SetPropertiesRule begin
警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'debug' to '0' did not find a matching property.
2009-10-19 9:34:52 org.apache.tomcat.util.digester.SetPropertiesRule begin
警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'debug' to '0' did not find a matching property.
2009-10-19 9:34:52 org.apache.tomcat.util.digester.SetPropertiesRule begin
警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'debug' to '0' did not find a matching property.
2009-10-19 9:34:52 org.apache.catalina.core.AprLifecycleListener init
信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jre1.6.0_06\bin;C:\Tomcat 6.0\bin
2009-10-19 9:34:52 org.apache.coyote.http11.Http11Protocol init
严重: Error initializing endpoint
。。
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
/*
http://localhost:8088/struts2/
出现404是找不到文件
*/
//在web.xml下有个index.jsp改成login.jsp要是还出现404那你就在配下stratus
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>
问题就出现在FILTER配置那块
Caused by: java.lang.IllegalArgumentException: Invalid <url-pattern> /*.action in filter mapping
at org.apache.catalina.core.StandardContext.addFilterMap(StandardContext.java:2169)
... 46 more
2009-10-19 9:51:45 org.apache.catalina.startup.ContextConfig applicationWebConfig
严重: Parse error in application web.xml file at jndi:/localhost/struts2/WEB-INF/web.xml
java.lang.IllegalArgumentException: Invalid <url-pattern> /*.action in filter mapping
严重: Parse error in application web.xml file at jndi:/localhost/struts2/WEB-INF/web.xml
java.lang.IllegalArgumentException: Invalid <url-pattern> /*.action in filter mapping
at org.apache.tomcat.util.digester.Digester.createSAXException(Digester.java:2726)
at org.apache.tomcat.util.digester.Digester.createSAXException(Digester.java:2752)
at org.apache.tomcat.util.digester.Digester.endElement(Digester.java:1061)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:601)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1774)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2930)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:807)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1562)
at org.apache.catalina.startup.ContextConfig.applicationWebConfig(ContextConfig.java:369)
at org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:1062)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:261)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4236)
at org.apache.catalina.startup.HostConfig.checkResources(HostConfig.java:1105)
at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1203)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:293)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1337)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1601)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1610)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1590)
at java.lang.Thread.run(Thread.java:619)
2009-10-19 9:54:58 org.apache.catalina.startup.ContextConfig applicationWebConfig
严重: Occurred at line 22 column 20
2009-10-19 9:54:58 org.apache.catalina.startup.ContextConfig start
严重: Marking this application unavailable due to previous error(s)
2009-10-19 9:54:58 org.apache.catalina.core.StandardContext start
严重: Error getConfigured
2009-10-19 9:54:58 org.apache.catalina.core.StandardContext start
严重: Context [/struts2] startup failed due to previous errors
java.lang.IllegalArgumentException: Invalid <url-pattern> /*.action in filter mapping都提示了。 把 web.xml 中的 <url-pattern> /*.action 改为 <url-pattern>/* </url-pattern>
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>也没必要
filter里url配置改成这样也不能行
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
把web.xml力的filter配置删去:输入:http://localhost:8080/struts2/就能进入index页面和链接到login页面加上filter配置就会出现404错误
<filter-name>action</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>action</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>struts-cleanup</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ActionContextCleanUp
</filter-class>
</filter>
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts-cleanup</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
自己改下
struts-2.18解压时出现:应该不会影响里面的包吧! .8-all.zip: 把 struts-2.1.8\docs\WW\the-struts-2-request-flow.data\index.html?C: 正在尝试更正非法文件名
! D:\TDDOWNLOAD\struts-2.1.8-all.zip: 把 struts-2.1.8\docs\WW\index.html?C=S;O=D.html 重命名为 struts-2.1.8\docs\WW\index.html_C=S;O=D.html
! D:\TDDOWNLOAD\struts-2.1.8-all.zip: 无法创建 struts-2.1.8\docs\WW\index.html?C=D;O=D.html
! 文件名、目录名或卷标语法不正确。
! D:\TDDOWNLOAD\struts-2.1.8-all.zip: 正在尝试更正非法文件名
! D:\TDDOWNLOAD\struts-2.1.8-all.zip: 把 struts-2.1.8\docs\WW\index.html?C=D;O=D.html 重命名为 struts-2.1.8\docs\WW\index.html_C=D;O=D.html
at org.apache.catalina.core.StandardContext.addFilterMap(StandardContext.java:2169)
... 46 more
就这个错误来看,6楼的答案99.9%是对的
如果出现了其他的错误,再贴出来
是这个错