第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 对象传递数据的功能,具体要求如下:
- 首先使用 HttpRequest 对象获取属性为username的对象并强转为字符串对象输出;
- 使用 HttpRequest 对象设置 username 的属性值为张三并将其输出;
- 使用 HttpRequest 移除username属性,再次输出;
- 将 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