昨天晚上在跟着视频做项目时遇到一个问题
我在一个页面中打算通过一个超链接跳转到一个servlet,并且在这个链接中通过?type=list来传递一个参数,但是在servlet中却始终获取不到值。
<a herf="/xxxxx/servlet/CollectionServlet?type=list">进入</a>
String type = (String) request.getAttribute("type");
if(type!=null && type.equals("list")){
doA();
}else if(type!=null && type.equals("save")){
doB();
}
后来发现,此处应该使用
request.getParameter("type");
原来,parameter是直接通过链接就能看到的传值,算是客户端到服务器端的传递。
而attribute是存在于服务器端的,是页面所在内存的一部分,通过forward来转发request的时候就能得到传递,算是始终存在于服务器端的数据。
一个jsp页面中,表单的数据是通过parameter传递的,如果是post方法,可以在链接地址中看到问号后面的传值。
而attribute是在服务器端可以自行修改的。