Javaweb的七大传参方式和以及各自特点

Posted deandre-tou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Javaweb的七大传参方式和以及各自特点相关的知识,希望对你有一定的参考价值。

学习jsp一段时间,觉得还是需要把自己学习一些东西整理了一下,第一次发东西,还请各位多多支持

1.表单提交

html自带的from方法,简单易懂,便于操作,依靠于<from>标签中的type="submit"进行表单传输,或者根据js进行控制提交表单。其中由method属性决定以post或者get方式进行提交。

jsp代码:

1 <form id="test" action="testservlet" method="post" name="test_form">
2     账号:<input type="text" name="user_name" id="user"><p>
3     密码:<input type="password" name="user_password" id="password"><p>
4     <input type="submit" value="提交">
5 </form>

java代码(根据name属性获取参数):

1 String user = request.getParmeter("user_name");
2 String user = request.getParmeter("user_password");

2.URL传参(超链接请求)

这种传参方式,一般比较单一,所选取的值都是现有或者已经定义的,并且只能用get提交方式去发送请求。所以大多数情况下,超链接只用来作为跳转接口,而一般不会被用作传递参数的功能。不过,当JS来进行动态处理时,URL的方式还是十分灵活的,这里就不一一举例了。

1 <a href = "test.jsp?user_name=aaa&user_password=bbb"><!--jsp代码-->
1 String user = request.getParameter("user_name");
2 String pass = request.getParameter("user_password");//java取值代码

3.Javabean传参

JavaBean 通过提供符合一致性设计模式的公共方法将内部域暴露成员属性,set和get方法获取。

javabean使用有如此好处

1.提高代码的可复用性:对于通用的事务处理逻辑,数据库操作等都可以封装在JavaBean中,通过调用JavaBean的属性和方法可快速进行程序设计。
2.程序易于开发维护:实现逻辑的封装,使事务处理和显示互不干扰。
3.支持分布式运用:多用JavaBean,尽量减少java代码大量出现在显示界面。
4.可以便捷地传递数据。

以下用代码举个小栗子:

javabean代码:

 1 package model;
 2 
 3 public class User{
 4     private String user_name;
 5     private String user_password;
 6     public String getUser_name() {
 7         return user_name;
 8     }
 9     public void setUser_name(String user_name) {
10         this.user_name = user_name;
11     }
12     public String getUser_password() {
13         return user_password;
14     }
15     public void setUser_password(String user_password) {
16         this.user_password = user_password;
17     }
18 }

传递参数的页面:

1 <jsp:useBean id="user" class="model.User" scope="session" />
2  <%
3    user.setUser_name("小明");
4    user.setUser_password("******");
5  %>
6 <a href="test.jsp">提交</a>

接收页面:

1 <jsp:useBean id="user" class="entity.User" scope="session"></jsp:useBean>
2 <!--下面的动作方法当然可以获取到值-->
3 姓名:<jsp:getProperty name="user" property="user_name"/>
4 密码:<jsp:getProperty name="user" property="user_password"/>
5 <!--下面的普通方法当然也可以-->
6 姓名:<%=user.getUser_name()%><br>
7 密码:<%=user.getUser_password()%><br>

4.session对象传参

Session 对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。

当用户请求来自应用程序的 Web 页时,如果该用户还没有会话,则 Web 服务器将自动创建一个 Session 对象。当会话过期或被放弃后,服务器将终止该会话,Session 对象最常见的一个用法就是存储用户的首选项。

简单来说,就是服务器在确定每一个用户过后都会存放用户相关信息在服务器端,这个被存放的值的集合就是session对象。

传参界面与接收的界面:

 1 <%
 2 //传参界面
 3 session.setAttribute("user_name", "小明");
 4 session.setAttribute("user_password", "******");
 5 %>
6 <a href="test.jsp">提交</a> 7 <% 8 //接收界面 9 out.println("姓名:"+session.getAttribute("username")); 10 out.println("密码:"+session.getAttribute("user_password")); 11 %>

5.cookie

Cookie实际上是一小段的文本信息。客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客 户端浏览器颁发一个Cookie。客户端浏览器会把Cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务 器。服务器检查该Cookie,以此来辨认用户状态。服务器还可以根据需要修改Cookie的内容。Java中把Cookie封装成了javax.servlet.http.Cookie类,每个Cookie都是该Cookie类的对象,服务器通过操作Cookie类对象对客户端Cookie进行操作。

java代码

1 Cookie cookie = new Cookie("username","password");// 新建Cookie
2 cookie.setMaxAge(3600);       // 设置生命周期为3600秒
3 response.addCookie(cookie); // 输出到客户端

6.application全局变量

application对象代表JSP所属的WEB应用本身,可用于JSP页面,或者Servlet之间交换信息。常用的方法有getAttribute(String attName), setAttribute(String attName,String attValue)getInitParameter(String Param)等。

服务器启动后就产生了这个application对象,当客户再所访问的网站的各个页面之间浏览时,这个application对象都是同一个,直到服务器关闭。

但是与session不同的是,所有客户的application对象都是同一个,即所有客户共享这个内置的application对象。

传参界面与接收的界面:

 1  <%
 2  //传参界面
 3  application.setAttribute("user_name", "小明");
 4  application.setAttribute("user_password", "******");
 5  %>
 6  <a href="test.jsp">提交</a>
7 <% 8 //接收界面 9 out.println("姓名:"+application.getAttribute("username")); 10 out.println("密码:"+application.getAttribute("user_password")); 11 %>

7.request对象

request对象是当客户端向服务器端发送请求时,服务器为本次请求创建的,并在调用Servlet的service方法时,将该对象传递给service方法。

Request对象中封装了客户端发送过来的所有的请求数据。只要是有关于客户端请求的信息,都可以藉由它来取得,例如请求标头、请求方法、请求参数、客户端IP,客户端浏览器等等信息。

当然,它进行正常传参时是和session与application类似的,毕竟同属于四大范围域。

 1  <%
 2  //传参界面
 3  request.setAttribute("user_name", "小明");
 4  request.setAttribute("user_password", "******");
 5  %>
 6  <a href="test.jsp">提交</a>
7 <% 8 //接收界面 9 out.println("姓名:"+request.getAttribute("username")); 10 out.println("密码:"+request.getAttribute("user_password")); 11 %>

8.jsp动作传参

1.jsp:forward动作做页面跳转时传递参数。

2.jsp:param它可以实现主页面向包含页面传递参数。

传参界面:

1 <jsp:forward page="test.jsp">
2       <jsp:param name="name" value="小明"  />
3       <jsp:param name="password" value="******" />
4 </jsp:forward>

接收界面

1 <%
2 out.println("姓名:" + request.getParameter("user_name"));
3 out.println("密码:" + request.getParameter("user_password"));
4 %>

这就是八种常见传参方式的小例子以及我个人的理解,其中除了cookie作为存储在客户端文本的传参方式(减轻服务器端压力,传输信息量大,安全性差),其他都是服务端的传参模式(信息量小,安全好),谢谢大家支持。

 









以上是关于Javaweb的七大传参方式和以及各自特点的主要内容,如果未能解决你的问题,请参考以下文章

javaee, javaweb和javase的区别以及各自的知识体系

20170620_javaweb_小结

JavaWeb 测试题

请问:STM32串口通信三种方式(查询,中断,DMA)各自的特点以及实现方法是啥

PRINCE2认证的七大原则有啥特点

Reactreact概述组件事件