我不知道咋运用了。顺便请老师给个正确的方法

来源:2-6 自由编程

dobe001

2019-08-10 11:29:41

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
    <form action="/direct/rs">
        <input type="text" name="num" placeholder="请输入100以内的数字">
        <input type="submit" value="求累加和">
    </form>
</body>
</html>
package com.ccc.direct;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class RequestServlet
 */
@WebServlet("/direct/rs")
public class RequestServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	/**
	 * @see HttpServlet#HttpServlet()
	 */
	public RequestServlet() {
		super();
		// TODO Auto-generated constructor stub
	}

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		String num=request.getParameter("num");
		int n=Integer.parseInt(num);
		int sum=0;
		for(int i=0;i<=n;i++) {
			sum+=i;
		}
		request.setAttribute("result", sum);
		request.getRequestDispatcher("/direct/rs1").forward(request, response);;
	}

}
package com.ccc.direct;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class ReponseServlet
 */
@WebServlet("/direct/rs1")
public class ResponseServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	/**
	 * @see HttpServlet#HttpServlet()
	 */
	public ResponseServlet() {
		super();
		// TODO Auto-generated constructor stub
	}

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
//		response.sendRedirect("/ServletProj/direct/rs1");
		String num=request.getParameter("num");
		String result=request.getAttribute("result").toString();
		PrintWriter out=response.getWriter();
		out.println("<h1>"+num+"累加和为:"+result+"</h1>");
		
	}

}

response.sendRedirect("/ServletProj/direct/~~~~");这个地方最迷糊 看别人的 好像没有用这个。也不知道什么时候该用

写回答

3回答

好帮手慕阿满

2019-08-10

同学你好,404错误是路径问题,如:

http://img.mukewang.com/climg/5d4e85ce0001e25c07040145.jpg

同学的项目名是ServletProj吗?在映射到/direct/rs时,有两个项目名。在html的form表单的action中,应该是action="/ServletProj/direct/rs",建议同学检查一下。

祝:学习愉快~

0
hobe001
h 已经自行找出原因
h019-08-10
共2条回复

dobe001

提问者

2019-08-10

http://img.mukewang.com/climg/5d4e78b80001dbe807440188.jpg

我觉得我第三段的代码写的是有问题的。

0

好帮手慕阿满

2019-08-10

同学你好,同学的代码整体完成的不错,不过在html页面的form表单的action中,建议加上项目名。另外关于同学的问题,response.sendRedirect()是重定向,在跳转页面时使用。跳转时,可以使用转发或者重定向,关于转发和重定向,建议同学重新学习一下2-1和2-4.

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

0
hobe001
h HTML跳转之后时错误404。
h019-08-10
共1条回复

0 学习 · 9666 问题

查看课程