request.setAttribute("result",username);是什么意思?

本文详细解释了request对象的setParameter与getAttribute方法的区别,并通过实例演示了它们在不同场景下的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

request.setAttribute("result",username);
在request对象中加入名为result的属性并附值为username,因为request对象是可以更改的,你可以在同一个请求中象这样访问这个属性。
虽然类似session,但与session是有所区别的,request.setAttribute设置的属性只能在当前request只使用,比如你在Action中设置result属性,需要到jsp页面中读取:
request.setAttribute("result",username);
requests.getRequestDispatcher("result.jsp").forward(request, response);
jsp页面获取该值:
request.getAttribute( "result");

因为一同将当前action的request与response对象都发送过来,相当于直接操作自身页面。


request.getParameter(),request.setAttribute()区别如下:
(1)request.getParameter()取得是通过容器的实现来取得通过类似post,get等方式传入的数据,request.setAttribute()和getAttribute()只是在web容器内部流转,仅仅是请求处理阶段。
(2)request.getParameter()方法传递的数据,会从Web客户端传到Web服务器端,代表HTTP请求数据。request.getParameter()方法返回String类型的数据。
request.setAttribute()和getAttribute()方法传递的数据只会存在于Web容器内部
还有一点就是,HttpServletRequest类有setAttribute()方法,而没有setParameter()方法。
拿一个例子来说一下吧,假如两个WEB页面间为链接关系时,就是说要从1.jsp链接到2.jsp时,被链接的是2.jsp可以通过getParameter()方法来获得请求参数.
假如1.jsp里有
<form name="form1" method="post" action="2.jsp">
请输入用户姓名:<input type="text" name="username">
<input type="submit" name="Submit" value="提交">
</form>的话在2.jsp中通过request.getParameter("username")方法来获得请求参数username:
<% String username=request.getParameter("username"); %>
***
但是如果两个WEB间为转发关系时,转发目的WEB可以用getAttribute()方法来和转发源WEB共享request范围内的数据,也还是说一个例子吧。
有1.jsp和2.jsp
1.jsp希望向2.jsp传递当前的用户名字,如何传递这一数据呢?先在1.jsp中调用如下setAttribute()方法:
<%
String username=request.getParameter("username");
request.setAttribute("username",username);
%>
<jsp:forward page="2.jsp" />
在2.jsp中通过getAttribute()方法获得用户名字:
<% String username=(String)request.getAttribute("username"); %>

5 应用系统的设计与实现 5.1 开发环境简介 本应用系统采用Java语言进行开发,基于B/S架构,使用JDBC作为数据访问接口,集成开发环境为Eclipse。前端采用HTML、CSS和JavaScript技术进行页面设计,后端使用Servlet和JSP技术实现业务逻辑和页面交互。 5.1 系统总体功能模块 系统主要有图书类别管理、出版社管理、图书管理、仓库信息管理、进货管理、入库管理、销售管理、出库管理等几个功能模块。功能模块图如图5-1所示。 图5-1 系统功能模块图 5.2 用户登录模块的设计实现 用户登录模块用于验证用户的身份,只有合法的用户才能进入系统。系统界面截图如图5-2所示。 图5-2 用户登录界面 关键代码如下: java @WebServlet("/login") public class LoginServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username = request.getParameter("username"); String password = request.getParameter("password"); if ("admin".equals(username) && "123456".equals(password)) { HttpSession session = request.getSession(); session.setAttribute("user", username); response.sendRedirect("index.jsp"); } else { request.setAttribute("error", "用户名或密码错误"); request.getRequestDispatcher("login.jsp").forward(request, response); } } } 5.3 图书管理模块的设计与实现 图书管理模块用于对图书的基本信息进行管理,包括查询、录入、删除、修改等操作。系统界面截图如图5-3所示。 图5-3 图书管理界面 关键代码如下: java // BookServlet.java @WebServlet("/book") public class BookServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String action = request.getParameter("action"); if ("list".equals(action)) { List<Book> books = BookDAO.getAllBooks(); request.setAttribute("books", books); request.getRequestDispatcher("book_list.jsp").forward(request, response); } else if ("add".equals(action)) { request.getRequestDispatcher("book_add.jsp").forward(request, response); } else if ("save".equals(action)) { String bookName = request.getParameter("bookName"); String author = request.getParameter("author"); String isbn = request.getParameter("isbn"); double price = Double.parseDouble(request.getParameter("price")); int categoryId = Integer.parseInt(request.getParameter("categoryId")); int publisherId = Integer.parseInt(request.getParameter("publisherId")); Book book = new Book(); book.setBookName(bookName); book.setAuthor(author); book.setIsbn(isbn); book.setPrice(price); book.setCategoryId(categoryId); book.setPublisherId(publisherId); BookDAO.addBook(book); response.sendRedirect("book?action=list"); } } } 使用C语言和mysql
最新发布
06-24
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值