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

本文介绍了一种通过自定义过滤器防止XML文件被浏览器直接访问的方法。利用Java Servlet过滤器,实现了基本的身份验证功能,确保只有经过认证的用户才能访问特定的XML文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如题:要求使用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文件了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值