jsp中setAttribute,getAttribute和getParameter用法

 

1.getAttribute是取得jsp setAttribute設定的attribute值 
2.getParameter()
得到的是客户端传的String型参数,即POST/GET传递的参数值,而getAttribute得到的是object 

request.setAttribute()getAttribute()方法传递的数据只会存在于Web容器内部,在具有转发关系的Web组件之间共享。即request.getAttribute()方法返回request范围内存在的对象,而request.getParameter()方法是获取http提交过来的数据。


getAttribute()是获取对象容器中的数据值,getAttribute()是获取SESSION的值;

getAttribute
:用于服务器端重定向时,即在sevlet中使用了forward函数,struts中使用了mapping.findForwardgetAttribute只能收到程序用setAttribute传过来的值。


setAttribute 
是应用服务器把这个对象放在该页面所对应的一块内存中去,当你的页面服务器重定向到另一个页面时,应用服务器会把这块内存拷贝另一个页面所对应的内存中。这样getAttribute就能取得你所设下的值,当然这种方法可以传对象。session也一样,只是对象在内存中的生命周期不一样而已。
getParameter
只是应用服务器在分析你送上来的request页面的文本时,取得你设在表单或url重定向时的值。

getParameter   返回的是String,   用于读取提交的表单中的值;       
getAttribute   
返回的是Object,需进行转换,可用setAttribute设置成任意对象,使用很灵活,可随时用;

HttpServletRequest类有setAttribute()方法,而没有setParameter()方法

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
以下是一个基本的用户注册示例,使用JSP的application和session: register.jsp: ``` <html> <head> <title>User Registration</title> </head> <body> <h1>User Registration</h1> <% String errorMessage = (String) request.getAttribute("errorMessage"); if (errorMessage != null) { out.println("<p style=\"color:red\">" + errorMessage + "</p>"); } %> <form method="post" action="register.do"> <label for="username">Username:</label> <input type="text" id="username" name="username"><br> <label for="password">Password:</label> <input type="password" id="password" name="password"><br> <input type="submit" value="Register"> </form> </body> </html> ``` register.do: ``` <%@ page import="java.util.*" %> <%@ page import="javax.servlet.*" %> <%@ page import="javax.servlet.http.*" %> <% String username = request.getParameter("username"); String password = request.getParameter("password"); // Validate input if (username == null || username.trim().length() == 0 || password == null || password.trim().length() == 0) { request.setAttribute("errorMessage", "Please enter a username and password"); request.getRequestDispatcher("register.jsp").forward(request, response); return; } // Check if username already exists ServletContext application = getServletContext(); Map<String, String> users = (Map<String, String>) application.getAttribute("users"); if (users == null) { users = new HashMap<String, String>(); application.setAttribute("users", users); } if (users.containsKey(username)) { request.setAttribute("errorMessage", "Username already exists"); request.getRequestDispatcher("register.jsp").forward(request, response); return; } // Add user to application scope users.put(username, password); // Add user to session scope HttpSession session = request.getSession(); session.setAttribute("username", username); response.sendRedirect("welcome.jsp"); %> ``` welcome.jsp: ``` <html> <head> <title>Welcome</title> </head> <body> <h1>Welcome <%= session.getAttribute("username") %></h1> <p>You have successfully registered.</p> <p><a href="logout.do">Logout</a></p> </body> </html> ``` logout.do: ``` <%@ page import="javax.servlet.*" %> <%@ page import="javax.servlet.http.*" %> <% // Invalidate session HttpSession session = request.getSession(false); if (session != null) { session.invalidate(); } // Redirect to login page response.sendRedirect("login.jsp"); %> ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值