现在的位置: 首页 > 综合 > 正文

Android — Http协议,解析服务器中给定的XML文件时的权限问题

2013年09月01日 ⁄ 综合 ⁄ 共 2223字 ⁄ 字号 评论关闭

如题:要求使用Http协议中的POST方法,解析存在服务器中的XML文件。

服务器使用的是Tomcat搭建,在webapp目录下自定义一个xml文件。

<?xml version="1.0" encoding="utf-8"?>
<error_logs>

<log>
<id name="id">1</id>
<date name="date">2012-04-04 15:45</date>
<from name = "from">the error from 1</from>
<subject name="subject">subject1</subject>
<content name="content">content aaaaaaaaaaaaaaaa</content>
</log>

<log>
<id name="id">2</id>
<date name="date">2012-03-12 11:33</date>
<from name = "from">the_error_from_2</from>
<subject name="subject">subject2</subject>
<content name="content">content bbbbbbbbbbbbbbbbbbb</content>
</log>

<log>
<id name="id">3</id>
<date name="date">2012-03-02 01:00</date>
<from name = "from">the_error_from_3</from>
<subject name="subject">subject3</subject>
<content name="content">content cccccccccccccccccccc</content>
</log>

</error_logs>

 

疑点:这个xml文件,只要是开着服务器,在浏览器中直接输入地址就访问,那么如何屏蔽这种直接访问?

办法:

1、写一个过滤类

 

package me.lechao;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;

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

public class IsLogin implements Filter {
	FilterConfig filterConfig;

	@Override
	public void destroy() {
		this.filterConfig = null;
	}

	@Override
	public void doFilter(ServletRequest arg0, ServletResponse arg1,
			FilterChain arg2) throws IOException, ServletException {
		HttpServletRequest req = (HttpServletRequest) arg0;
		HttpServletResponse res = (HttpServletResponse) arg1;

		String username = req.getParameter("username");
		String password = req.getParameter("password");

		PrintWriter out = res.getWriter();

		if ("1591408983".equals(username) && "123456".equals(password)) {
			//验证成功可以访问,屏蔽23456万字					
		} else {
			out.print("the username or password is error!");
		}
		out.flush();
		out.close();
	}

	@Override
	public void init(FilterConfig arg0) throws ServletException {
		this.filterConfig = arg0;
	}

}

2、在web.xml中配置

  <filter>
	<filter-name>IsLogin</filter-name>
	<filter-class>me.lechao.IsLogin</filter-class>
  </filter>
  <filter-mapping>
	 <filter-name>IsLogin</filter-name>
	 <url-pattern>/error_log.xml</url-pattern>
  </filter-mapping>

 

如此这般操作后,在浏览器中就不能直接访问xml文件了。

抱歉!评论已关闭.