request请求转发和request域运用

1.请求转发
1.概述:让服务器跳转到另一个资源上
2.方法
    1.request.getRequestDispatcher("跳转资源路径").forward(request, response);
2.域对象
1.作用:实现servlet与servlet之间的数据传输功能
2.例如:Request本质上就是一个域对象, 域对象就是一个容器。
3.域对象的方法
1.request.setAttribute(key,value);往request对象中存数据
2.requet.getAttribute(key) 从request对象中取数据
3.request.removeAttribute(key) 删除request中的数据。
4.域对象存储数据的方式是键值对
4.代码
1.Html代码:
<html>
<head>
<title>reg.html</title>
</head>
<body>
<form action="/day36_login/userServlet" method="post">
用户名:<input type="text" name="username"/><br/>
密码:<input type="password" name="password"/><br/>
<input type="submit" value="提交"/>
</form>
</body>
</html>
2.UserServlet代码:
public class UserServlet extends HttpServlet {
private UserDao userDao = new UserDao();
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//解决乱码
request.setCharacterEncoding("utf-8");
//获取请求参数
String userName = request.getParameter("username");
String password = request.getParameter("password");
User user = new User(userName,password);
//把数据存储到数据库中
userDao.save(user);
// 往request域对象存储数据
request.setAttribute("USER",user);

//跳转到另外一个Servlet上显示注册是否成功的信息。
request.getRequestDispatcher("/infoServlet").forward(request, response); //请求转发,跳转到infoServlet

}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
3.InfoServlet代码:
public class InfoServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//从域对象对象中取出数据
User user = (User) request.getAttribute("USER");(强转)
OutputStream out = response.getOutputStream();
out.write(("<h1>恭喜"+user.getUsername()+"注册成功</h1>").getBytes());
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}

}

原文地址:https://www.cnblogs.com/huifeidezhuzai/p/10884135.html

时间: 2024-10-11 02:30:27

request请求转发和request域运用的相关文章

request 请求转发

package request; import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse; //request请求转发,以及使用request域对象吧数据带给转发资源p

javaWeb中request请求转发和response重定向

1.访问资源 运用forward方法只能重定向到同一个Web应用程序中的一个资源. 而sendRedirect方法可以让你重定向到任何URL. 2.request.get Forward代码中的"/uu"则代表相对与WEB应用的路径. 举例: Servlet 和 目标文件的包路径: Servlet  代码:中 doPost 和doGet代码: request 重定向url地址 或者是是相对于 本项目 (WEB13)  http:localhost:8080/WEB13+url     

黑马day04 request&amp;请求转发

到此为止:已经学习了两个域对象: servletContext:web应用 request:仅仅用于同一个请求 作用范围:整个请求链上 生命周期:当服务器收到一个请求,创建出代表请求的request对象,request开始.当请求结束,服务器销毁代表请求的request对象,request域结束. 作用:在整个请求链范围内共享数据,通常我们在Servlet中处理好的数据会存入request域后请求转发到jsp页面来进行展示 setAttribute getAttribute removeAttr

request实现请求转发

ServletContext可以实现请求转发,request也可以. 在forward之前输入到response缓冲区中的数据,如果已经被发送到了客户端,forward将失败,抛出异常 在forward之前输入到response缓冲区中的数据,但是还没有发送到客户端,forward可以执行,但是缓冲区将被清空 ,之前的数据丢失.注意丢失的只是请求体中的内容,头内容仍然有效. 在一个Servlet中进行多次forward也是不行的,因为第一次forward结束,response已经被提交了,没有机

Servlet的学习之Request请求对象(3)

本篇接上一篇,将Servlet中的HttpServletRequest对象获取RequestDispatcher对象后能进行的[转发]forward功能和[包含]include功能介绍完. 首先来看RequestDispatcher对象的“转发”功能: 在<Servlet的学习(五)>中说过,使用ServletContext对象的getRequestDispatcher方法可以获得转发对象RequestDispatcher对象,将请求进行转发给其他的Servlet或者JSP处理,同时在该篇的结

请求转发:MVC设计模式、细节、请求域属性的编程实例、请求重定向和请求转发的区别

MVC设计模式将一次请求的响应过程分成三个功能模块(一般称之为层)来协同完成,这三个模块分别是Model(模型层).View(视图层).Controller(控制层). Model是可作为JavaBean使用的业务对象:View是负责创建显示界面的JSP页面:Controller通常是一个接收用户请求的Servlet程序,它根据请求创建相应的model对象和调用model对象的业务方法,最后再选择一个View去创建网页文档内容并回送给客户端. Controller调用RequestDispatc

请求转发和请求重定向区别

请求转发: 1.request由服务器执行,客户端只发一次请求. 2.地址栏地址不变 3.转发能够传递数据,request域 4.请求转发完成后,目的页面jsp或者html的css样式可能加载不了,原因是路劲错误(正在思考.......) 请求重定向: 1.response由客户端执行,客户端发送两次请求. 2.地址栏地址发生改变 3.不能传递数据,如果想能够传递数据,要搭配session域进行数据传递. 4.可以跳转到其他应用,包括外站. 5.请求重定向完成后,目的页面jsp或者html的cs

Jsp 重定向、请求转发

请求转发:request.getRequestDispatcher(URL地址).forward(request, response) 原理: 客户端发送请求,Servlet1做出处理. Servlet1调用sendReadirect()方法,将请求转发给Servlet2来处理请求,为客户端服务. Servlet2对客户端浏览器做出响应. 请求转发允许把请求转发给同一应用程序中的其他Web组件.这种技术通常用于Web应用控制层的Servlet流程控制器,它检查HTTP请求数据,并将请求转发到合适

Servlet 请求转发和重定向的区别

重定向和转发有一个重要的不同:当使用转发时,服务器将使用一个内部的方法来调用目标页面,新的页面继续处理同一个请求,而浏览器将不会知道这个过程. 与之相反,重定向方式的含义是第一个页面通知浏览器发送一个新的页面请求.因为,当你使用重定向时,浏览器中所显示的URL会变成新页面的URL, 而当使用转发时,该URL会保持不变.重定向的速度比转发慢,因为浏览器还得发出一个新的请求.同时,由于重定向方式产生了一个新的请求,所以经过一次重 定向后,request内的对象将无法使用. 怎么选择是重定向还是转发呢