同时使用servlet和struts的拦截方法:

同时使用servlet和struts的拦截方法:


<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
	<!-- 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>


	<!-- ======================================== -->
	<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>
	<!-- 初始界面 -->
	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>




	<servlet>
		<servlet-name>second</servlet-name>
		<servlet-class>com.xunfang.em_mallServer.servlet.SearchServlet</servlet-class>
		<init-param>
			<param-name>code</param-name>
			<param-value>GBK</param-value>
		</init-param>
	</servlet>
	<servlet-mapping>
		<servlet-name>second</servlet-name>
		<url-pattern>/goods</url-pattern>
	</servlet-mapping>


</web-app>
然后重写
FilterDispatcher类:
package com.xunfang.em_mallServer.servlet;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.PrintWriter;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;

import com.xunfang.ecshop.entity.User;
import com.xunfang.em_mallServer.action.LoginAction;
import com.xunfang.em_mallServer.util.Constant;

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----------->");
		try {

			// 输入
			try {
				InputStream inputStream = request.getInputStream();
				ObjectInputStream objectInputStream = new ObjectInputStream(
						new BufferedInputStream(inputStream));
				Object obj = objectInputStream.readObject();
				objectInputStream.close();
				System.out.println("接收到对象" + obj + "");
				((User) obj).toString();
				// 获取用户名密码与数据库匹配
				String name = ((User) obj).getName();
				String pwd = ((User) obj).getPassword();
				if (LoginAction.loginAndroid(name, pwd)) {
					System.out.println("login success :)");
					flag = Constant.F_LOGIN_SUCCESS;
				} else {
					flag = Constant.F_LOGIN_FAIL;
					System.out.println("login fail :(");
				}
			} catch (Exception e) {
				System.out.println("请求异常--->" + e);
				isIE = true;
			}
			if (!isIE) {
				// 输出
				ServletOutputStream outputStream = resp.getOutputStream();
				BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(
						outputStream);
				ObjectOutputStream objectOutputStream = new ObjectOutputStream(
						bufferedOutputStream);
				User m = new User();
				switch (flag) {
				case 1:
					m.setReturn_flag(1);
					m.setNickname("马丽苏");
					break;
				case 2:
					m.setReturn_flag(3);
					break;
				case 3:
					m.setReturn_flag(5);
					break;
				case 4:
					m.setReturn_flag(7);
					break;
				}

				objectOutputStream.writeObject(m);
				objectOutputStream.close();
			} else {
				resp.setContentType("text/html;charset=gbk");
				PrintWriter out = resp.getWriter();
				out
						.print("<P align=center><font size=3 color=red>网络请求异常bbbb</font></p>");
				out.flush();
				out.close();
			}
		} catch (Exception e) {
			e.printStackTrace();
			System.out.println("flag异常--->" + e);
		}
	}

	public void init(FilterConfig arg0) throws ServletException {
		// TODO Auto-generated method stub

	}

}






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值