杂记 JSP与Servlet通信

1. 我看的例子里都是在servlet里通过request.getParameter("jsp中元素的name值");来获取jsp中元素的value值。

但是其实这种方法只限于<input>元素,就是输入框,每个输入框有name属性,value属性则是用户输入进去的。

今天要写的一个功能是,用户点击不同的超链接,转换到不同的页面。以前写静态网页的时候,都是直接在<a>元素的href中指定地址的。但是今天我想通过servlet来转换页面。servlet通过request.getParameter函数判断点击的是哪个超链接,为不同的超链接转换不同的网页。

结果发现及时<a>有name与value属性,但是request.getParameter方法却不能通过其name来获得value值,原来我们为a添加的value属性是不起作用的,它已经有自定义的name-value对了。就是在指定href的链接中,?之后的就是name-value对,而且不像input只有一对,他可以添加很多对,所以正确的写法是:

<a href="V2EX/RespondServlet?value=1">登录</a>
<a href="V2EX/RespondServlet?value=2">注册</a>
<a href="V2EX/RespondServlet?value=3">首页</a>

这样就可以通过request.getParameter(value)的返回值判断点击的是哪个超链接了。

2. 有些网站,很多网页的content或者导航栏都是不变的,如果在多个页面都要写重复的代码,要是需要修改一个小地方,就要把每个页面都改一次,不利于维护。

可以将重复的代码写在一个A.jsp的body页面中,然后在其他需要使用这些代码的B.jsp中的<body>置入A.jsp:

<jsp:include page="A.jsp" />

即使A.jsp中置入了其他css文件,也不需要在B.jsp中再置入一遍。

3. 设置每个菜单项<a>的间距相等。因为每个<a>的字数不一样,如果单纯设置每个菜单的宽的话,间距就会不等。而如果设置margin的话却不起作用。正确的做法是,将display设置为block,再设置margin:

 display:block;
 margin-left:20px;


4.如何使footer贴着底:

position: fixed;
bottom: 0;

5. 在1中说的request.getParameter("name");只能获得input中的value值,其实还不全,它是只能获得form中的input中的value值。

本来想获得table中的input值的,但是发现行不通,一直显示null,得在table外面添加<form>标签才行。

但是添加了form标签并且制定了servlet,那么点击了按钮就一定会执行servlet中的doGet或者doPost方法,

但其实我是想在jsp中先调用方法判断inout是否为空,不为空再调用servlet中的方法。

那只能舍弃form标签的这种一定会调用的方式,还是通过jsp页面中的DOM获得input的值,当值不为空时,通过ajax将键值对放在post的表单中传过去,这样就是从url表单中获取键值对(其实和1中的方法本质是一样的,只不过1中是用get方法),而不是servlet直接搜索jsp页面中是否有name等于某一值的input。ajax用post传值的方式为:

var params="user="+user+"&password="+password+"&verifCode="+verifCode;
var loader = net.AjaxRequest.call(this,"SignInServlet",deal_getInfo, onerror, "POST",params);

用get传值的方式为:

var loader = net.AjaxRequest.call(this,"SignInServlet?user="+user+"&password="+password+"&verifCode="+verifCode", deal_getInfo, onerror, "POST");

6. js是弱数据类型,没有整型的概念,也就不能声明一个变量为int型,只能用关键字var来声明变量,当你要判断一个变量是否为某个值时:

if(parseInt(i)==0){

}

这样可以将i中的数值取出来。

7. servlet方法中out.close();后面的语句还会被执行,这个只是向jsp传输了数据,把数据流关闭,后面的java代码还是会被执行的。
   

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值