首页 > 其他分享 >请求和响应

请求和响应

时间:2023-09-29 12:22:19浏览次数:32  
标签:username 请求 userId ServletDemo4 request ServletDemo3 响应 response

第1关:通过 response 对象刷新网页

  • 任务描述
    本关任务:编写一个网页定时刷新并跳转的功能。

  • 相关知识
    为了完成本关任务,你需要掌握 HttpServletResponse 对象的常用方法和应用。

  • 编程要求
    在右侧编辑器 Begin-End 之间补充代码,编写一个模拟用户登录成功2秒后跳转至百度首页的功能,在配置文件中将 Servlet 的访问路径设置为/ServletDemo1。

  • 测试说明
    平台会对你编写的代码进行测试

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        /********** Begin **********/
        response.setContentType("text/html;charset=utf-8");
        response.getWriter().write("用户注册成功,2秒后跳转到百度首页");
        response.setHeader("Refresh", "2;url=http://www.baidu.com");
        /********** End **********/
    }

第2关:通过 request 对象传递数据

  • 任务描述
    本关任务:编写一个通过 HttpRequest 获取,设置和移除对象的程序。

  • 相关知识
    为了完成本关任务,你需要掌握 HttpRequest 对象的作用和常用方法。

  • 编程要求
    在右侧编辑器 Begin-End 之间补充代码,完成使用 HttpRequest 对象传递数据的功能,具体要求如下:

  1. 首先使用 HttpRequest 对象获取属性为username的对象并强转为字符串对象输出;
  2. 使用 HttpRequest 对象设置 username 的属性值为张三并将其输出;
  3. 使用 HttpRequest 移除username属性,再次输出;
  4. 将 Servlet 的访问路径设置为/ServletDemo2,另外特别注意不要删除通过关卡中的 Servlet 配置,否则会通不过关卡,后面关卡也一样,不再做提示。
  • 测试说明
    平台会对你编写的代码进行测试
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        /********** Begin **********/
        response.setContentType("text/html;charset=utf-8");

        String username = (String) request.getAttribute("username");
        response.getWriter().write(username);

        request.setAttribute("username", "张三");
        username = (String) request.getAttribute("username");
        response.getWriter().write(username);

        request.removeAttribute("username");
        username = (String) request.getAttribute("username");
        response.getWriter().write(username);
        /********** End **********/
    }

第3关:请求转发

  • 任务描述
    本关任务:编写一个 Servlet 请求之间转发数据的程序。

  • 相关知识
    为了完成本关任务,你需要掌握 HttpServletRequest 请求转发的三种使用方式以及他们的区别。

  • 编程要求
    在右侧编辑器 Begin-End 之间补充代码,完成 ServletDemo3 向 ServletDemo4 转发(forward)数据的程序,具体要求如下:
    将 ServletDemo3 的访问路径设置为/ServletDemo3,并在类中添加userId属性,值为001;
    当访问/ServletDemo3时转发至/ServletDemo4;
    将 ServletDemo4 的访问路径设置为/ServletDemo4,并获取 ServletDemo3 中的userId进行输出;
    在 ServletDemo4 中模拟获取用户userId对应的信息,即用输出语句将信息输出至网页。信息包括用户名张三,用户年龄20;
    具体输出信息格式参考测试说明。
    编写在一个 servlet 查询到用户id,然后请求转发到另外一个 servlet,再通过该用户 id 来获取用户信息进行响应。

  • 测试说明
    平台会对你编写的代码进行测试

web.xml:

  <!-- ********** Begin ********** -->
  <servlet>
    <servlet-name>ServletDemo1</servlet-name>
    <servlet-class>com.educode.servlet.ServletDemo1</servlet-class>
   </servlet>

   <servlet-mapping>
      <servlet-name>ServletDemo3</servlet-name>
      <url-pattern>/ServletDemo3/url-pattern>
   </servlet-mapping>
   
   <servlet-mapping>
      <servlet-name>ServletDemo4</servlet-name>
      <url-pattern>/ServletDemo4</url-pattern>
   </servlet-mapping>
  <!-- ********** End ********** -->

ServletDemo3.java

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        /********** Begin **********/
        String userId = "001";
        request.setAttribute("userId",userId);
        // 转发到ServletDemo4
        response.getRequestDispatcher("/ServletDemo4").forward(request, response);
        /********** End **********/
    }

