服务器后台登陆使用struts,客户端登录使用servlet,但是现在客户端action不可用,错误:HTTP Status 404 - /em-mallServer/Login--------------------------------------------------------------------------------type Status reportmessage /em-mallServer/Logindescription The requested resource is not available.web:
<!-- struts配置的拦截 -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping> <!-- android请求的拦截 -->
<servlet>
<servlet-name>android_login</servlet-name>
<servlet-class>com.xunfang.em_mallServer.servlet.MyServlet</servlet-class>
<init-param>
<param-name>code</param-name>
<param-value>GBK</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>android_login</servlet-name>
<url-pattern>/user</url-pattern>
</servlet-mapping>jsp:
<center>
<form action="Login" method="post" name="myform"
onsubmit="javascript:return check();">
用户名:
<input type="text" name="username">
<br>
密码:
<input type="password" name="password">
<br>
<input type="submit" value="登录">
</form>
</center>struts:
<package name="struts2" extends="struts-default" namespace="/">
<action name="Login" class="com.xunfang.em_mallServer.action.LoginAction">
<result name="success">/main_page.jsp</result> <!-- 登录成功转到主页面 -->
<result name="failer">/index.jsp</result>
</action>客户端处理的servlet类可以运行正常,后台请求的action出现404错误,求大神解决
<!-- struts配置的拦截 -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping> <!-- android请求的拦截 -->
<servlet>
<servlet-name>android_login</servlet-name>
<servlet-class>com.xunfang.em_mallServer.servlet.MyServlet</servlet-class>
<init-param>
<param-name>code</param-name>
<param-value>GBK</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>android_login</servlet-name>
<url-pattern>/user</url-pattern>
</servlet-mapping>jsp:
<center>
<form action="Login" method="post" name="myform"
onsubmit="javascript:return check();">
用户名:
<input type="text" name="username">
<br>
密码:
<input type="password" name="password">
<br>
<input type="submit" value="登录">
</form>
</center>struts:
<package name="struts2" extends="struts-default" namespace="/">
<action name="Login" class="com.xunfang.em_mallServer.action.LoginAction">
<result name="success">/main_page.jsp</result> <!-- 登录成功转到主页面 -->
<result name="failer">/index.jsp</result>
</action>客户端处理的servlet类可以运行正常,后台请求的action出现404错误,求大神解决
<servlet-name>android_login</servlet-name>
<url-pattern>/user/android_login</url-pattern>
</servlet-mapping>
直接配置死,就访问http://ip:port/webapps/user/android_login就直接访问MyServlet了
servlet和struts不冲突。
<servlet-name>android_login</servlet-name>
<servlet-class>com.xunfang.em_mallServer.servlet.MyServlet</servlet-class>
<init-param>
<param-name>code</param-name>
<param-value>GBK</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>android_login</servlet-name>
<url-pattern>/user</url-pattern>
</servlet-mapping> <!-- ======================================== -->
<filter>
<filter-name>redisp</filter-name>
<filter-class>com.xunfang.em_mallServer.servlet.ReDispatcherFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>redisp</filter-name>
<url-pattern>/</url-pattern>
</filter-mapping> <!-- struts配置的拦截 -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
然后重写ReDispatcherFilter类:
public class ReDispatcherFilter implements Filter {
private int flag; public void destroy() {
// TODO Auto-generated method stub } public void doFilter(ServletRequest req, ServletResponse resp,
FilterChain chain) throws IOException, ServletException {
boolean isIE = false;
HttpServletRequest request = (HttpServletRequest) req;
String target = request.getRequestURI();
target = target.lastIndexOf("?") > 0 ? target.substring(target
.lastIndexOf("/") + 1, target.lastIndexOf("?")
- target.lastIndexOf("/")) : target.substring(target
.lastIndexOf("/") + 1);
System.out.println(target);
System.out.println("111111111111----------->");
}
}