起航学习网

- 让每个人都能学到最前沿新知识、新技能!
起航学习网
当前位置: 起航学习网 > 短期培训 > 编程语言 > Java中的跨域请求

Java中的跨域请求

时间:2022-08-14 14:43:28来源:零基础学Java 作者:Java学习网 已有: 名学员访问该课程

  快捷搜索:java跨域请求

前言: Java中的跨域请求 与 ABAP 中类似的逻辑。 使用名为HelloWorldServlet的 servlet 在 Java 中创建一个动态 Web 项目: 将以下实

Java中的跨域请求

与 ABAP 中类似的逻辑。

使用名为“HelloWorldServlet”的 servlet 在 Java 中创建一个动态 Web 项目:

将以下实现源代码复制到 Servlet 中:

public class HelloWorldServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
    public HelloWorldServlet() {
        super();
    }
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {	
    	List<String> allowedUserId = Arrays.asList(getServletContext().getInitParameter("userIds").trim().split(","));
        String clientOrigin = request.getHeader("origin");
        String ipAddress = request.getHeader("x-forwarded-for");
        if (ipAddress == null) {
            ipAddress = request.getRemoteAddr();
        }
        String userId = request.getParameter("userId");
        if( userId != null)
        	userId = userId.trim();
        if( allowedUserId.contains(userId)){
        	response.setHeader("Access-Control-Allow-Origin", clientOrigin);
        }
        if( ipAddress.equals("0:0:0:0:0:0:0:1"))
        	response.getWriter().println("local one");
        else
        	response.getWriter().println("Hello World!");
    }
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}
}

WEB-INF 文件夹中的 web.xml,允许的用户 ID 列在节点 <context-param> 中。

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://java.sun.com/xml/ns/javaee"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	id="WebApp_ID" version="2.5">
	<display-name>JerryTest</display-name>
	<welcome-file-list>
		<welcome-file>Hello</welcome-file>
		<welcome-file>index.html</welcome-file>
	</welcome-file-list>
	<context-param>
		<param-name>userIds</param-name>
		<param-value>i042416,i042417,i042418</param-value>
	</context-param>
	<servlet>
		<description></description>
		<display-name>HelloWorldServlet</display-name>
		<servlet-name>HelloWorldServlet</servlet-name>
		<servlet-class>helloworld.HelloWorldServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<!-- http://stackoverflow.com/questions/4140448/difference-between-and-in-servlet-mapping-url-pattern -->
		<servlet-name>HelloWorldServlet</servlet-name>
		<url-pattern>/Hello</url-pattern>
	</servlet-mapping>
</web-app>

现在使用列表中未包含的用户 id 访问 servlet,请求失败:

并通过请求中指定的允许用户 ID 执行正面测试:

请求成功处理并返回浏览器:

文章出自:http://qh.itpxw.cn/peixun/software/2022123667.html

文章标题:Java中的跨域请求



免责声明:本站文章均由入驻起航学习网的会员所发或者网络转载,所述观点仅代表作者本人,不代表起航学习网立场。如有侵权或者其他问题,请联系举报,必删。侵权投诉

你也许会喜欢如下的文章?
(责任编辑:深圳学历教育网)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
培训学校
IT培训网 访问该机构站点 报名留言 加为好友 用户等级:注册会员 用户级别:10 机构名称:IT培训网 联 系 人:罗老师 联系电话:13783581536 联系手机:13783581536 在线客服:起航学习网客服 在 线 QQ:起航学习网客服 电子邮件: 网站域名:http://www.itpxw.cn 注册时间:2016-07-18 11:07 最后登录:2024-02-20 13:02
推荐内容