ServletDemo4.java

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        /********** Begin **********/
        //设置输出格式
		response.setContentType("text/html;charset=utf-8");
        PrintWriter out = response.getWriter();
        
        String userId = (String)request.getAttribute("userId");
        
        out.println("查询编号为" + userId + "的用户信息如下:");
        out.println("用户名为:张三");
        out.println("用户年龄为:20");
        /********** End **********/
    }

标签:username,请求,userId,ServletDemo4,request,ServletDemo3,响应,response
From: https://www.cnblogs.com/leiteorz/p/17736897.html

相关文章

  • FastAPI学习-25.response_model 定义响应模型
    你可以在任意的_路径操作_中使用 response_model 参数来声明用于响应的模型:@app.get()@app.post()@app.put()@app.delete()fromtypingimportAny,List,UnionfromfastapiimportFastAPIfrompydanticimportBaseModelapp=FastAPI()classItem(BaseModel)......
  • 问题:对控制器类型“VideoController”的操作“UserVideos”的当前请求在下列操作方法
      这应该是你写了两个UserVideos()方法,翻看一下你的VideoController控制器,如果是多写了一个UserVideos()方法把多写的那个注销删除就可以了。(在其他情况下如果遇到操作方法不明确或者定义不明确可以先看看是不是什么东西写重复了) ......
  • Nginx与Tomcat、Client之间请求的长连接配置不一致问题分析解决
    nginx1.Nginx-反向代理nginx.conf:http{...###与Client连接的长连接配置###http://nginx.org/en/docs/http/ngx_http_core_module.html#keepalive_requests#设置通过"一个存活长连接"送达的最大请求数(默认是100,建议根据客户端在"keepa......
  • 网络请求-本机
    参考 https://cloud.tencent.com/developer/article/1839865本机网络通信的内核执行流程 跨机网络IO的流程是: 开篇三个问题的答案1)问题1:127.0.0.1本机网络IO需要经过网卡吗?通过本文的叙述,我们确定地得出结论,不需要经过网卡。即使了把网卡拔了本机网络是否还可以......
  • springcloud gateway 获取响应体进行加密操作,byte[]转换String乱码
    记录一下困扰一星期的问题!在全局过滤器中,获取响应体进行加密操作,在拿到byte[]之后转成String,控制台打印出来是乱码,编码也加了UTF-8还是报错。publicMono<Void>filter(ServerWebExchangeexchange,GatewayFilterChainchain){ServerHttpResponseoriginalResponse=ex......
  • 测试域名跨域请求
    域名请求测试 curl-I-H"Origin:www.yht.com"-v"https://www.yht.com/app/work-share/js/libpag.wasm"该命令是使用curl工具发送HTTP请求的示例。它使用了以下参数:-H"Origin:www.yht.com":设置HTTP头部中的Origin字段为www.yht.com。Origin字段通常用于跨域请求的安全验证。......
  • Tekton触发器请求流程
    Tekton是一个用于构建、测试和部署云原生应用程序的开源框架。Tekton触发器(TektonTriggers)是Tekton的一个组件,它允许你定义和触发任务和管道的执行。触发器可以基于事件来触发任务或管道的执行,这些事件可以是源代码的提交、镜像的推送、定时触发等。......
  • nginx配置允许跨域请求
    要在Nginx中设置跨域允许,您可以使用add_header指令来添加CORS(跨源资源共享)响应头。以下是一个示例Nginx配置,演示如何允许跨域请求:server{listen80;server_nameyour_domain.com;location/{#允许所有来源的跨域请求add_header'Access-Con......
  • 一款免费的响应式界面调试工具
    不知道大家平时开发响应式前端代码是如何调试的?是不是也跟我一样,通过浏览器的开发者工具来切换不同的界面尺寸来看验证效果呢?可能是因为习惯了,平时就不停的切换不同尺寸来看效果。直到TJ君看到今天要推荐的这个免费工具,我才发现之前的调试方式好傻...使用体验下面,我们还一起来......
  • echarts 响应式自动适应宽度
    beforeMount(){window.addEventListener('resize',this.$_resizeHandler)},beforeDestroy(){window.removeEventListener('resize',this.$_resizeHandler)},  ......