JSP编程偶拾

来源:互联网 发布:java如何控制输出位数 编辑:程序博客网 时间:2024/04/28 00:28

最近用JSP写了一个很简单的网站,进行一些数据管理,用到的技术就是servlet,总结一下期间遇到的一些问题:

1、删除表格中的一行数据

     首先我的数据显示是这样的,在每一行数据之后都有一个checkbox,在删除的时候需要先选中一行,用checkbox标志,然后点击删除按钮。

     在实现这个功能的过程中,我查到网上有些人说用js来做,先获取被选中的行,然后把该行数据提交到action,不熟悉js,也没有实现。另外一种方法就是:在浏览器转换页面的时候会把表格数据放在一个字符串数组中进行提交,因此我直接采用了servlet进行实现。

这是jsp页面中显示数据的代码:

<form method = "post" action = "servlet/deleteServlet">

......

 int i= 0;

while(rs.next())
  {%>
  <tr align="center">
  <td><%=rs.getString(1)%></td> 
  <td><%=rs.getString(2)%></td>
  <td><font face="Arial">Available</font></td>
  <td><%=rs.getString(5)%></td>
  <td><%=rs.getString(6)%></td>
  <td><input type="checkbox" name="list" id = "<%=i%>" value="<%=rs.getString(1)%>" ></td>  
  </tr>
  <%

i= i+1;
  }

......

</form>

其中,这一组checkbox的name统一命名为list,value为查询的关键字,用于删除数据库中的该条数据。

在deleteServlet.java中的doPost方法中添加如下代码:

String[] list = request.getParameterValue("list");//获取被选中的checkbox,name为list

如果未被选中list[i]为null.

 

2、关于session的问题

     我做了一个简单的登录页面login.jsp,获取用户名和密码,保存在session中,问题出现了,我仍然是用servlet实现,当我在login.jsp的页面上添加如下代码:

String userName = request.getParametervalue("userName");

String password = request.getParameterValue("passWord");

session.setAttributes("userName",userName);

session.serAttributes("passWord",password);

在登录之后,获取到的session中的这两个值是空的。

于是,我选择了另一种做法,添加一个空页面叫log.jsp,当点击登录按钮之后,转到该页面进行登录用户名和密码的session保存,

然后在登录之后就可以得到session中值。

查了一下,好像需要调用response的setheader函数,如果看到有懂这个的请留言,谢谢!